Function at 0x406a90
Capabilities:
Parse pe header
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x436e23
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x443284]
xor eax, esp
mov dword [esp + 0x238], eax
push ebx
push esi
push edi
mov eax, dword [0x443284]
xor eax, esp
push eax
lea eax, [esp + 0x250]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor ebx, ebx
push ebx
mov edi, ecx
push 0x439e24
lea esi, [esp + 0x218]
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], eax
mov dword [esp + 0x230], 7
mov dword [esp + 0x22c], ebx
mov word [esp + 0x21c], bx
call fcn.00401d80
mov dword [esp + 0x258], ebx
push ebx
push 0x43a36a
lea ecx, [esp + 0x170]
mov dword [esp + 0x188], 0xf
mov dword [esp + 0x184], ebx
mov byte [esp + 0x174], bl
call fcn.00401b50
mov ecx, dword [esp + 0x8c]
mov eax, 1
mov byte [esp + 0x258], al
add edi, 0x208
mov dword [ecx], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x20], ebx
push edi
mov ebx, str.update
lea esi, [esp + 0x150]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], edi
call fcn.00402310
add esp, 4
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x218]
mov byte [esp + 0x260], 2
call fcn.00401a50
mov esi, 8
mov byte [esp + 0x258], 1
cmp dword [esp + 0x164], esi
jb 0x406bcc
mov edx, dword [esp + 0x150]
push edx
call fcn.0041f829
add esp, 4
cmp dword [esp + 0x228], esi
mov eax, dword [esp + 0x214]
jae 0x406be3
lea eax, [esp + 0x214]
push 6
push eax
call fcn.00420560
add esp, 8
test eax, eax
jne 0x408829
push edi
mov ebx, str.update.idx
lea esi, [esp + 0x150]
call fcn.00402310
add esp, 4
push 0xffffffffffffffff
xor ebx, ebx
push ebx
lea ecx, [esp + 0x218]
mov byte [esp + 0x260], 3
call fcn.00401a50
mov byte [esp + 0x258], 1
cmp dword [esp + 0x164], 8
jb 0x406c46
mov eax, dword [esp + 0x150]
push eax
call fcn.0041f829
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebx
push ebx
lea eax, [esp + 0x234]
mov word [ecx + 4], bx
call fcn.00401a50
lea esi, [esp + 0x168]
call fcn.00412070
add esp, 0x1c
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x174]
mov byte [esp + 0x264], 4
call fcn.00401960
mov esi, 0x10
mov byte [esp + 0x258], 1
cmp dword [esp + 0x164], esi
jb 0x406cb9
mov ecx, dword [esp + 0x150]
push ecx
call fcn.0041f829
add esp, 4
cmp dword [esp + 0x228], 8
mov eax, dword [esp + 0x214]
jae 0x406cd1
lea eax, [esp + 0x214]
push 6
push eax
call fcn.00420560
add esp, 8
test eax, eax
jne 0x406d00
cmp dword [esp + 0x180], esi
mov eax, dword [esp + 0x16c]
jae 0x406cf7
lea eax, [esp + 0x16c]
push eax
call fcn.0041fb7a
add esp, 4
push edi
mov ebx, str.update
lea esi, [esp + 0x150]
call fcn.00402310
add esp, 4
push 0xffffffffffffffff
xor ebx, ebx
push ebx
lea ecx, [esp + 0x218]
mov byte [esp + 0x260], 5
call fcn.00401a50
mov byte [esp + 0x258], 1
cmp dword [esp + 0x164], 8
jb 0x406d50
mov edx, dword [esp + 0x150]
push edx
call fcn.0041f829
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebx
push ebx
mov eax, edi
mov word [ecx + 4], bx
call fcn.00401a50
mov edx, ebx
lea ecx, [esp + 0x22c]
call fcn.004189d0
add esp, 0x1c
cmp eax, ebx
jle 0x40881c
call fcn.00411b50
mov esi, eax
mov dword [esp + 0x3c], esi
call fcn.00411b50
mov dword [esp + 0x84], eax
call fcn.00411b50
push ebx
mov edi, 0xf
push 0x43a36a
lea ecx, [esp + 0x154]
mov dword [esp + 0x68], eax
mov dword [esp + 0x16c], edi
mov dword [esp + 0x168], ebx
mov byte [esp + 0x158], bl
call fcn.00401b50
mov byte [esp + 0x258], 6
push ebx
push 0x43a36a
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x1f8], edi
mov dword [esp + 0x1f4], ebx
mov byte [esp + 0x1e4], bl
call fcn.00401b50
mov byte [esp + 0x258], 7
push ebx
push 0x43a36a
lea ecx, [esp + 0x1a8]
mov dword [esp + 0x1c0], edi
mov dword [esp + 0x1bc], ebx
mov byte [esp + 0x1ac], bl
call fcn.00401b50
mov byte [esp + 0x258], 8
push ebx
push 0x43a36a
lea ecx, [esp + 0x18c]
mov dword [esp + 0x1a4], edi
mov dword [esp + 0x1a0], ebx
mov byte [esp + 0x190], bl
call fcn.00401b50
mov byte [esp + 0x258], 9
push ebx
push 0x43a36a
lea ecx, [esp + 0x1fc]
mov dword [esp + 0x214], edi
mov dword [esp + 0x210], ebx
mov byte [esp + 0x200], bl
call fcn.00401b50
mov byte [esp + 0x258], 0xa
push ebx
push 0x43a36a
lea ecx, [esp + 0x234]
mov dword [esp + 0x24c], edi
mov dword [esp + 0x248], ebx
mov byte [esp + 0x238], bl
call fcn.00401b50
mov byte [esp + 0x258], 0xb
push ebx
push 0x43a36a
lea ecx, [esp + 0x138]
mov dword [esp + 0x150], edi
mov dword [esp + 0x14c], ebx
mov byte [esp + 0x13c], bl
call fcn.00401b50
mov byte [esp + 0x258], 0xc
push ebx
push 0x43a36a
lea ecx, [esp + 0x11c]
mov dword [esp + 0x134], edi
mov dword [esp + 0x130], ebx
mov byte [esp + 0x120], bl
call fcn.00401b50
mov byte [esp + 0x258], 0xd
mov dword [esp + 0x1d4], edi
push ebx
push 0x43a36a
lea ecx, [esp + 0x1c4]
mov dword [esp + 0x1d8], ebx
mov byte [esp + 0x1c8], bl
call fcn.00401b50
mov byte [esp + 0x258], 0xe
push ebx
push 0x43a36a
lea ecx, [esp + 0x100]
mov dword [esp + 0x118], edi
mov dword [esp + 0x114], ebx
mov byte [esp + 0x104], bl
call fcn.00401b50
mov byte [esp + 0x258], 0xf
call fcn.00410480
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ebx
mov byte [esp + 0x258], 0x10
mov eax, dword [esi + 0x10]
mov esi, dword [esi + 8]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x190]
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00401960
sub esp, 0x1c
mov byte [esp + 0x294], 0x11
mov ecx, esp
mov dword [esp + 0xa0], esp
push ebx
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x43a36a
mov byte [ecx + 4], bl
call fcn.00401b50
sub esp, 0x1c
mov byte [esp + 0x2b0], 0x12
mov ecx, esp
mov dword [esp + 0x74], esp
push 3
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x43a704
mov byte [ecx + 4], bl
call fcn.00401b50
sub esp, 0x1c
mov byte [esp + 0x2cc], 0x13
mov ecx, esp
mov dword [esp + 0x98], esp
push 7
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.product
mov byte [ecx + 4], bl
call fcn.00401b50
mov ecx, esi
lea esi, [esp + 0x104]
mov byte [esp + 0x2cc], 0x10
call fcn.00418d50
add esp, 0x74
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x158]
mov byte [esp + 0x264], 0x14
call fcn.00401960
mov byte [esp + 0x258], 0x10
cmp dword [esp + 0xa8], 0x10
jb 0x40708d
mov eax, dword [esp + 0x94]
push eax
call fcn.0041f829
add esp, 4
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x10]
mov esi, dword [eax + 8]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x44], esp
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x190]
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00401960
sub esp, 0x1c
mov byte [esp + 0x294], 0x15
mov ecx, esp
mov dword [esp + 0x50], esp
push ebx
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x43a36a
mov byte [ecx + 4], bl
call fcn.00401b50
sub esp, 0x1c
mov byte [esp + 0x2b0], 0x16
mov ecx, esp
mov dword [esp + 0xbc], esp
push 6
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.amount
mov byte [ecx + 4], bl
call fcn.00401b50
sub esp, 0x1c
mov byte [esp + 0x2cc], 0x17
mov ecx, esp
mov dword [esp + 0x90], esp
push 7
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.product
mov byte [ecx + 4], bl
call fcn.00401b50
mov ecx, esi
mov byte [esp + 0x2cc], 0x10
call fcn.00418f30
add esp, 0x74
cmp dword [esp + 0x160], 1
mov esi, eax
jbe 0x4087ec
cmp esi, ebx
jle 0x4087ec
call fcn.00414fa0
push eax
push str.___s__
push 0x104
push 0x104
push 0x445be0
call fcn.0041f84a
add esp, 0x14
push esi
sub esp, 0x1c
lea eax, [esp + 0x16c]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call fcn.0040f900
lea esi, [esp + 0x60]
call fcn.004120d0
add esp, 0x1c
mov byte [esp + 0x25c], 0x18
cmp dword [eax + 0x18], 8
jb 0x4071b3
mov eax, dword [eax + 4]
jmp 0x4071b6
add eax, 4
push eax
push str.UpdateCtrl::CheckLocalUpdate:_find_version__s___d_modules_.
push 4
call fcn.004154c0
add esp, 0x10
lea ecx, [esp + 0x40]
mov byte [esp + 0x258], 0x10
call fcn.004018f0
mov esi, dword [esp + 0x84]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
push ecx
push ebx
push edx
call fcn.00424a50
mov eax, dword [esp + 0x178]
add esp, 0xc
cmp dword [esp + 0x180], 0x10
jae 0x407207
lea eax, [esp + 0x16c]
mov ecx, dword [esi + 8]
push eax
mov eax, dword [esi + 0x10]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesA]
test eax, eax
jbe 0x4085aa
mov esi, dword [esi + 8]
cmp byte [esi], bl
je 0x4085b2
lea esp, [esp]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x407235
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x1e0]
call fcn.00401b50
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x407253
sub eax, edx
lea edx, [esi + eax + 1]
mov ecx, str.product
lea edi, [esp + 0x1d8]
mov dword [esp + 0x64], edx
call fcn.004117e0
test al, al
jne 0x408113
lea eax, [esp + 0x2c]
push eax
call fcn.0040fcb0
call fcn.00414fa0
push eax
push str.___s__
push 0x104
push 0x104
push 0x445be0
call fcn.0041f84a
sub esp, 8
mov ecx, esp
mov dword [esp + 0x40], esp
push 0xffffffffffffffff
push ebx
mov edx, edi
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00401960
lea esi, [esp + 0x5c]
call fcn.004120d0
add esp, 0x1c
mov byte [esp + 0x258], 0x19
cmp dword [eax + 0x18], 8
jb 0x4072e8
mov eax, dword [eax + 4]
jmp 0x4072eb
add eax, 4
push eax
push str.UpdateCtrl::CheckLocalUpdate:_find_modules__s.
push 4
call fcn.004154c0
add esp, 0xc
lea ecx, [esp + 0x40]
mov byte [esp + 0x258], 0x10
call fcn.004018f0
mov edi, dword [esp + 0x3c]
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 8]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x44], esp
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x190]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00401960
sub esp, 0x1c
mov byte [esp + 0x294], 0x1a
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x43a36a
call fcn.00401810
sub esp, 0x1c
mov byte [esp + 0x2b0], 0x1b
mov ecx, esp
mov dword [esp + 0x74], esp
push 0x43a704
call fcn.00401810
sub esp, 0x1c
mov ecx, esp
mov byte [esp + 0x2cc], 0x1c
mov dword [esp + 0xd0], esp
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x254]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00401960
mov ecx, esi
lea esi, [esp + 0xb4]
mov byte [esp + 0x2cc], 0x10
call fcn.00418d50
add esp, 0x74
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x264], 0x1d
call fcn.00401960
mov ecx, esi
mov byte [esp + 0x258], 0x10
call fcn.00401850
mov ecx, dword [edi + 0x10]
mov esi, dword [edi + 8]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x7c], esp
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x190]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00401960
mov byte [esp + 0x278], 0x1e
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x43a36a
call fcn.00401810
sub esp, 0x1c
mov byte [esp + 0x2b0], 0x1f
mov ecx, esp
mov dword [esp + 0x6c], esp
push 0x43a7f0
call fcn.00401810
sub esp, 0x1c
mov ecx, esp
mov byte [esp + 0x2cc], 0x20
mov dword [esp + 0x90], esp
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x254]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00401960
mov ecx, esi
lea esi, [esp + 0xb4]
mov byte [esp + 0x2cc], 0x10
call fcn.00418d50
add esp, 0x74
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x190]
mov byte [esp + 0x264], 0x21
call fcn.00401960
mov ecx, esi
mov byte [esp + 0x258], 0x10
call fcn.00401850
mov ecx, dword [edi + 0x10]
mov esi, dword [edi + 8]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x7c], esp
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x190]
jmp 0x44f840
mov ecx, dword [esp + 0x64]
cmp byte [ecx], bl
je 0x4085b2
mov esi, ecx
jmp 0x407230
lea ecx, [esp + 0xf8]
call fcn.00401850
lea ecx, [esp + 0x1bc]
call fcn.00401850
lea ecx, [esp + 0x114]
call fcn.00401850
lea ecx, [esp + 0x130]
call fcn.00401850
lea ecx, [esp + 0x22c]
call fcn.00401850
lea ecx, [esp + 0x1f4]
call fcn.00401850
lea ecx, [esp + 0x184]
call fcn.00401850
lea ecx, [esp + 0x1a0]
call fcn.00401850
lea ecx, [esp + 0x1d8]
call fcn.00401850
lea ecx, [esp + 0x14c]
mov byte [esp + 0x258], 1
call fcn.00401850
jmp 0x408707
mov dword [esp + 0x20], 0xfffffffd
lea eax, [esp + 0x2c]
push eax
call fcn.0040fcb0
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041f829
mov esi, 0x10
add esp, 4
cmp dword [esp + 0x110], esi
mov dword [esp + 0x30], ebx
jb 0x4085eb
mov edx, dword [esp + 0xfc]
push edx
call fcn.0041f829
add esp, 4
cmp dword [esp + 0x1d4], esi
mov edi, 0xf
mov dword [esp + 0x110], edi
mov dword [esp + 0x10c], ebx
mov byte [esp + 0xfc], bl
jb 0x40861e
mov eax, dword [esp + 0x1c0]
push eax
call fcn.0041f829
add esp, 4
cmp dword [esp + 0x12c], esi
mov dword [esp + 0x1d4], edi
mov dword [esp + 0x1d0], ebx
mov byte [esp + 0x1c0], bl
jb 0x40864c
mov ecx, dword [esp + 0x118]
push ecx
call fcn.0041f829
add esp, 4
cmp dword [esp + 0x148], esi
mov dword [esp + 0x12c], edi
mov dword [esp + 0x128], ebx
mov byte [esp + 0x118], bl
jb 0x40867a
mov edx, dword [esp + 0x134]
push edx
call fcn.0041f829
add esp, 4
cmp dword [esp + 0x244], esi
mov dword [esp + 0x148], edi
mov dword [esp + 0x144], ebx
mov byte [esp + 0x134], bl
jb 0x4086a8
mov eax, dword [esp + 0x230]
push eax
call fcn.0041f829
add esp, 4
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x244], edi
mov dword [esp + 0x240], ebx
mov byte [esp + 0x230], bl
call fcn.00401850
lea ecx, [esp + 0x184]
call fcn.00401850
lea ecx, [esp + 0x1a0]
call fcn.00401850
lea ecx, [esp + 0x1d8]
call fcn.00401850
lea ecx, [esp + 0x14c]
mov byte [esp + 0x258], 1
call fcn.00401850
cmp dword [esp + 0x20], ebx
jge 0x40873d
call fcn.00414fa0
push eax
push str.___s__
push 0x104
push 0x104
push 0x445be0
call fcn.0041f84a
mov eax, dword [esp + 0x34]
add esp, 0x14
push eax
push str.check_local_update_fail__error_code___d_.
push 2
call fcn.004154c0
add esp, 0xc
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x40874e
push eax
call fcn.00411cd0
add esp, 4
mov eax, dword [esp + 0x84]
cmp eax, ebx
je 0x408762
push eax
call fcn.00411cd0
add esp, 4
mov eax, dword [esp + 0x60]
cmp eax, ebx
je 0x408773
push eax
call fcn.00411cd0
add esp, 4
cmp dword [esp + 0x180], 0x10
jb 0x40878d
mov ecx, dword [esp + 0x16c]
push ecx
call fcn.0041f829
add esp, 4
xor eax, eax
cmp dword [esp + 0x228], 8
mov dword [esp + 0x180], 0xf
mov dword [esp + 0x17c], eax
mov byte [esp + 0x16c], al
jb 0x4087c2
mov edx, dword [esp + 0x214]
push edx
call fcn.0041f829
add esp, 4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x250]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x238]
xor ecx, esp
call fcn.0041f134
mov esp, ebp
pop ebp
ret 4
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x24], 0xfffffffe
call fcn.0040fcb0
mov edx, dword [esp + 0x30]
push edx
call fcn.0041f829
add esp, 4
mov dword [esp + 0x30], ebx
jmp 0x4083a5
mov dword [esp + 0x20], 0xffffffff
jmp 0x408707
mov dword [esp + 0x28], 0
jmp 0x408773