Function at 0x403440
Capabilities:
Delete registry key
Get geographical location
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [0x677000]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 0x1c], 8
push ebx
push esi
mov esi, dword [ebp + 0x20]
push edi
push 0
lea ecx, [ebp - 8]
push ecx
push 0
push 0x20006
push 0
push 0
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
push 0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 8], 0
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x403edf
cmp dword [esi + 0x14], 8
mov eax, dword [esi + 0x10]
jb 0x40349c
mov ecx, dword [esi]
jmp 0x40349e
mov ecx, esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push 0x6244e0
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x2c], 8
mov eax, dword [esi + 0x28]
lea ecx, [esi + 0x18]
jb 0x4034d1
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.DEVID
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x44], 8
mov eax, dword [esi + 0x40]
lea ecx, [esi + 0x30]
jb 0x4034fe
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push 0x6244f4
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x5c], 8
mov eax, dword [esi + 0x58]
lea ecx, [esi + 0x48]
jb 0x40352b
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.INSTALLDATE
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x74], 8
mov eax, dword [esi + 0x70]
lea ecx, [esi + 0x60]
jb 0x403558
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.ONLINEMODE
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x8c], 8
mov eax, dword [esi + 0x88]
lea ecx, [esi + 0x78]
jb 0x40358b
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.INSTALLFLOW
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0xa4], 8
mov eax, dword [esi + 0xa0]
lea ecx, [esi + 0x90]
jb 0x4035c1
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.SKIPSOFTWARE
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0xbc], 8
mov eax, dword [esi + 0xb8]
lea ecx, [esi + 0xa8]
jb 0x4035f7
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.INSTALLITEM
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0xd4], 8
mov eax, dword [esi + 0xd0]
lea ecx, [esi + 0xc0]
jb 0x40362d
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.RESIDENCE
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0xec], 8
mov eax, dword [esi + 0xe8]
lea ecx, [esi + 0xd8]
jb 0x403663
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.COUNTRY
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x104], 8
mov eax, dword [esi + 0x100]
lea ecx, [esi + 0xf0]
jb 0x403699
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.SCREENSIZE
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x11c], 8
mov eax, dword [esi + 0x118]
lea ecx, [esi + 0x108]
jb 0x4036cf
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.SELECT_METHOD
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x134], 8
mov eax, dword [esi + 0x130]
lea ecx, [esi + 0x120]
jb 0x403705
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.UREG_DONE
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x14c], 8
mov eax, dword [esi + 0x148]
lea ecx, [esi + 0x138]
jb 0x40373b
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.FAILSTEP
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x164], 8
mov eax, dword [esi + 0x160]
lea ecx, [esi + 0x150]
jb 0x403771
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.LANFAIL
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x17c], 8
mov eax, dword [esi + 0x178]
lea ecx, [esi + 0x168]
jb 0x4037a7
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.SYSTEMLOCALE
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x194], 8
mov eax, dword [esi + 0x190]
lea ecx, [esi + 0x180]
jb 0x4037dd
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.UILANGID
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x1ac], 8
mov eax, dword [esi + 0x1a8]
lea ecx, [esi + 0x198]
jb 0x403813
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.DEFAULTUILANGID
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x1c4], 8
mov eax, dword [esi + 0x1c0]
lea ecx, [esi + 0x1b0]
jb 0x403849
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.INTERFACE
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x1dc], 8
mov eax, dword [esi + 0x1d8]
lea ecx, [esi + 0x1c8]
jb 0x40387f
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.WIRELESSMETHOD
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x1f4], 8
mov eax, dword [esi + 0x1f0]
lea ecx, [esi + 0x1e0]
jb 0x4038b5
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.TUTOLASTCALL
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x20c], 8
mov eax, dword [esi + 0x208]
lea ecx, [esi + 0x1f8]
jb 0x4038eb
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.TUTOCOUNTCABLELESS
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x224], 8
mov eax, dword [esi + 0x220]
lea ecx, [esi + 0x210]
jb 0x403921
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.TUTOCOUNTMANUAL
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x23c], 8
mov eax, dword [esi + 0x238]
lea ecx, [esi + 0x228]
jb 0x403957
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.TUTOCOUNTPUSH
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x254], 8
mov eax, dword [esi + 0x250]
lea ecx, [esi + 0x240]
jb 0x40398d
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.TUTOLESS_COUNTCABLELESS_FAIL
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x26c], 8
mov eax, dword [esi + 0x268]
lea ecx, [esi + 0x258]
jb 0x4039c3
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.INSTLANSETUP
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x284], 8
mov eax, dword [esi + 0x280]
lea ecx, [esi + 0x270]
jb 0x4039f9
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.HEADADJUST
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x29c], 8
mov eax, dword [esi + 0x298]
lea ecx, [esi + 0x288]
jb 0x403a2f
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.TESTPRINT
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x2b4], 8
mov eax, dword [esi + 0x2b0]
lea ecx, [esi + 0x2a0]
jb 0x403a65
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.TUTORETURN
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x2cc], 8
mov eax, dword [esi + 0x2c8]
lea ecx, [esi + 0x2b8]
jb 0x403a9b
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.SETUPTIME
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x2e4], 8
mov eax, dword [esi + 0x2e0]
lea ecx, [esi + 0x2d0]
jb 0x403ad1
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.IF_CHANGE
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x2fc], 8
mov eax, dword [esi + 0x2f8]
lea ecx, [esi + 0x2e8]
jb 0x403b07
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.IPADDKIND
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x314], 8
mov eax, dword [esi + 0x310]
lea ecx, [esi + 0x300]
jb 0x403b3d
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.SERIALHELP
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x32c], 8
mov eax, dword [esi + 0x328]
lea ecx, [esi + 0x318]
jb 0x403b73
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.IPADDSEARCH
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x344], 8
mov eax, dword [esi + 0x340]
lea ecx, [esi + 0x330]
jb 0x403ba9
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.IPSEARCHRESULT
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x35c], 8
mov eax, dword [esi + 0x358]
lea ecx, [esi + 0x348]
jb 0x403bdf
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.DEFAULTPRINTER
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x38c], 8
mov eax, dword [esi + 0x388]
lea ecx, [esi + 0x378]
jb 0x403c15
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.UNLOCKWALL
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x3a4], 8
mov eax, dword [esi + 0x3a0]
lea ecx, [esi + 0x390]
jb 0x403c4b
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.RESULTNETVIAUSB
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x3bc], 8
mov eax, dword [esi + 0x3b8]
lea ecx, [esi + 0x3a8]
jb 0x403c81
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.PRNADMPASS
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x3d4], 8
mov eax, dword [esi + 0x3d0]
lea ecx, [esi + 0x3c0]
jb 0x403cb7
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.NICERROR
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x3ec], 8
mov eax, dword [esi + 0x3e8]
lea ecx, [esi + 0x3d8]
jb 0x403ced
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.RESULTCABLELESS
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x404], 8
mov eax, dword [esi + 0x400]
lea ecx, [esi + 0x3f0]
jb 0x403d23
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.RESULTSMART
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x41c], 8
mov eax, dword [esi + 0x418]
lea ecx, [esi + 0x408]
jb 0x403d59
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.COUNT24FROMPC
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x434], 8
mov eax, dword [esi + 0x430]
lea ecx, [esi + 0x420]
jb 0x403d8f
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.COUNT5FROMPC
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x44c], 8
mov eax, dword [esi + 0x448]
lea ecx, [esi + 0x438]
jb 0x403dc5
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.CONNECTSSID
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x464], 8
mov eax, dword [esi + 0x460]
lea ecx, [esi + 0x450]
jb 0x403dfb
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.COUNT24FROMPRN
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x47c], 8
mov eax, dword [esi + 0x478]
lea ecx, [esi + 0x468]
jb 0x403e31
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.COUNT5FROMPRN
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
cmp dword [esi + 0x494], 8
mov eax, dword [esi + 0x490]
lea ecx, [esi + 0x480]
jb 0x403e63
mov ecx, dword [ecx]
lea eax, [eax*2 + 2]
push eax
push ecx
push 1
push 0
push str.ENCRYPTSCHEME
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
mov eax, dword [esi + 0x4a8]
add esi, 0x498
cmp dword [esi + 0x14], 8
jb 0x403e92
mov esi, dword [esi]
lea eax, [eax*2 + 2]
push eax
push esi
push 1
push 0
push str.NEEDPROXY
push dword [ebp - 8]
call edi
test eax, eax
jne 0x403eba
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov bl, 1
jmp 0x403ee1
mov eax, dword [ebp - 8]
test eax, eax
je 0x403ec8
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
xor bl, bl
cmp dword [ebp + 0x1c], 8
jb 0x403ef2
push dword [ebp + 8]
call fcn.0049500b
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov al, bl
xor ecx, ebp
pop ebx
call fcn.005b7f8f
mov esp, ebp
pop ebp
ret 0x1c