Function at 0x408a50
Capabilities:
Check if file exists
Create thread
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x457752
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x46e780]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov esi, ecx
call fcn.00403da0
mov eax, dword [esi + 0x3cc]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push eax
mov eax, dword [esi + 0x20]
push 1
push 0x80
push eax
call edi
mov eax, dword [esi + 0x3cc]
mov ecx, dword [esi + 0x20]
push eax
xor ebx, ebx
push ebx
push 0x80
push ecx
call edi
mov edx, dword [esi + 0x79c]
mov edx, dword [edx + 0x134]
push 0x3ec
push esi
lea eax, [esp + 0x44]
push eax
lea edi, [esi + 0x79c]
push 0x5000000b
mov ebp, 0x41
push ebx
mov ecx, edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0xc8
mov dword [esp + 0x5c], ebp
call edx
lea eax, [edi + 0x54]
push eax
push 0x403
call fcn.00406df0
lea ecx, [edi + 0x58]
push ecx
push 0x402
call fcn.00406df0
lea edx, [edi + 0x5c]
push edx
push 0x41d
call fcn.00406df0
lea eax, [edi + 0x60]
push eax
push 0x410
call fcn.00406df0
lea ecx, [edi + 0x64]
push ecx
push 0x411
call fcn.00406df0
lea edx, [edi + 0x68]
push edx
push 0x401
call fcn.00406df0
push 1
push ebx
push ebx
mov eax, 0x16b
sub eax, dword [esi + 0x840]
mov ecx, edi
push eax
mov eax, 0x21c
sub eax, dword [esi + 0x83c]
cdq
sub eax, edx
sar eax, 1
push eax
push ebx
call fcn.00423364
mov edx, dword [esi + 0x848]
lea edi, [esi + 0x848]
push 0x422
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], 0xc8
mov dword [esp + 0x4c], ebp
push esi
lea eax, [esp + 0x44]
mov edx, dword [edx + 0x134]
push eax
push 0x4000000b
push ebx
mov ecx, edi
call edx
lea eax, [edi + 0x54]
push eax
push 0x420
call fcn.00406df0
lea ecx, [edi + 0x58]
push ecx
push 0x421
call fcn.00406df0
lea edx, [edi + 0x5c]
push edx
push 0x420
call fcn.00406df0
push 1
push ebx
push ebx
mov eax, 0x16b
sub eax, dword [esi + 0x8ec]
mov ecx, edi
push eax
mov eax, 0x21c
sub eax, dword [esi + 0x8e8]
cdq
sub eax, edx
sar eax, 1
push eax
push ebx
call fcn.00423364
mov edx, dword [esi + 0x9a0]
mov edx, dword [edx + 0x134]
push 0x3f4
push esi
lea eax, [esp + 0x44]
push eax
lea edi, [esi + 0x9a0]
push 0x5000000b
mov ebp, 0xe
push ebx
mov ecx, edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0x64
mov dword [esp + 0x5c], ebp
call edx
lea eax, [edi + 0x54]
push eax
push 0x412
call fcn.00406df0
lea ecx, [edi + 0x58]
push ecx
push 0x414
call fcn.00406df0
lea edx, [edi + 0x5c]
push edx
push 0x412
call fcn.00406df0
lea eax, [edi + 0x60]
push eax
push 0x413
call fcn.00406df0
lea ecx, [edi + 0x64]
push ecx
push 0x415
call fcn.00406df0
lea edx, [edi + 0x68]
push edx
push 0x413
call fcn.00406df0
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x460490
call fcn.00402500
mov ecx, edi
call fcn.00403850
push 1
push ebx
push ebx
push 0xd5
push 0x37
push ebx
mov ecx, edi
call fcn.00423364
cmp dword [edi + 0x60], ebx
je 0x408ce0
cmp dword [edi + 0x64], ebx
je 0x408ce0
cmp dword [edi + 0x68], ebx
je 0x408ce0
mov eax, dword [edi + 0x20]
push 1
push ebx
push eax
mov dword [edi + 0x7c], 1
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [esi + 0x8f4]
mov edx, dword [edx + 0x134]
push 0x3ef
push esi
lea eax, [esp + 0x44]
mov dword [esp + 0x50], ebp
push eax
lea ebp, [esi + 0x8f4]
push 0x5000000b
mov edi, 1
push ebx
mov ecx, ebp
mov dword [esi + 0xa48], edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0xb4
call edx
lea eax, [ebp + 0x54]
push eax
push 0x412
call fcn.00406df0
lea ecx, [ebp + 0x58]
push ecx
push 0x414
call fcn.00406df0
lea edx, [ebp + 0x5c]
push edx
push 0x412
call fcn.00406df0
lea eax, [ebp + 0x60]
push eax
push 0x413
call fcn.00406df0
lea ecx, [ebp + 0x64]
push ecx
push 0x415
call fcn.00406df0
lea edx, [ebp + 0x68]
push edx
push 0x413
call fcn.00406df0
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x4604a0
call fcn.00402500
mov ecx, ebp
call fcn.00403850
push edi
push ebx
push ebx
push 0xf1
push 0x37
push ebx
mov ecx, ebp
call fcn.00423364
mov dword [esi + 0xaa4], edi
lea edi, [esi + 0xa50]
call fcn.004085b0
lea edi, [esi + 0xd08]
mov dword [esi + 0xd5c], 1
call fcn.004085b0
push 0x4604bc
lea ecx, [esi + 0x2e0]
mov dword [esi + 0xb8c], 1
call fcn.004230bb
push 4
push 0x14
push 0x32
push 0xcd
push 0x159
push ebx
lea ecx, [esi + 0x354]
call fcn.00423364
push 1
push ebx
push ebx
push 0xb4
push 0x37
push ebx
lea ecx, [esi + 0xbac]
call fcn.00423364
push 1
push ebx
push ebx
push 0xb4
push 0x96
lea ecx, [esi + 0xac4]
push ebx
call fcn.00423364
push 1
push ebx
push ebx
push 0xd3
push 0x98
push ebx
lea ecx, [esi + 0xb38]
call fcn.00423364
push 1
push ebx
push ebx
push 0x10c
push 0x37
lea ecx, [esi + 0xc20]
push ebx
call fcn.00423364
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x46229c
lea edi, [esi + 0x27c]
call fcn.00402500
mov ecx, edi
call fcn.00413140
mov ecx, esp
mov dword [esp + 0x3c], esp
push str._install_
call fcn.00402500
lea ecx, [esi + 0x28c]
call fcn.00413140
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x462538
call fcn.00402500
push 0x472bf0
call fcn.00406be0
lea eax, [esp + 0x2c]
push eax
push ebx
push edi
push 0x4143b0
push ebx
push ebx
mov dword [esp + 0x44], ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x2710
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x45f168
call fcn.00402500
lea ecx, [esp + 0x30]
push ecx
call fcn.0040b170
add esp, 8
push eax
mov ecx, 0x472c94
mov dword [esp + 0x5c], ebx
call fcn.004029f0
mov dword [esp + 0x58], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x408f2e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [0x472c94]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x408f71
mov ecx, dword [0x472c94]
cmp dword [ecx - 0xc], ebx
jl 0x408f77
push 0x4604dc
push ecx
call fcn.0043a895
add esp, 8
cmp eax, ebx
je 0x408f71
mov ecx, dword [0x472c94]
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
jne 0x408ffc
jmp 0x408f77
mov ecx, dword [0x472c94]
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
sub eax, 0x104
or eax, edx
jge 0x408fa0
push 0x104
mov ecx, 0x472c94
call fcn.004013d0
mov ecx, dword [0x472c94]
push ebx
push 0x26
push ecx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov edx, dword [0x472c94]
cmp edx, ebx
jne 0x408fb9
xor eax, eax
jmp 0x408fd5
mov eax, edx
lea edi, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x408fc0
sub eax, edi
sar eax, 1
js 0x409752
cmp eax, dword [edx - 8]
jg 0x409752
mov dword [edx - 0xc], eax
mov edx, dword [0x472c94]
push 6
push 0x4604dc
mov ecx, 0x472c94
mov word [edx + eax*2], bx
call fcn.004080c0
lea ecx, [esi + 0xa4c]
push 0x472c94
call fcn.004029f0
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x45fb88
call fcn.00402500
lea eax, [esp + 0x30]
push eax
call fcn.0040b170
mov eax, dword [eax]
add esp, 8
mov ecx, 0x45f248
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x409057
cmp dx, bx
je 0x409053
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x409057
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x409031
xor eax, eax
jmp 0x40905c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
mov eax, dword [esp + 0x2c]
sete byte [esp + 0x1b]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409083
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x1b], 0
je 0x4090ad
cmp dword [ebp + 0x60], ebx
je 0x4090ad
cmp dword [ebp + 0x64], ebx
je 0x4090ad
cmp dword [ebp + 0x68], ebx
je 0x4090ad
mov ecx, dword [ebp + 0x20]
push 1
push ebx
push ecx
mov dword [ebp + 0x7c], 1
call dword [sym.imp.USER32.dll_InvalidateRect]
push 0x3b8
lea edi, [esi + 0x3e4]
push ebx
push edi
call fcn.0043c6b0
add esp, 0xc
push 0x80
push ebx
mov dword [edi], 0x3b8
mov dword [esi + 0x3f0], 0x17
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [esi + 0x3f8], eax
mov eax, dword [esi + 0x20]
push 0x4604ec
lea edx, [esi + 0x3fc]
push edx
mov dword [esi + 0x3ec], 0x80
mov dword [esi + 0x3e8], eax
mov dword [esi + 0x3f4], 0x7e4
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov dword [esi + 0x704], 0xbb8
mov dword [esi + 0x788], ebx
mov dword [esp + 0x20], 0x96
mov dword [esp + 0x1c], 1
lea ebx, [ebx]
call fcn.00421a7e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4095c6
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x1c]
push edi
lea ecx, [esp + 0x2c]
push str.softname_d
push ecx
mov dword [esp + 0x64], 1
call fcn.00401700
add esp, 0xc
call fcn.00421a7e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4095c6
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
push edi
lea ecx, [esp + 0x30]
push str.softcheck_d
push ecx
mov byte [esp + 0x64], 2
call fcn.00401700
mov edi, dword [esp + 0x38]
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add edi, 0xfffffff0
add esp, 8
mov dword [esp + 0x3c], esp
mov ebp, esp
mov dword [esp + 0x3c], edi
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x4091f4
cmp eax, dword [edi]
jne 0x4091f4
mov ebx, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40922f
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x4095d0
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
add edi, 0x10
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00439eff
add esp, 0x10
lea ecx, [esp + 0x34]
add ebx, 0x10
push ecx
mov dword [ebp], ebx
call fcn.0040b170
mov eax, dword [eax]
add esp, 8
mov ecx, 0x45f248
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x409276
test dx, dx
je 0x409272
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x409276
add eax, 4
add ecx, 4
test dx, dx
jne 0x409250
xor eax, eax
jmp 0x40927b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov eax, dword [esp + 0x30]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4092a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x409500
mov edi, dword [esp + 0x28]
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add edi, 0xfffffff0
mov dword [esp + 0x38], esp
mov ebp, esp
call eax
cmp dword [edi + 0xc], 0
lea ecx, [edi + 0xc]
jl 0x4092da
cmp eax, dword [edi]
jne 0x4092da
mov ebx, edi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x409315
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x4095d0
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
add edi, 0x10
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00439eff
add esp, 0x10
lea ecx, [esp + 0x28]
add ebx, 0x10
push ecx
mov dword [ebp], ebx
call fcn.0040b170
add esp, 8
mov byte [esp + 0x58], 3
mov edx, dword [esp + 0x24]
mov eax, dword [edx - 0xc]
test eax, eax
je 0x4094db
add eax, 1
mov ebx, eax
shl ebx, 4
push 0xac
sub ebx, eax
call fcn.0041c0e9
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
mov byte [esp + 0x58], 4
je 0x40936a
push eax
call fcn.00402d30
mov ebp, eax
jmp 0x40936c
xor ebp, ebp
mov ecx, dword [esp + 0x1c]
add ecx, 0x3f4
push ecx
mov byte [esp + 0x5c], 3
mov edx, dword [ebp]
mov edx, dword [edx + 0x134]
push esi
lea ecx, [esp + 0x44]
push ecx
xor eax, eax
push 0x5000000b
push eax
mov ecx, ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], 0xe
call edx
lea eax, [ebp + 0x54]
push eax
push 0x412
call fcn.00406df0
lea ecx, [ebp + 0x58]
push ecx
push 0x414
call fcn.00406df0
lea edx, [ebp + 0x5c]
push edx
push 0x412
call fcn.00406df0
lea edi, [ebp + 0x60]
push edi
push 0x413
call fcn.00406df0
lea eax, [ebp + 0x64]
push eax
push 0x415
call fcn.00406df0
lea eax, [ebp + 0x68]
push eax
push 0x413
call fcn.00406df0
mov eax, dword [esp + 0x24]
push ecx
mov dword [esp + 0x38], esp
add eax, 0xfffffff0
mov dword [esp + 0x38], esp
push eax
call fcn.00402490
mov ecx, dword [esp + 0x3c]
add eax, 0x10
mov dword [ecx], eax
add esp, 4
mov ecx, ebp
call fcn.00403850
mov edx, dword [esp + 0x20]
push 1
push 0
push 0
push 0x10e
push edx
push 0
mov ecx, ebp
call fcn.00423364
cmp dword [edi], 0
je 0x409467
cmp dword [ebp + 0x64], 0
je 0x409467
cmp dword [ebp + 0x68], 0
je 0x409467
mov eax, dword [ebp + 0x20]
push 1
push 0
push eax
mov dword [ebp + 0x7c], 1
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ebx + 0xa]
push 5
lea ecx, [esi + 0xc20]
mov dword [esp + 0x24], edx
call fcn.00423155
mov eax, dword [0x472cdc]
mov ecx, 0x45f630
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4094b6
test dx, dx
je 0x4094b2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4094b6
add eax, 4
add ecx, 4
test dx, dx
jne 0x409490
xor eax, eax
jmp 0x4094bb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4094db
push 0
lea ecx, [esi + 0xc20]
mov dword [esi + 0x2dc], 1
call fcn.00423155
mov byte [esp + 0x58], 2
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409500
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x58], 1
mov eax, dword [esp + 0x38]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409522
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x58], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40954a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 1
mov dword [esp + 0x1c], eax
add eax, 0xffffffff
cmp eax, 3
jl 0x409140
mov eax, dword [esi + 0xa4c]
push eax
lea ecx, [esi + 0xac4]
call fcn.004230bb
mov eax, esi
call fcn.0040aa20
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.notifyicon
call fcn.00402500
lea ecx, [esp + 0x3c]
push ecx
call fcn.0040b170
mov eax, dword [eax]
add esp, 8
mov ecx, 0x45f248
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4095d5
test dx, dx
je 0x4095c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4095d5
add eax, 4
add ecx, 4
test dx, dx
jne 0x4095a0
xor eax, eax
jmp 0x4095da
push 0x80004005
call fcn.00401350
jmp fcn.00408010
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
movzx edx, al
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov dword [esi + 0x3d4], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409608
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x46054c
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.app_version
call fcn.00402500
lea ecx, [esp + 0x30]
push ecx
call fcn.0040b170
lea edx, [esp + 0x3c]
push 0x45f21c
push edx
mov ecx, eax
mov dword [esp + 0x6c], 5
call fcn.004022b0
add esp, 0x10
push eax
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x64], 6
call fcn.004021d0
add esp, 0xc
mov byte [esp + 0x58], 7
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.004230bb
mov byte [esp + 0x58], 6
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40968b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x58], 5
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4096b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x58], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4096d8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov dword [esp + 0x3c], esp
mov edi, esp
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.realversion
call fcn.00402500
push edi
call fcn.0040b170
add esp, 8
call fcn.00407550
test eax, eax
je 0x409729
push 0
lea ecx, [esi + 0x79c]
call fcn.00423155
push 5
lea ecx, [esi + 0x848]
call fcn.00423155
push 5
lea ecx, [esi + 0xd08]
call fcn.00423155
cmp dword [0x472cc8], 0
je 0x409739
mov ecx, esi
call fcn.00409770
mov eax, 1
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00401350
int3