.text:004D56F8
.text:004D56F8 # =============== S U B R O U T I N E =======================================
.text:004D56F8
.text:004D56F8
.text:004D56F8 .globl sub_4D56F8
.text:004D56F8 sub_4D56F8: # CODE XREF: getWPSPinCode+54p
.text:004D56F8 # rt5592_wlan_Op+2C74p
.text:004D56F8 # DATA XREF: ...
.text:004D56F8
.text:004D56F8 var_88 = -0x88
.text:004D56F8 var_84 = -0x84
.text:004D56F8 var_80 = -0x80
.text:004D56F8 var_7C = -0x7C
.text:004D56F8 var_78 = -0x78
.text:004D56F8 var_74 = -0x74
.text:004D56F8 var_70 = -0x70
.text:004D56F8 var_6C = -0x6C
.text:004D56F8 var_68 = -0x68
.text:004D56F8 var_64 = -0x64
.text:004D56F8 saved_gp = -0x60
.text:004D56F8 mac_address = -0x58
.text:004D56F8 info_log_mac_address= -0x38
.text:004D56F8 oui = -0x20
.text:004D56F8 nic = -0x1C
.text:004D56F8 saved_s0 = -0x18
.text:004D56F8 saved_s1 = -0x14
.text:004D56F8 saved_s2 = -0x10
.text:004D56F8 saved_s3 = -0xC
.text:004D56F8 saved_s4 = -8
.text:004D56F8 saved_ra = -4
.text:004D56F8
.text:004D56F8 li $gp, 0x1ACF08
.text:004D5700 addu $gp, $t9
.text:004D5704 addiu $sp, -0x98
.text:004D5708 sw $ra, 0x98+saved_ra($sp)
.text:004D570C sw $s4, 0x98+saved_s4($sp)
.text:004D5710 sw $s3, 0x98+saved_s3($sp)
.text:004D5714 sw $s2, 0x98+saved_s2($sp)
.text:004D5718 sw $s1, 0x98+saved_s1($sp)
.text:004D571C sw $s0, 0x98+saved_s0($sp)
.text:004D5720 sw $gp, 0x98+saved_gp($sp)
.text:004D5724 la $t9, memset
.text:004D5728 addiu $s2, $sp, 0x98+mac_address
.text:004D572C move $a1, $zero
.text:004D5730 li $a2, 0x20 # ' '
.text:004D5734 move $s4, $a0
.text:004D5738 sw $zero, 0x98+oui($sp)
.text:004D573C move $a0, $s2
.text:004D5740 jalr $t9 ; memset
.text:004D5744 sw $zero, 0x98+nic($sp)
.text:004D5748 lw $gp, 0x98+saved_gp($sp)
.text:004D574C addiu $s0, $sp, 0x98+info_log_mac_address
.text:004D5750 la $t9, memset
.text:004D5754 li $a2, 0x14
.text:004D5758 move $a0, $s0
.text:004D575C jalr $t9 ; memset
.text:004D5760 move $a1, $zero
.text:004D5764 lw $gp, 0x98+saved_gp($sp)
.text:004D5768 li $a1, 0x96B
.text:004D576C la $s1, 0x5A0000
.text:004D5770 la $t9, lockAndGetInfo_log
.text:004D5774 nop
.text:004D5778 jalr $t9 ; lockAndGetInfo_log
.text:004D577C addiu $a0, $s1, (aOptReleaseR_20 - 0x5A0000) # "/opt/release/rt6856/RT288x_SDK/source/u"...
.text:004D5780 lw $gp, 0x98+saved_gp($sp)
.text:004D5784 lw $a1, 8($v0)
.text:004D5788 la $t9, strcpy
.text:004D578C nop
.text:004D5790 jalr $t9 ; strcpy
.text:004D5794 move $a0, $s0
.text:004D5798 lw $gp, 0x98+saved_gp($sp)
.text:004D579C addiu $a0, $s1, (aOptReleaseR_20 - 0x5A0000) # "/opt/release/rt6856/RT288x_SDK/source/u"...
.text:004D57A0 la $t9, unlockInfo_log
.text:004D57A4 nop
.text:004D57A8 jalr $t9 ; unlockInfo_log
.text:004D57AC li $a1, 0x96D
.text:004D57B0 lw $gp, 0x98+saved_gp($sp)
.text:004D57B4 lb $a1, 0x98+info_log_mac_address+5($sp)
.text:004D57B8 lb $a0, 0x98+info_log_mac_address+4($sp)
.text:004D57BC lb $v0, 0x98+info_log_mac_address+2($sp)
.text:004D57C0 lb $v1, 0x98+info_log_mac_address+3($sp)
.text:004D57C4 lb $t0, 0x98+info_log_mac_address+6($sp)
.text:004D57C8 lb $t1, 0x98+info_log_mac_address+7($sp)
.text:004D57CC lb $t2, 0x98+info_log_mac_address+8($sp)
.text:004D57D0 lb $t3, 0x98+info_log_mac_address+9($sp)
.text:004D57D4 lb $t4, 0x98+info_log_mac_address+0xA($sp)
.text:004D57D8 lb $t5, 0x98+info_log_mac_address+0xB($sp)
.text:004D57DC sw $a1, 0x1C($sp)
.text:004D57E0 la $a1, 0x5A0000
.text:004D57E4 la $t9, sprintf
.text:004D57E8 lb $a2, 0x98+info_log_mac_address($sp)
.text:004D57EC lb $a3, 0x98+info_log_mac_address+1($sp)
.text:004D57F0 sw $a0, 0x18($sp)
.text:004D57F4 sw $v0, 0x10($sp)
.text:004D57F8 sw $v1, 0x14($sp)
.text:004D57FC sw $t0, 0x20($sp)
.text:004D5800 sw $t1, 0x24($sp)
.text:004D5804 sw $t2, 0x28($sp)
.text:004D5808 sw $t3, 0x2C($sp)
.text:004D580C sw $t4, 0x30($sp)
.text:004D5810 sw $t5, 0x34($sp)
.text:004D5814 move $a0, $s2
.text:004D5818 jalr $t9 ; sprintf
.text:004D581C addiu $a1, (aCCCCCCCCCCCC - 0x5A0000) # "%c%c:%c%c:%c%c:%c%c:%c%c:%c%c"
.text:004D5820 lw $gp, 0x98+saved_gp($sp)
.text:004D5824 addiu $s3, $sp, 0x98+mac_address+3
.text:004D5828 addiu $s1, $sp, 0x98+mac_address+2
.text:004D582C li $s0, 4
.text:004D5830
.text:004D5830 memmove_loop: # CODE XREF: sub_4D56F8+158j
.text:004D5830 la $t9, memmove
.text:004D5834 move $a0, $s1
.text:004D5838 move $a1, $s3
.text:004D583C li $a2, 2
.text:004D5840 jalr $t9 ; memmove # // mac_address[2] = mac_address[3];
.text:004D5840 # // mac_address[3] = mac_address[4];
.text:004D5840 # memmove((mac_address+2), (mac_address+3), 2);
.text:004D5844 addiu $s0, -1
.text:004D5848 addiu $s1, 2
.text:004D584C lw $gp, 0x98+saved_gp($sp)
.text:004D5850 bgez $s0, memmove_loop
.text:004D5854 addiu $s3, 3
.text:004D5858 la $t9, strlen
.text:004D585C nop
.text:004D5860 jalr $t9 ; strlen
.text:004D5864 addiu $a0, $sp, 0x98+mac_address
.text:004D5868 lw $gp, 0x98+saved_gp($sp)
.text:004D586C addiu $a2, $v0, -0xC
.text:004D5870 la $t9, memset
.text:004D5874 addiu $a0, $sp, 0x98+mac_address+0xC
.text:004D5878 jalr $t9 ; memset # // NULL out the remaining, unused bytes of mac_address
.text:004D5878 # memset(mac_address+12, 0, strlen(mac_address)-12);
.text:004D587C move $a1, $zero
.text:004D5880 lw $gp, 0x98+saved_gp($sp)
.text:004D5884 addiu $a0, $sp, 0x98+mac_address
.text:004D5888 la $a1, 0x5A0000
.text:004D588C la $t9, sscanf
.text:004D5890 addiu $a1, (a06x06x - 0x5A0000) # "%06X%06X"
.text:004D5894 addiu $a2, $sp, 0x98+oui
.text:004D5898 jalr $t9 ; sscanf # sscanf(mac_address, "%06X%06X", &oui, &nic);
.text:004D589C addiu $a3, $sp, 0x98+nic
.text:004D58A0 lw $a1, 0x98+nic($sp)
.text:004D58A4 li $v0, 0x55AA55
.text:004D58AC xor $a1, $v0 # $a1 = nic ^ 0x55AA55;
.text:004D58B0 andi $v0, $a1, 0xF
.text:004D58B4 sll $a0, $v0, 8
.text:004D58B8 sll $v1, $v0, 4
.text:004D58BC addu $v1, $a0
.text:004D58C0 sll $a0, $v0, 12
.text:004D58C4 addu $v1, $a0
.text:004D58C8 sll $a0, $v0, 16
.text:004D58CC addu $v1, $a0
.text:004D58D0 sll $v0, 20
.text:004D58D4 addu $v1, $v0
.text:004D58D8 lui $v0, 0x6B5F
.text:004D58DC xor $a1, $v1
.text:004D58E0 ori $t1, $v0, 0xCA6B
.text:004D58E4 multu $a1, $t1
.text:004D58E8 sw $v1, 0x98+oui($sp)
.text:004D58EC lui $t0, 0xF
.text:004D58F0 ori $a2, $t0, 0x423F
.text:004D58F4 lw $gp, 0x98+saved_gp($sp)
.text:004D58F8 mfhi $a0
.text:004D58FC srl $a0, 22
.text:004D5900 sll $v1, $a0, 5
.text:004D5904 subu $v1, $a0
.text:004D5908 sll $v0, $v1, 6
.text:004D590C subu $v0, $v1
.text:004D5910 sll $v0, 3
.text:004D5914 addu $v0, $a0
.text:004D5918 sll $v1, $v0, 2
.text:004D591C addu $v0, $v1
.text:004D5920 sll $v0, 7
.text:004D5924 subu $a3, $a1, $v0
.text:004D5928 sltu $a2, $a3
.text:004D592C bnez $a2, loc_4D5980
.text:004D5930 sw $a3, 0x98+nic($sp)
.text:004D5934 li $v0, 0x38E38E39
.text:004D593C multu $a3, $v0
.text:004D5940 ori $a1, $t0, 0x4240
.text:004D5944 mfhi $v0
.text:004D5948 srl $v0, 1
.text:004D594C sll $a0, $v0, 3
.text:004D5950 addu $a0, $v0
.text:004D5954 subu $a0, $a3, $a0
.text:004D5958 sll $v1, $a0, 5
.text:004D595C subu $v1, $a0
.text:004D5960 sll $v0, $v1, 6
.text:004D5964 subu $v0, $v1
.text:004D5968 sll $v0, 3
.text:004D596C addu $v0, $a0
.text:004D5970 sll $v0, 6
.text:004D5974 addu $v0, $a3, $v0
.text:004D5978 addu $v0, $a1
.text:004D597C sw $v0, 0x98+nic($sp)
.text:004D5980
.text:004D5980 loc_4D5980: # CODE XREF: sub_4D56F8+234j
.text:004D5980 lw $v0, 0x98+nic($sp)
.text:004D5984 lui $t2, 0x431B
.text:004D5988 sll $a2, $v0, 2
.text:004D598C addu $a2, $v0
.text:004D5990 sll $a2, 1
.text:004D5994 multu $a2, $t1
.text:004D5998 lui $v0, 0xA7C
.text:004D599C srl $t5, $a2, 5
.text:004D59A0 li $v0, 0xA7C5AC5
.text:004D59A4 li $t2, 0x431BDE83
.text:004D59A8 li $t3, 0x10624DD3
.text:004D59B0 li $t4, 0xD1B71759
.text:004D59B8 li $t7, 0xCCCCCCCD
.text:004D59C0 lui $t6, 0x51EB
.text:004D59C4 mfhi $t0
.text:004D59C8 li $t6, 0x51EB851F
.text:004D59CC srl $t0, 22
.text:004D59D0 multu $t5, $v0
.text:004D59D4 la $a1, 0x5A0000
.text:004D59D8 la $t9, sprintf
.text:004D59DC move $a0, $s4
.text:004D59E0 addiu $a1, (a08d - 0x5A0000) # "%08d"
.text:004D59E4 mfhi $t5
.text:004D59E8 srl $t5, 7
.text:004D59EC nop
.text:004D59F0 multu $a2, $t2
.text:004D59F4 mfhi $t2
.text:004D59F8 srl $t2, 18
.text:004D59FC nop
.text:004D5A00 multu $a2, $t3
.text:004D5A04 mfhi $t3
.text:004D5A08 srl $t3, 6
.text:004D5A0C nop
.text:004D5A10 multu $a2, $t4
.text:004D5A14 mfhi $t4
.text:004D5A18 srl $t4, 13
.text:004D5A1C nop
.text:004D5A20 multu $a2, $t7
.text:004D5A24 mfhi $s0
.text:004D5A28 srl $s0, 3
.text:004D5A2C nop
.text:004D5A30 multu $a2, $t6
.text:004D5A34 mfhi $t6
.text:004D5A38 srl $t6, 5
.text:004D5A3C nop
.text:004D5A40 multu $t0, $t7
.text:004D5A44 mfhi $v1
.text:004D5A48 srl $v1, 3
.text:004D5A4C sll $v0, $v1, 2
.text:004D5A50 multu $t5, $t7
.text:004D5A54 addu $v0, $v1
.text:004D5A58 sll $v0, 1
.text:004D5A5C subu $t0, $v0
.text:004D5A60 sll $v1, $t0, 1
.text:004D5A64 addu $v1, $t0
.text:004D5A68 mfhi $a3
.text:004D5A6C srl $a3, 3
.text:004D5A70 sll $v0, $a3, 2
.text:004D5A74 multu $t2, $t7
.text:004D5A78 addu $v0, $a3
.text:004D5A7C sll $v0, 1
.text:004D5A80 subu $t5, $v0
.text:004D5A84 sll $t1, $t5, 1
.text:004D5A88 addu $t1, $t5
.text:004D5A8C mfhi $t0
.text:004D5A90 srl $t0, 3
.text:004D5A94 sll $v0, $t0, 2
.text:004D5A98 multu $t3, $t7
.text:004D5A9C addu $v0, $t0
.text:004D5AA0 sll $v0, 1
.text:004D5AA4 subu $t2, $v0
.text:004D5AA8 addu $v1, $t2
.text:004D5AAC addu $v1, $t1
.text:004D5AB0 mfhi $a3
.text:004D5AB4 srl $a3, 3
.text:004D5AB8 sll $v0, $a3, 2
.text:004D5ABC multu $t4, $t7
.text:004D5AC0 addu $v0, $a3
.text:004D5AC4 sll $v0, 1
.text:004D5AC8 subu $t3, $v0
.text:004D5ACC sll $a3, $t3, 1
.text:004D5AD0 addu $a3, $t3
.text:004D5AD4 mfhi $t0
.text:004D5AD8 srl $t0, 3
.text:004D5ADC sll $v0, $t0, 2
.text:004D5AE0 multu $s0, $t7
.text:004D5AE4 addu $v0, $t0
.text:004D5AE8 sll $v0, 1
.text:004D5AEC subu $t4, $v0
.text:004D5AF0 addu $v1, $t4
.text:004D5AF4 addu $v1, $a3
.text:004D5AF8 mfhi $t1
.text:004D5AFC srl $t1, 3
.text:004D5B00 sll $v0, $t1, 2
.text:004D5B04 multu $t6, $t7
.text:004D5B08 addu $v0, $t1
.text:004D5B0C sll $v0, 1
.text:004D5B10 subu $s0, $v0
.text:004D5B14 sll $t0, $s0, 1
.text:004D5B18 addu $t0, $s0
.text:004D5B1C mfhi $a3
.text:004D5B20 srl $a3, 3
.text:004D5B24 sll $v0, $a3, 2
.text:004D5B28 addu $v0, $a3
.text:004D5B2C sll $v0, 1
.text:004D5B30 subu $t6, $v0
.text:004D5B34 addu $v1, $t6
.text:004D5B38 addu $v1, $t0
.text:004D5B3C multu $v1, $t7
.text:004D5B40 li $a3, 0xA
.text:004D5B44 mfhi $t7
.text:004D5B48 srl $t7, 3
.text:004D5B4C sll $v0, $t7, 2
.text:004D5B50 addu $v0, $t7
.text:004D5B54 sll $v0, 1
.text:004D5B58 subu $t7, $v1, $v0
.text:004D5B5C lui $v0, 0x6666
.text:004D5B60 subu $a3, $t7
.text:004D5B64 li $v0, 0x66666667
.text:004D5B68 mult $a3, $v0
.text:004D5B6C sra $v1, $a3, 31
.text:004D5B70 mfhi $v0
.text:004D5B74 sra $v0, 2
.text:004D5B78 subu $v0, $v1
.text:004D5B7C sll $v1, $v0, 2
.text:004D5B80 addu $v1, $v0
.text:004D5B84 sll $v1, 1
.text:004D5B88 subu $a3, $v1
.text:004D5B8C addu $a2, $a3
.text:004D5B90 sw $a3, 0x98+oui($sp)
.text:004D5B94 jalr $t9
.text:004D5B98 sw $a2, 0x98+nic($sp)
.text:004D5B9C lw $v0, 0x98+nic($sp)
.text:004D5BA0 lw $gp, 0x98+saved_gp($sp)
.text:004D5BA4 lw $ra, 0x98+saved_ra($sp)
.text:004D5BA8 lw $s4, 0x98+saved_s4($sp)
.text:004D5BAC lw $s3, 0x98+saved_s3($sp)
.text:004D5BB0 lw $s2, 0x98+saved_s2($sp)
.text:004D5BB4 lw $s1, 0x98+saved_s1($sp)
.text:004D5BB8 lw $s0, 0x98+saved_s0($sp)
.text:004D5BBC jr $ra
.text:004D5BC0 addiu $sp, 0x98
.text:004D5BC0 # End of function sub_4D56F8
.text:004D5BC0