Function at 0x404790
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x41b573
push eax
mov eax, 0x1cbc
mov dword fs:[0], esp
call fcn.00412a70
mov al, byte [esp + 3]
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor edi, edi
lea ecx, [esp + 0x94]
push edi
mov byte [esp + 0x98], al
call fcn.00409580
lea ecx, [esp + 0x74]
mov dword [esp + 0x1cd4], edi
push ecx
mov ecx, esi
mov dword [esp + 0x24], edi
call fcn.00405060
push str.Maxthon.exe
lea edx, [esp + 0x68]
push 0x426c48
push edx
mov byte [esp + 0x1ce0], 1
call fcn.0040cf40
add esp, 0xc
mov eax, dword [esp + 0x68]
mov byte [esp + 0x1cd4], 2
cmp eax, edi
jne 0x40481a
mov eax, 0x41d59c
lea ecx, [esi + 0x478]
push ecx
push eax
mov ecx, esi
call fcn.00404dd0
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
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, edi
jne 0x404958
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]
stosw word es:[edi], ax
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x20]
push edx
push eax
push 0
mov edi, 0x104
push str.iCountry
push ecx
mov dword [esp + 0x30], edi
call ebx
lea edx, [esp + 0xa4]
push edx
call fcn.0041255c
add esp, 4
lea ecx, [esp + 0x94]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.00409380
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], edi
call ebx
lea edx, [esp + 0x2ac]
lea eax, [esp + 0x84]
push edx
push eax
mov ecx, esi
call fcn.00405580
mov eax, dword [esp + 0x88]
mov byte [esp + 0x1cd4], 3
test eax, eax
jne 0x404933
mov eax, 0x41d5a4
push eax
call fcn.0040fd60
add esp, 4
lea ecx, [esp + 0x84]
mov dword [esp + 0x20], eax
mov byte [esp + 0x1cd4], 2
push 1
call fcn.00409120
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 + 0x38]
mov byte [esp + 0x38], dl
call fcn.00409580
push str.mood
call fcn.0041255c
add esp, 4
lea ecx, [esp + 0x34]
push eax
push str.mood
call fcn.00409380
lea eax, [esp + 0x14]
mov byte [esp + 0x1cd4], 4
push eax
push 0x20019
push edi
push str.SoftwareMaxthon2
push 0x80000001
call ebp
cmp eax, edi
jne 0x404a22
mov word [esp + 0xa4], di
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xa6]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x1c]
lea edx, [esp + 0xa4]
stosw word es:[edi], ax
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push edx
push eax
push 0
push 0x422f30
push ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], 0x104
call ebx
lea edx, [esp + 0xa4]
push edx
call fcn.0041255c
add esp, 4
lea ecx, [esp + 0x34]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.00409380
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 + 0x28]
mov byte [esp + 0x28], dl
call fcn.00409580
mov eax, dword [esi + 0x4c4]
mov byte [esp + 0x1cd4], 5
cmp eax, edi
jne 0x404a56
mov eax, 0x41d59c
push eax
push str.zh_cn
call fcn.00412a2f
add esp, 8
test eax, eax
jne 0x404a7d
push str.http:__statcn_c.maxthon.com_mx2_uninst_
call fcn.0041255c
add esp, 4
push eax
push str.http:__statcn_c.maxthon.com_mx2_uninst_
jmp 0x404a90
push str.http:__stat_c.maxthon.com_mx2_uninst_
call fcn.0041255c
add esp, 4
push eax
push str.http:__stat_c.maxthon.com_mx2_uninst_
lea ecx, [esp + 0x2c]
call fcn.00409380
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]
xor ebp, ebp
cmp eax, ebp
mov ebx, 0x41d59c
je 0x404ac2
mov ebx, eax
mov eax, dword [esp + 0x98]
mov edi, 0x41d59c
cmp eax, ebp
je 0x404ad4
mov edi, eax
mov eax, dword [esi + 0x47c]
mov edx, 0x41d59c
cmp eax, ebp
je 0x404ae5
mov edx, eax
mov ecx, dword [esp + 0x78]
cmp ecx, ebp
jne 0x404af2
mov ecx, 0x41d59c
mov eax, dword [esp + 0x28]
cmp eax, ebp
jne 0x404aff
mov eax, 0x41d59c
push ebx
push edi
mov edi, dword [esp + 0x28]
push edi
push edx
push ecx
push eax
lea eax, [esp + 0xc9c]
push str._s_s_ver_s_lan0x_d_lc_s_pn_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x20
lea ecx, [esp + 0xc84]
lea edx, [esp + 0x44]
push ecx
push edx
mov ecx, esi
call fcn.00405580
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 + 0x534]
mov byte [esp + 0x1cd4], 6
stosw word es:[edi], ax
cmp esi, ebp
stosb byte es:[edi], al
jne 0x404b65
mov esi, 0x41d5a4
mov eax, dword [esp + 0x48]
cmp eax, ebp
jne 0x404b72
mov eax, 0x41d5a4
push esi
push eax
lea eax, [esp + 0x4bc]
push 0x422e3c
push eax
call fcn.004129dd
mov cl, byte [esp + 0x23]
add esp, 0x10
mov byte [esp + 0x54], cl
lea ecx, [esp + 0x54]
push ebp
call fcn.00409120
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.004106d0
lea ecx, [esp + 0x60]
lea edx, [esp + 0x90]
push ecx
push str._vrf
push edx
call fcn.0040d1c0
add esp, 0x18
mov ecx, dword [0x41d5ac]
mov byte [esp + 0x1cd4], 8
push ecx
push ebp
push eax
lea ecx, [esp + 0x50]
call fcn.0040a6d0
push 1
lea ecx, [esp + 0x88]
mov byte [esp + 0x1cd8], bl
call fcn.00409120
call dword [sym.imp.MxHttpRq.dll_Init]
push ebp
call dword [sym.imp.MxHttpRq.dll_CreateAsynHttpClient]
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp ecx, ebp
jne 0x404c2e
mov ecx, 0x41d5a4
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push 0x401120
push ecx
push eax
call dword [sym.imp.MxHttpRq.dll_MxHttpRequestByCallBack]
mov ecx, dword [esp + 0x7c]
add esp, 0x24
cmp ecx, ebp
je 0x404c68
mov al, byte [ecx - 1]
test al, al
je 0x404c5e
cmp al, 0xff
je 0x404c5e
dec al
mov byte [ecx - 1], al
jmp 0x404c68
dec ecx
push ecx
call fcn.00411f90
add esp, 4
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], ebp
cmp ecx, ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
je 0x404c98
mov al, byte [ecx - 1]
test al, al
je 0x404c8e
cmp al, 0xff
je 0x404c8e
dec al
mov byte [ecx - 1], al
jmp 0x404c98
dec ecx
push ecx
call fcn.00411f90
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], ebp
cmp ecx, ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
je 0x404cca
mov al, byte [ecx - 1]
test al, al
je 0x404cbe
cmp al, 0xff
je 0x404cbe
dec al
mov byte [ecx - 1], al
jmp 0x404cca
add ecx, 0xfffffffe
push ecx
call fcn.00411f90
add esp, 4
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x28], ebp
cmp ecx, ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
je 0x404cfc
mov al, byte [ecx - 1]
test al, al
je 0x404cf0
cmp al, 0xff
je 0x404cf0
dec al
mov byte [ecx - 1], al
jmp 0x404cfc
add ecx, 0xfffffffe
push ecx
call fcn.00411f90
add esp, 4
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x38], ebp
cmp ecx, ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
je 0x404d2e
mov al, byte [ecx - 1]
test al, al
je 0x404d22
cmp al, 0xff
je 0x404d22
dec al
mov byte [ecx - 1], al
jmp 0x404d2e
add ecx, 0xfffffffe
push ecx
call fcn.00411f90
add esp, 4
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x68], ebp
cmp ecx, ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
je 0x404d60
mov al, byte [ecx - 1]
test al, al
je 0x404d54
cmp al, 0xff
je 0x404d54
dec al
mov byte [ecx - 1], al
jmp 0x404d60
add ecx, 0xfffffffe
push ecx
call fcn.00411f90
add esp, 4
mov ecx, dword [esp + 0x98]
pop edi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
pop esi
cmp ecx, ebp
pop ebp
pop ebx
je 0x404dac
mov al, byte [ecx - 1]
test al, al
je 0x404da0
cmp al, 0xff
je 0x404da0
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.00411f90
add esp, 4
mov ecx, dword [esp + 0x1cbc]
mov dword fs:[0], ecx
add esp, 0x1cc8
ret