Function at 0x406c60
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x420d7e
push eax
mov eax, 0x1cbc
mov dword fs:[0], esp
call fcn.00417fe0
mov al, byte [esp + 3]
push esi
push edi
mov esi, ecx
xor edi, edi
lea ecx, [esp + 0x8c]
push edi
mov byte [esp + 0x90], al
call fcn.0040cf30
lea ecx, [esp + 0x7c]
mov dword [esp + 0x1ccc], edi
push ecx
mov ecx, esi
mov dword [esp + 0x1c], edi
call fcn.00407570
push str.Maxthon.exe
lea edx, [esp + 0x70]
push 0x42c4b0
push edx
mov byte [esp + 0x1cd8], 1
call fcn.00410f20
add esp, 0xc
mov eax, dword [esp + 0x70]
mov byte [esp + 0x1ccc], 2
cmp eax, edi
jne 0x406ce8
mov eax, 0x422470
push ebx
lea ebx, [esi + 0x470]
push ebp
push ebx
push eax
mov ecx, esi
call fcn.004072d0
mov ebp, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [esp + 0x14]
push eax
push 0x20019
push edi
push str.Control_PanelInternational
push 0x80000001
mov dword [esp + 0x28], edi
call ebp
cmp eax, edi
jne 0x406e23
mov dword [esp + 0x1c], edi
mov word [esp + 0xa4], di
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xa6]
mov word [esp + 0x2ac], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x2ae]
lea edx, [esp + 0xa4]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0x104
stosw word es:[edi], ax
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x20]
push edx
push eax
push 0
push str.iCountry
push ecx
call edi
lea edx, [esp + 0xa4]
push edx
call fcn.00417a8e
add esp, 4
lea ecx, [esp + 0x94]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.0040cb90
lea ecx, [esp + 0x18]
lea edx, [esp + 0x2ac]
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x20]
push edx
push eax
push 0
push str.Locale
push ecx
mov dword [esp + 0x30], 0x104
call edi
lea edx, [esp + 0x2ac]
lea eax, [esp + 0x64]
push edx
push eax
call fcn.004123c0
add esp, 8
mov eax, dword [esp + 0x68]
mov byte [esp + 0x1cd4], 3
test eax, eax
jne 0x406e01
mov eax, 0x422608
push eax
call fcn.00414300
add esp, 4
lea ecx, [esp + 0x64]
mov dword [esp + 0x20], eax
mov byte [esp + 0x1cd4], 2
push 1
call fcn.0040c930
xor edi, edi
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dl, byte [esp + 0x13]
push edi
lea ecx, [esp + 0x48]
mov byte [esp + 0x48], dl
call fcn.0040cf30
mov eax, dword [0x42c424]
mov byte [esp + 0x1cd4], 4
cmp eax, 1
jne 0x406e67
push str.http:__stat_c.maxthon.com_mx2_inst_
call fcn.00417a8e
add esp, 4
push eax
push str.http:__stat_c.maxthon.com_mx2_inst_
jmp 0x406e7a
push str.http:__statcn_c.maxthon.com_mx2_inst_
call fcn.00417a8e
add esp, 4
push eax
push str.http:__statcn_c.maxthon.com_mx2_inst_
lea ecx, [esp + 0x4c]
call fcn.0040cb90
mov al, byte [esp + 0x13]
push edi
lea ecx, [esp + 0x38]
mov byte [esp + 0x38], al
call fcn.0040cf30
push str.mood
call fcn.00417a8e
add esp, 4
lea ecx, [esp + 0x34]
push eax
push str.mood
call fcn.0040cb90
lea ecx, [esp + 0x14]
mov byte [esp + 0x1cd4], 5
push ecx
push 0x20019
push edi
push str.SoftwareMaxthon2
push 0x80000001
call ebp
cmp eax, edi
jne 0x406f46
mov word [esp + 0xa4], di
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xa6]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0x1c]
lea eax, [esp + 0xa4]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x1c]
push eax
push ecx
push 0
push 0x427774
push edx
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [esp + 0xa4]
push eax
call fcn.00417a8e
add esp, 4
lea ecx, [esp + 0xa4]
push eax
push ecx
lea ecx, [esp + 0x3c]
call fcn.0040cb90
xor edi, edi
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov word [esp + 0xc84], di
mov ecx, 0x411
xor eax, eax
lea edi, [esp + 0xc86]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x38]
mov ebp, 0x422470
test eax, eax
je 0x406f78
mov ebp, eax
mov eax, dword [esp + 0x98]
mov edi, 0x422470
test eax, eax
je 0x406f8a
mov edi, eax
mov eax, dword [ebx + 4]
mov edx, 0x422470
test eax, eax
je 0x406f98
mov edx, eax
mov ecx, dword [esp + 0x88]
test ecx, ecx
jne 0x406fa8
mov ecx, 0x422470
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x406fb5
mov eax, 0x422470
mov ebx, dword [esi + 0x5e4]
push ebx
push ebp
push edi
mov edi, dword [esp + 0x2c]
push edi
push edx
push ecx
push eax
lea eax, [esp + 0xca0]
push str._s_s_ver_s_lan0x_d_lc_s_pn_s_reg_d
push eax
call fcn.00417eed
lea ecx, [esp + 0xca8]
lea edx, [esp + 0x48]
push ecx
push edx
call fcn.004123c0
add esp, 0x2c
mov ecx, 0x1f3
xor eax, eax
lea edi, [esp + 0x4b5]
mov byte [esp + 0x4b4], 0
rep stosd dword es:[edi], eax
mov esi, dword [esi + 0x5f0]
mov byte [esp + 0x1cd4], 6
stosw word es:[edi], ax
test esi, esi
stosb byte es:[edi], al
jne 0x40701f
mov esi, 0x422608
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x40702c
mov eax, 0x422608
push esi
push eax
lea eax, [esp + 0x4bc]
push str._s_s
push eax
call fcn.0041800f
mov cl, byte [esp + 0x23]
add esp, 0x10
mov byte [esp + 0x54], cl
lea ecx, [esp + 0x54]
push 0
call fcn.0040c930
lea edi, [esp + 0x4b4]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
lea eax, [esp + 0x4b8]
mov bl, 7
push ecx
push eax
mov byte [esp + 0x1ce0], bl
call fcn.004151a0
lea ecx, [esp + 0x60]
lea edx, [esp + 0x70]
push ecx
push str._vrf
push edx
call fcn.004111a0
add esp, 0x18
mov ecx, dword [0x42260c]
xor esi, esi
push ecx
push esi
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x1ce0], 8
call fcn.0040e1f0
push 1
lea ecx, [esp + 0x68]
mov byte [esp + 0x1cd8], bl
call fcn.0040c930
mov eax, dword [esp + 0x28]
cmp eax, esi
jne 0x4070d5
mov eax, 0x422608
lea edx, [esp + 0x64]
push eax
push edx
call fcn.00412250
add esp, 8
mov ecx, dword [0x422604]
mov byte [esp + 0x1cd4], 9
push ecx
push esi
push eax
mov ecx, 0x42c4e8
call fcn.0040c980
push 1
lea ecx, [esp + 0x68]
mov byte [esp + 0x1cd8], bl
call fcn.0040cf30
call dword [sym.imp.MxHttpRq.dll_Init]
push esi
call dword [sym.imp.MxHttpRq.dll_CreateAsynHttpClient]
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp ecx, esi
pop ebp
pop ebx
jne 0x40712f
mov ecx, 0x422608
push esi
push esi
push esi
push esi
push esi
push esi
push 0x401680
push ecx
push eax
call dword [sym.imp.MxHttpRq.dll_MxHttpRequestByCallBack]
mov ecx, dword [esp + 0x74]
add esp, 0x24
cmp ecx, esi
je 0x407169
mov al, byte [ecx - 1]
test al, al
je 0x40715f
cmp al, 0xff
je 0x40715f
dec al
mov byte [ecx - 1], al
jmp 0x407169
dec ecx
push ecx
call fcn.0041749e
add esp, 4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x50], esi
cmp ecx, esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
je 0x407199
mov al, byte [ecx - 1]
test al, al
je 0x40718f
cmp al, 0xff
je 0x40718f
dec al
mov byte [ecx - 1], al
jmp 0x407199
dec ecx
push ecx
call fcn.0041749e
add esp, 4
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], esi
cmp ecx, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
je 0x4071cb
mov al, byte [ecx - 1]
test al, al
je 0x4071bf
cmp al, 0xff
je 0x4071bf
dec al
mov byte [ecx - 1], al
jmp 0x4071cb
add ecx, 0xfffffffe
push ecx
call fcn.0041749e
add esp, 4
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x30], esi
cmp ecx, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
je 0x4071fd
mov al, byte [ecx - 1]
test al, al
je 0x4071f1
cmp al, 0xff
je 0x4071f1
dec al
mov byte [ecx - 1], al
jmp 0x4071fd
add ecx, 0xfffffffe
push ecx
call fcn.0041749e
add esp, 4
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x40], esi
cmp ecx, esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
je 0x40722f
mov al, byte [ecx - 1]
test al, al
je 0x407223
cmp al, 0xff
je 0x407223
dec al
mov byte [ecx - 1], al
jmp 0x40722f
add ecx, 0xfffffffe
push ecx
call fcn.0041749e
add esp, 4
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x70], esi
cmp ecx, esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
je 0x407264
mov al, byte [ecx - 1]
test al, al
je 0x407258
cmp al, 0xff
je 0x407258
dec al
mov byte [ecx - 1], al
jmp 0x407264
add ecx, 0xfffffffe
push ecx
call fcn.0041749e
add esp, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
pop edi
cmp ecx, esi
pop esi
je 0x4072b7
mov al, byte [ecx - 1]
test al, al
je 0x4072ab
cmp al, 0xff
je 0x4072ab
dec al
mov byte [ecx - 1], al
mov ecx, dword [esp + 0x1cbc]
mov dword fs:[0], ecx
add esp, 0x1cc8
ret
add ecx, 0xfffffffe
push ecx
call fcn.0041749e
add esp, 4
mov ecx, dword [esp + 0x1cbc]
mov dword fs:[0], ecx
add esp, 0x1cc8
ret