Function at 0x408c04
Capabilities:
Check if file exists
Create directory
Create process on windows
Get file attributes
Move file
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x431532
mov eax, dword fs:[0]
push eax
sub esp, 0xe60
mov eax, dword [0x44435c]
xor eax, esp
mov dword [esp + 0xe58], eax
push ebx
push esi
push edi
mov eax, dword [0x44435c]
xor eax, esp
push eax
lea eax, [esp + 0xe70]
mov dword fs:[0], eax
mov dword [esp + 0xdc], edx
mov ebx, ecx
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
and dword [esp + 0x2cc], 0
mov dword [esp + 0x100], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x74], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xcc], esi
mov dword [esp + 0x10c], eax
call fcn.00412f7e
push eax
lea ecx, [esp + 0xf4]
call fcn.0040f3c2
and dword [esp + 0xe78], 0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jle 0x408cf3
push 0x21
push eax
call fcn.00418ac9
pop ecx
pop ecx
test eax, eax
je 0x408cf3
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
je 0x408cf3
push eax
lea eax, [esp + 0x234]
mov ecx, esi
push eax
call fcn.0040e56f
push eax
lea ecx, [esp + 0xf4]
mov byte [esp + 0xe7c], 1
call fcn.00412862
mov byte [esp + 0xe78], 0
mov ecx, dword [esp + 0x230]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov edi, dword [esp + 0xf0]
lea ecx, [esp + 0x1ac]
mov edx, edi
call fcn.00408987
mov byte [esp + 0xe78], 2
cmp dword [esp + 0x1ac], 0
jge 0x408d8a
cmp dword [esp + 0x1b0], 0
mov eax, 0x234
mov ebx, dword [esp + 0x1b4]
cmovne eax, dword [esp + 0x1b0]
push eax
push dword [esp + 0x1b0]
push ecx
lea ecx, [ebx - 0x10]
mov esi, esp
call fcn.00413040
add eax, 0x10
lea ecx, [esp + 0x408]
mov dword [esi], eax
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3fc]
push eax
mov byte [esp + 0xe7c], 3
call fcn.00402691
mov ecx, dword [esp + 0x404]
add ecx, 0xfffffff0
call fcn.004130bf
lea ecx, [ebx - 0x10]
jmp 0x40ba8c
mov byte [esp + 0xe78], 0
mov ecx, dword [esp + 0x1b4]
add ecx, 0xfffffff0
call fcn.004130bf
mov eax, dword [0x446fe4]
cmp dword [eax - 0xc], 0
je 0x408f47
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
setne al
test al, al
jne 0x408e1c
push 0x237
push 0x80004005
push ecx
mov esi, esp
call fcn.00412f7e
push eax
mov ecx, esi
call fcn.0040f3c2
lea ecx, [esp + 0x2a8]
call fcn.004130db
lea eax, [esp + 0x29c]
mov byte [esp + 0xe78], 4
push eax
mov ecx, ebx
call fcn.00402691
mov ecx, dword [esp + 0x2a4]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [edi - 0x10]
call fcn.004130bf
mov eax, ebx
jmp 0x40ba9d
push ecx
mov ecx, dword [0x446fe4]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.00413040
add eax, 0x10
lea ecx, [esp + 0xe4]
mov dword [esi], eax
call fcn.004021fe
pop ecx
mov byte [esp + 0xe78], 5
mov ecx, dword [0x446fe4]
add ecx, 0xfffffff0
call fcn.00413040
add eax, 0x10
mov dword [esp + 0x18], eax
push dword [esp + 0x10c]
mov byte [esp + 0xe7c], 6
add eax, 0xfffffff0
push dword [ebp + 0x10]
mov dword [esp + 0x6c], eax
push dword [ebp + 0xc]
push ecx
mov ecx, eax
mov dword [esp + 0x6c], esp
mov esi, esp
call fcn.00413040
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [esp + 0xe8c], 7
mov esi, esp
mov ecx, dword [esp + 0xf4]
add ecx, 0xfffffff0
mov dword [esp + 0x118], esp
call fcn.00413040
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, dword [esp + 0xe4]
mov esi, esp
mov byte [esp + 0xe90], 8
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.00413040
add eax, 0x10
lea ecx, [esp + 0x254]
mov dword [esi], eax
mov dl, 1
mov byte [esp + 0xe90], 6
call fcn.00407fa1
add esp, 0x18
mov byte [esp + 0xe78], 9
cmp dword [esp + 0x23c], 0
jge 0x408f30
lea eax, [esp + 0x23c]
mov ecx, ebx
push eax
call fcn.00402691
mov ecx, dword [esp + 0x244]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x64]
call fcn.004130bf
mov ecx, dword [esp + 0xe0]
jmp 0x408e05
and dword [ebx], 0
and dword [ebx + 4], 0
call fcn.00412f7e
push eax
lea ecx, [ebx + 8]
call fcn.0040f3c2
jmp 0x408f0c
mov ecx, dword [esp + 0x10c]
call fcn.00412b10
call fcn.00412f7e
push eax
lea ecx, [esp + 0x48]
call fcn.0040f3c2
mov byte [esp + 0xe78], 0xa
call fcn.00412f7e
push eax
lea ecx, [esp + 0x50]
call fcn.0040f3c2
mov byte [esp + 0xe78], 0xb
call fcn.00412f7e
push eax
lea ecx, [esp + 0x64]
call fcn.0040f3c2
mov byte [esp + 0xe78], 0xc
call fcn.00412f7e
push eax
lea ecx, [esp + 0x5c]
call fcn.0040f3c2
xor ebx, ebx
mov byte [esp + 0x3f], bl
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
or dword [esp + 0x4cc], 0xffffffff
mov dword [esp + 0x4c4], 0x43ac1c
mov dword [esp + 0x4c8], ebx
push ecx
push ecx
lea ecx, [esp + 0x4dc]
mov byte [esp + 0xe80], 0xf
call fcn.0040ec22
mov byte [esp + 0xe78], 0x10
mov eax, dword [ebp + 0xc]
push str.compressed1extended1
push ecx
mov ecx, dword [esp + 0x7c]
mov esi, esp
mov dword [esp + 0x4d0], eax
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.00413040
add eax, 0x10
lea ecx, [esp + 0x1f8]
mov dword [esi], eax
call fcn.004029c4
pop ecx
push eax
push str.version
push ecx
mov ecx, dword [esp + 0xdc]
mov esi, esp
mov byte [esp + 0xe88], 0x11
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.00413040
add eax, 0x10
lea ecx, [esp + 0x1e0]
mov dword [esi], eax
call fcn.004029c4
pop ecx
push eax
mov edx, str.key
mov byte [esp + 0xe88], 0x12
lea ecx, [esp + 0x248]
call fcn.0040e61c
pop ecx
mov byte [esp + 0xe84], 0x13
mov edx, eax
lea ecx, [esp + 0x208]
call fcn.0040e5b7
pop ecx
mov edx, eax
mov byte [esp + 0xe80], 0x14
lea ecx, [esp + 0x1e4]
call fcn.0041280d
pop ecx
mov edx, eax
mov byte [esp + 0xe7c], 0x15
lea ecx, [esp + 0x94]
call fcn.0040e5b7
pop ecx
mov ecx, dword [esp + 0x1dc]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x1fc]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x238]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x1d0]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov byte [esp + 0xe78], 0x1b
mov ecx, dword [esp + 0x1f0]
lea ecx, [ecx - 0x10]
call fcn.004130bf
call fcn.00412f7e
push eax
lea ecx, [esp + 0x138]
call fcn.0040f3c2
lea edx, [esp + 0x134]
mov byte [esp + 0xe78], 0x1c
lea ecx, [esp + 0x414]
call fcn.00406ebf
mov ecx, dword [esp + 0x41c]
cmp dword [eax], ebx
setge bl
add ecx, 0xfffffff0
call fcn.004130bf
mov esi, dword [esp + 0x134]
test bl, bl
je 0x409200
push ecx
lea ecx, [esi - 0x10]
mov ebx, esp
call fcn.00413040
add eax, 0x10
lea ecx, [esp + 0xfc]
mov dword [ebx], eax
call fcn.004029c4
mov ebx, eax
mov byte [esp + 0xe7c], 0x1d
lea edx, [esp + 0x94]
lea ecx, [esp + 0x1fc]
mov dword [esp], str.id
call fcn.0040e5b7
pop ecx
push ebx
mov edx, eax
mov byte [esp + 0xe7c], 0x1e
lea ecx, [esp + 0x224]
call fcn.0041280d
pop ecx
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0xe7c], 0x1f
call fcn.00412862
mov ecx, dword [esp + 0x220]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x1f8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov byte [esp + 0xe78], 0x1c
mov ecx, dword [esp + 0xf8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
call fcn.00412f7e
push eax
lea ecx, [esp + 0xa4]
call fcn.0040f3c2
mov byte [esp + 0xe78], 0x20
mov edx, dword [0x446fe8]
cmp dword [edx - 0xc], 0
je 0x4093af
lea ecx, [esp + 0x1a0]
call fcn.00408b77
mov byte [esp + 0xe78], 0x21
cmp dword [esp + 0x1a0], 0
jge 0x409355
cmp dword [esp + 0x1a4], 0
mov eax, 0x266
cmovne eax, dword [esp + 0x1a4]
push eax
push dword [esp + 0x1a4]
mov eax, dword [esp + 0x1b0]
add eax, 0xfffffff0
push ecx
mov ecx, eax
mov dword [esp + 0x104], eax
mov ebx, esp
call fcn.00413040
add eax, 0x10
lea ecx, [esp + 0x3c0]
mov dword [ebx], eax
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3b4]
push eax
mov byte [esp + 0xe7c], 0x22
call fcn.00402691
mov ecx, dword [esp + 0x3bc]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0xf8]
call fcn.004130bf
mov ecx, dword [esp + 0xa0]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esi - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x90]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x524]
mov byte [esp + 0xe78], 0xe
call fcn.0040eca9
lea eax, [esp + 0x524]
mov dword [esp + 0x524], 0x43acb8
push eax
call fcn.00417af6
pop ecx
lea ecx, [esp + 0x4cc]
call fcn.0040e84c
lea ecx, [esp + 0x78]
call fcn.0040f6b4
mov ecx, dword [esp + 0x58]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x60]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x4c]
lea ecx, [ecx - 0x10]
jmp 0x40ba80
mov byte [esp + 0xe78], 0x20
mov ecx, dword [esp + 0x1a8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
push 0x4399d0
mov edx, 0x446fe8
lea ecx, [esp + 0x204]
call fcn.0040e5b7
pop ecx
push eax
lea ecx, [esp + 0xa4]
mov byte [esp + 0xe7c], 0x23
call fcn.00412862
mov byte [esp + 0xe78], 0x20
mov ecx, dword [esp + 0x200]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea eax, [esp + 0xa0]
mov edx, str.https:__
push eax
lea ecx, [esp + 0x22c]
call fcn.0040e61c
mov byte [esp + 0xe7c], 0x24
lea ecx, [esp + 0xa0]
mov edx, eax
mov dword [esp], str.ninite.com_newinstaller
call fcn.0040e5b7
pop ecx
mov byte [esp + 0xe78], 0x26
mov ecx, dword [esp + 0x228]
lea ecx, [ecx - 0x10]
call fcn.004130bf
cmp dword [edi - 0xc], 0
je 0x40944e
lea eax, [esp + 0xf0]
mov edx, 0x43a23c
push eax
lea ecx, [esp + 0x1c0]
call fcn.0040e61c
pop ecx
mov byte [esp + 0xe78], 0x27
lea ecx, [esp + 0x9c]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00412268
mov byte [esp + 0xe78], 0x26
mov ecx, dword [esp + 0x1bc]
lea ecx, [ecx - 0x10]
call fcn.004130bf
push 0x4399f4
lea ecx, [esp + 0x1d0]
call fcn.00412bfc
lea ecx, [esp + 0x90]
mov byte [esp + 0xe78], 0x28
push ecx
mov edx, eax
lea ecx, [esp + 0x1c8]
call fcn.0041280d
pop ecx
mov byte [esp + 0xe78], 0x29
lea ecx, [esp + 0x9c]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00412268
mov ecx, dword [esp + 0x1c4]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov byte [esp + 0xe78], 0x26
mov ecx, dword [esp + 0x1cc]
add ecx, 0xfffffff0
call fcn.004130bf
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
call fcn.00403f8c
xor eax, eax
mov byte [esp + 0xe7c], 0x2a
push eax
push eax
push eax
push 0x1f4
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push eax
push eax
push dword [0x446ffc]
push ecx
mov ecx, dword [esp + 0xcc]
mov ebx, esp
lea ecx, [ecx - 0x10]
call fcn.00413040
add eax, 0x10
lea ecx, [esp + 0x4f4]
mov dword [ebx], eax
lea eax, [esp + 0x290]
push eax
mov byte [esp + 0xeac], 0x26
call fcn.00404669
mov byte [esp + 0xe78], 0x2b
cmp dword [esp + 0x260], 0
jge 0x40956a
sub esp, 0xc
lea eax, [esp + 0x26c]
mov ecx, esp
push eax
call fcn.00402691
mov ecx, dword [esp + 0x20]
call fcn.00408a14
mov ecx, dword [esp + 0x274]
add esp, 0xc
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x9c]
lea ecx, [ecx - 0x10]
jmp 0x4092c4
lea eax, [esp + 0x62c]
push eax
lea ecx, [esp + 0x4d8]
call fcn.0040ecec
mov byte [esp + 0xe78], 0x2c
cmp dword [eax + 0x14], 0x10
jb 0x40958e
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x134]
call fcn.00412310
push 0
push 1
lea ecx, [esp + 0x634]
mov byte [esp + 0xe80], 0x2e
call fcn.0041200c
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x439ab0
call fcn.00412bfc
push ecx
mov byte [esp + 0xe80], 0x2f
mov ebx, esp
mov ecx, dword [esp + 0x138]
lea ecx, [ecx - 0x10]
call fcn.00413040
add eax, 0x10
lea ecx, [esp + 0x80]
mov dword [ebx], eax
mov dl, 1
mov byte [esp + 0xe80], 0x2e
call fcn.0040fca5
pop ecx
pop ecx
mov ecx, dword [esp + 0x130]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x268]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x9c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0xa0]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esi - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x90]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x524]
mov byte [esp + 0xe78], 0xe
call fcn.0040eca9
lea eax, [esp + 0x524]
mov dword [esp + 0x524], 0x43acb8
push eax
call fcn.00417af6
pop ecx
lea ecx, [esp + 0x4cc]
call fcn.0040e84c
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
sub ebx, esi
sar ebx, 2
test ebx, ebx
mov dword [esp + 0xb0], ebx
setne al
test al, al
jne 0x4096f7
push 0x27b
push 0x80004005
push ecx
mov esi, esp
call fcn.00412f7e
push eax
mov ecx, esi
call fcn.0040f3c2
lea ecx, [esp + 0x2c0]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2b4]
push eax
mov byte [esp + 0xe7c], 0x30
call fcn.00402691
mov ecx, dword [esp + 0x2bc]
lea ecx, [ecx - 0x10]
call fcn.004130bf
jmp 0x409328
mov ecx, dword [esi]
sub ecx, 0x10
call fcn.00413040
mov dword [esp + 0x20], eax
add eax, 0x10
mov dword [esp + 0xbc], eax
mov byte [esp + 0xe78], 0x31
call fcn.00412f7e
push eax
lea ecx, [esp + 0x44]
call fcn.0040f3c2
xor eax, eax
mov byte [esp + 0xe78], 0x32
inc eax
cmp ebx, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
jbe 0x409cb9
lea ecx, [esi + 4]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x54], ecx
mov eax, dword [ecx]
mov edx, 0x43a240
mov ecx, eax
mov dword [esp + 0x64], eax
call fcn.00402278
test al, al
je 0x409836
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x1d4]
push 5
push eax
call fcn.0040e502
push eax
lea ecx, [esp + 0x50]
mov byte [esp + 0xe7c], 0x33
call fcn.00412862
mov byte [esp + 0xe78], 0x32
mov ecx, dword [esp + 0x1d4]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x4c]
mov esi, dword [eax - 0xc]
push esi
call fcn.00412d5f
lea ecx, [esi + 1]
push ecx
push eax
call fcn.0041b781
pop ecx
pop ecx
push esi
lea ecx, [esp + 0x50]
call fcn.00412c40
mov esi, dword [esp + 0x4c]
cmp dword [esi - 0xc], 0x28
sete al
test al, al
jne 0x409a46
push 0x287
push 0x80004005
push ecx
mov dword [esp + 0x5c], esp
call fcn.00412f7e
mov ecx, dword [esp + 0x5c]
push eax
call fcn.0040f3c2
lea ecx, [esp + 0x36c]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x360]
push eax
mov byte [esp + 0xe7c], 0x34
call fcn.00402691
mov ecx, dword [esp + 0x368]
jmp 0x40ba43
mov ecx, dword [esp + 0x64]
mov edx, str.MODULE:
call fcn.00402278
test al, al
je 0x4099bc
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x50]
push 7
push eax
call fcn.0040e502
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0xe7c], 0x35
call fcn.00412862
mov byte [esp + 0xe78], 0x32
mov ecx, dword [esp + 0x50]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x40]
call fcn.0040e4da
mov eax, dword [esp + 0x40]
cmp dword [eax - 0xc], 0
setne cl
test cl, cl
je 0x409c0c
push ecx
lea ecx, [eax - 0x10]
mov dword [esp + 0x78], esp
call fcn.00413040
mov ecx, esp
lea edx, [esp + 0x64]
add eax, 0x10
mov dword [ecx], eax
lea ecx, [esp + 0x174]
call fcn.00406aed
pop ecx
mov byte [esp + 0xe78], 0x37
cmp dword [esp + 0x170], 0
jl 0x409b62
mov byte [esp + 0xe78], 0x32
mov ecx, dword [esp + 0x178]
add ecx, 0xfffffff0
call fcn.004130bf
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
cmp dword [eax - 0xc], 0
setne al
test al, al
je 0x409b13
push ecx
lea eax, [esp + 0x44]
mov ecx, esp
push eax
mov edx, 0x43a260
lea ebx, [esp + 0x60]
call fcn.0040e61c
pop ecx
mov edx, ebx
lea ecx, [esp + 0x15c]
call fcn.00406aed
pop ecx
mov byte [esp + 0xe78], 0x3a
cmp dword [esp + 0x158], 0
jl 0x409a72
mov byte [esp + 0xe78], 0x32
mov ecx, dword [esp + 0x160]
add ecx, 0xfffffff0
call fcn.004130bf
mov ebx, dword [esp + 0x58]
cmp dword [ebx - 0xc], 0
setne al
test al, al
jne 0x409a46
push 0x28f
push 0x80004005
push ecx
mov dword [esp + 0x5c], esp
call fcn.00412f7e
mov ecx, dword [esp + 0x5c]
push eax
call fcn.0040f3c2
lea ecx, [esp + 0x284]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x278]
push eax
mov byte [esp + 0xe7c], 0x3c
call fcn.00402691
mov ecx, dword [esp + 0x280]
jmp 0x40ba43
mov ecx, dword [esp + 0x64]
mov edx, 0x43a264
call fcn.00402278
test al, al
je 0x409a46
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x94]
push 5
push eax
call fcn.0040e502
lea ecx, [esp + 0x94]
mov byte [esp + 0xe78], 0x3d
call fcn.0040e4da
mov eax, 0x43a270
lea ecx, [esp + 0x94]
push eax
call fcn.00412773
test eax, eax
jne 0x409a11
mov byte [esp + 0x3f], al
jmp 0x409a2f
push 0x43a278
lea ecx, [esp + 0x98]
call fcn.00412773
test eax, eax
jne 0x409c5b
mov byte [esp + 0x3f], 1
mov byte [esp + 0xe78], 0x32
mov ecx, dword [esp + 0x94]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x54]
inc eax
add ecx, 4
mov dword [esp + 0x84], eax
mov dword [esp + 0x54], ecx
cmp eax, dword [esp + 0xb0]
jb 0x409757
jmp 0x409cbd
cmp dword [esp + 0x15c], 0
mov eax, 0x28e
cmovne eax, dword [esp + 0x15c]
push eax
push dword [esp + 0x15c]
push ecx
mov ecx, dword [esp + 0x16c]
mov ebx, esp
lea ecx, [ecx - 0x10]
call fcn.00413040
add eax, 0x10
lea ecx, [esp + 0x384]
mov dword [ebx], eax
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x378]
push eax
mov byte [esp + 0xe7c], 0x3b
call fcn.00402691
mov ecx, dword [esp + 0x380]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x160]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x40]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x20]
call fcn.004130bf
lea ecx, [esp + 0x78]
call fcn.0040f6b4
mov ecx, dword [esp + 0x58]
lea ecx, [ecx - 0x10]
jmp 0x40ba6c
push 0x28d
push 0x80004005
push ecx
mov dword [esp + 0x5c], esp
call fcn.00412f7e
mov ecx, dword [esp + 0x5c]
push eax
call fcn.0040f3c2
lea ecx, [esp + 0x2e8]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2dc]
push eax
mov byte [esp + 0xe7c], 0x39
call fcn.00402691
mov ecx, dword [esp + 0x2e4]
jmp 0x40ba43
cmp dword [esp + 0x174], 0
mov eax, 0x28c
cmovne eax, dword [esp + 0x174]
push eax
push dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x5c], esp
lea ecx, [ecx - 0x10]
call fcn.00413040
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
lea ecx, [esp + 0x39c]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x390]
push eax
mov byte [esp + 0xe7c], 0x38
call fcn.00402691
mov ecx, dword [esp + 0x398]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x178]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x40]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x20]
call fcn.004130bf
lea ecx, [esp + 0x78]
call fcn.0040f6b4
lea ecx, [ebx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x60]
jmp 0x40ba75
push 0x28b
push 0x80004005
push ecx
mov dword [esp + 0x5c], esp
call fcn.00412f7e
mov ecx, dword [esp + 0x5c]
push eax
call fcn.0040f3c2
lea ecx, [esp + 0x300]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2f4]
push eax
mov byte [esp + 0xe7c], 0x36
call fcn.00402691
mov ecx, dword [esp + 0x2fc]
jmp 0x40ba43
push 0x298
push 0x80004005
push ecx
mov dword [esp + 0x5c], esp
call fcn.00412f7e
mov ecx, dword [esp + 0x5c]
push eax
call fcn.0040f3c2
lea ecx, [esp + 0x3b4]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3a8]
push eax
mov byte [esp + 0xe7c], 0x3e
call fcn.00402691
mov ecx, dword [esp + 0x3b0]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x94]
jmp 0x40ba43
mov esi, dword [esp + 0x4c]
push 4
lea eax, [esp + 0x1e8]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040e56f
push str.GET:
mov ecx, eax
mov byte [esp + 0xe7c], 0x3f
call fcn.00412773
neg eax
mov byte [esp + 0xe78], 0x32
mov ecx, dword [esp + 0x1e4]
sbb al, al
add ecx, 0xfffffff0
inc al
mov dword [esp + 0x74], eax
call fcn.004130bf
cmp byte [esp + 0x74], 0
lea ecx, [esp + 0xbc]
je 0x40b84e
push 4
lea eax, [esp + 0x1f0]
push eax
call fcn.0040e502
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0xe7c], 0x40
call fcn.00412862
mov ecx, dword [esp + 0x1ec]
add ecx, 0xfffffff0
call fcn.004130bf
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], eax
cmp dword [eax - 0xc], 0
setne al
test al, al
jne 0x409dea
push 0x2b0
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x318]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x30c]
push eax
mov byte [esp + 0xe7c], 0x4a
call fcn.00402691
mov ecx, dword [esp + 0x314]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x40]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x20]
call fcn.004130bf
lea ecx, [esp + 0x78]
call fcn.0040f6b4
lea ecx, [ebx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esi - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x30]
jmp 0x40ba89
mov ecx, dword [esp + 0x40]
cmp dword [ecx - 0xc], 0
setne al
test al, al
jne 0x409e3c
push 0x2b1
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x3cc]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3c0]
push eax
mov byte [esp + 0xe7c], 0x4b
call fcn.00402691
mov ecx, dword [esp + 0x3c8]
jmp 0x409d9f
mov eax, dword [esp + 0x1c]
cmp dword [eax - 0xc], 0
setne al
test al, al
jne 0x409e8e
push 0x2b2
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x330]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x324]
push eax
mov byte [esp + 0xe7c], 0x4c
call fcn.00402691
mov ecx, dword [esp + 0x32c]
jmp 0x409d9f
cmp dword [ebx - 0xc], 0
setne al
test al, al
jne 0x409edc
push 0x2b3
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x3e4]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3d8]
push eax
mov byte [esp + 0xe7c], 0x4d
call fcn.00402691
mov ecx, dword [esp + 0x3e0]
jmp 0x409d9f
add ecx, 0xfffffff0
call fcn.004130bf
mov ecx, dword [esp + 0x20]
call fcn.004130bf
lea ecx, [esp + 0x78]
mov byte [esp + 0xe78], 0xd
call fcn.0040f6b4
mov edx, dword [esp + 0xdc]
lea ecx, [esp + 0x34]
push str.Ninite.tmp
call fcn.0040e5b7
pop ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x6c], 0
mov byte [esp + 0x4b], 0
call fcn.00413014
lea ecx, [esp + 0x70]
call fcn.00413014
mov byte [esp + 0xe78], 0x50
cmp byte [0x446fdd], 0
je 0x40a200
cmp dword [ebx - 0xc], 0
setne al
test al, al
jne 0x409fbf
push 0x2c2
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x348]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x33c]
push eax
mov byte [esp + 0xe7c], 0x51
call fcn.00402691
mov ecx, dword [esp + 0x344]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x70]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x38]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x34]
lea ecx, [ecx - 0x10]
call fcn.004130bf
jmp 0x409dc5
cmp dword [esi - 0xc], 0
setne al
test al, al
jne 0x40a00a
push 0x2c3
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x3fc]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3f0]
push eax
mov byte [esp + 0xe7c], 0x52
call fcn.00402691
mov ecx, dword [esp + 0x3f8]
jmp 0x409f8e
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x3c]
call fcn.00412862
push 0
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0x58]
mov edx, 0x43acc8
push eax
lea ecx, [esp + 0x1f8]
call fcn.0040e61c
pop ecx
mov byte [esp + 0xe78], 0x53
lea ecx, [esp + 0x38]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00412268
mov byte [esp + 0xe78], 0x50
mov ecx, dword [esp + 0x1f4]
lea ecx, [ecx - 0x10]
call fcn.004130bf
push 0
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0x4c]
mov edx, 0x43acc8
push eax
lea ecx, [esp + 0x104]
call fcn.0040e61c
pop ecx
mov byte [esp + 0xe78], 0x54
lea ecx, [esp + 0x38]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00412268
mov byte [esp + 0xe78], 0x50
mov ecx, dword [esp + 0x100]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov eax, dword [esp + 0x38]
push 0
push eax
mov dword [esp + 0x30], eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0x38]
mov byte [esp + 0x6c], 1
push eax
lea ecx, [esp + 0x74]
call fcn.00412862
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], eax
push str.Ninite.
lea edx, [esp + 0x74]
lea ecx, [esp + 0x220]
call fcn.0040e5b7
pop ecx
cmp byte [esp + 0x3f], 0
mov edx, 0x43a270
mov ecx, 0x43a278
mov byte [esp + 0xe78], 0x5d
cmove ecx, edx
mov edx, eax
push ecx
lea ecx, [esp + 0x28]
call fcn.0040e5b7
pop ecx
mov ecx, dword [esp + 0x21c]
add ecx, 0xfffffff0
call fcn.004130bf
or dword [esp + 0x2c], 0xffffffff
mov byte [esp + 0xe78], 0x60
cmp byte [0x446fdd], 0
je 0x40a4da
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40a7c6
xor eax, eax
push eax
push eax
push 3
push eax
push 3
inc eax
push eax
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], eax
call fcn.0040e866
test eax, eax
setne al
test al, al
jne 0x40a7c6
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x30c
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x360]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x354]
push eax
mov byte [esp + 0xe7c], 0x61
call fcn.00402691
mov ecx, dword [esp + 0x35c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x2c]
call fcn.0040e84c
mov ecx, dword [esp + 0x24]
jmp 0x40a2eb
cmp dword [esi - 0xc], 0
je 0x40a27d
cmp byte [0x446fdc], 0
je 0x40a308
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x3c]
call fcn.00412862
push 0
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0x60]
mov edx, 0x43acc8
push eax
lea ecx, [esp + 0x208]
call fcn.0040e61c
pop ecx
mov byte [esp + 0xe78], 0x55
lea ecx, [esp + 0x38]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00412268
mov byte [esp + 0xe78], 0x50
mov ecx, dword [esp + 0x204]
lea ecx, [ecx - 0x10]
call fcn.004130bf
xor eax, eax
inc eax
mov byte [esp + 0x6c], al
mov byte [esp + 0x4b], al
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
push dword [esp + 0x100]
lea ecx, [esp + 0x74]
call fcn.00412862
mov eax, dword [esp + 0x70]
push 0
push eax
mov dword [esp + 0x28], eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40a0e6
call fcn.004128b0
push 0x2fd
push eax
push ecx
lea eax, [esp + 0x7c]
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x45c]
call fcn.004130db
mov ecx, dword [esp + 0x14]
push eax
mov byte [esp + 0xe7c], 0x5c
call fcn.00402691
mov ecx, dword [esp + 0x458]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x20]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x28]
jmp 0x409fa6
mov eax, dword [0x446fe0]
cmp dword [eax - 0xc], 0
je 0x40a337
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40a337
push 0x446fe0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x70], 1
call fcn.00412862
jmp 0x40a27d
lea ecx, [esp + 0x20c]
call fcn.00401db0
push str._ninite.ini
mov edx, eax
mov byte [esp + 0xe7c], 0x56
lea ecx, [esp + 0x13c]
call fcn.0040e5b7
pop ecx
mov byte [esp + 0xe78], 0x58
mov ecx, dword [esp + 0x20c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
xor eax, eax
push 0x81e
push eax
mov word [esp + 0x64c], ax
lea eax, [esp + 0x64e]
push eax
call fcn.004188f0
add esp, 0xc
lea eax, [esp + 0x644]
push dword [esp + 0x138]
push 0x410
push eax
push 0
push str.path
push str.Cache
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x40a423
lea eax, [esp + 0x644]
push eax
lea ecx, [esp + 0x3c]
call fcn.00412bd1
push ecx
lea eax, [esp + 0x3c]
mov ecx, esp
push eax
call fcn.004130a0
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x430]
call fcn.00401c82
pop ecx
mov ecx, dword [esp + 0x434]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov eax, dword [esp + 0x38]
push eax
mov dword [esp + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, dword [esp + 0x6c]
cmp eax, 0xffffffff
push 1
movzx ecx, cl
pop eax
cmovne ecx, eax
mov dword [esp + 0x6c], ecx
jmp 0x40a42b
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov byte [esp + 0xe78], 0x50
mov ecx, dword [esp + 0x138]
lea ecx, [ecx - 0x10]
call fcn.004130bf
cmp byte [esp + 0x6c], 0
jne 0x40a285
lea ecx, [esp + 0x214]
call fcn.00401db0
push str.NiniteDownloadsFiles
mov edx, eax
mov byte [esp + 0xe7c], 0x59
lea ecx, [esp + 0x10c]
call fcn.0040e5b7
pop ecx
mov byte [esp + 0xe78], 0x5b
mov ecx, dword [esp + 0x214]
lea ecx, [ecx - 0x10]
call fcn.004130bf
push dword [esp + 0x108]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40a4be
xor eax, eax
lea ecx, [esp + 0x38]
inc eax
mov byte [esp + 0x6c], al
lea eax, [esp + 0x108]
push eax
call fcn.00412862
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov byte [esp + 0xe78], 0x50
mov ecx, dword [esp + 0x108]
lea ecx, [ecx - 0x10]
call fcn.004130bf
jmp 0x40a285
cmp byte [esp + 0x6c], 0
je 0x40a7c6
cmp dword [esi - 0xc], 0
setne al
test al, al
jne 0x40a533
push 0x310
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x414]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x408]
push eax
mov byte [esp + 0xe7c], 0x62
call fcn.00402691
mov ecx, dword [esp + 0x410]
jmp 0x40a1e6
mov eax, dword [esp + 0x28]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x43acc8
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x228]
call fcn.0040e5b7
pop ecx
lea ecx, [esp + 0x4c]
mov byte [esp + 0xe78], 0x63
push ecx
mov edx, eax
lea ecx, [esp + 0xb8]
call fcn.0041280d
pop ecx
mov ecx, dword [esp + 0x224]
add ecx, 0xfffffff0
call fcn.004130bf
xor eax, eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], eax
push eax
push ecx
lea eax, [esp + 0xbc]
mov byte [esp + 0xe80], 0x66
mov ecx, esp
push eax
call fcn.004130a0
lea edx, [esp + 0x12c]
lea ecx, [esp + 0x274]
call fcn.00402f0e
pop ecx
pop ecx
cmp dword [esp + 0x26c], 0
jl 0x40a794
xor eax, eax
inc eax
mov byte [0x446fc4], al
mov eax, dword [esp + 0x128]
sub eax, dword [esp + 0x124]
mov dword [esp + 0x68], eax
je 0x40a794
lea ecx, [esp + 0xc8]
call fcn.00413014
lea eax, [esp + 0xc8]
mov byte [esp + 0xe78], 0x68
mov edx, dword [esp + 0x124]
lea ecx, [esp + 0x444]
push eax
push dword [esp + 0x6c]
call fcn.00406be3
pop ecx
pop ecx
mov ecx, dword [esp + 0x44c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
push esi
push dword [esp + 0xcc]
call fcn.0041928c
pop ecx
pop ecx
test eax, eax
jne 0x40a785
push ecx
lea eax, [esp + 0xb8]
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x460]
call fcn.004037be
pop ecx
mov ecx, dword [esp + 0x464]
add ecx, 0xfffffff0
call fcn.004130bf
push dword [esp + 0x68]
lea eax, [esp + 0x28]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
mov edx, dword [esp + 0x12c]
lea ecx, [esp + 0x148]
call fcn.00402a66
pop ecx
pop ecx
mov byte [esp + 0xe78], 0x69
cmp dword [esp + 0x140], 0
jge 0x40a75d
cmp dword [esp + 0x144], 0
mov eax, 0x323
cmovne eax, dword [esp + 0x144]
push eax
push dword [esp + 0x144]
lea eax, [esp + 0x150]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x378]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x36c]
push eax
mov byte [esp + 0xe7c], 0x6a
call fcn.00402691
mov ecx, dword [esp + 0x374]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x148]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0xc8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x274]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x124]
call fcn.0040e877
mov ecx, dword [esp + 0xb4]
jmp 0x40a1e6
mov ecx, dword [esp + 0x148]
lea ecx, [ecx - 0x10]
call fcn.004130bf
xor eax, eax
push eax
push eax
push 3
push eax
push 3
inc eax
push eax
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0xc8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x274]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x124]
call fcn.0040e877
mov byte [esp + 0xe78], 0x60
mov ecx, dword [esp + 0xb4]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x2c]
call fcn.0040e866
test eax, eax
jne 0x40b1c5
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
lea ecx, [esp + 0x56c]
mov byte [esp + 0xe78], 0x6b
call fcn.0040bac1
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x48c]
mov dword [esp + 0x570], eax
call fcn.00403feb
push ecx
mov byte [esp + 0xe7c], 0x6d
mov ecx, esp
mov dword [esp + 0x6c], esp
call fcn.00403f8c
xor ecx, ecx
mov byte [esp + 0xe7c], 0x6e
push ecx
push ecx
lea eax, [esp + 0x498]
push eax
push 0x1f4
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push ecx
push dword [0x447000]
lea eax, [esp + 0x6c]
push dword [0x446ffc]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
lea eax, [esp + 0x1ac]
mov byte [esp + 0xea8], 0x6d
push eax
lea ecx, [esp + 0x5a0]
call fcn.00404669
mov byte [esp + 0xe78], 0x6f
cmp dword [esp + 0x17c], 0
jge 0x40a92d
cmp dword [esp + 0x180], 0
mov eax, 0x341
cmovne eax, dword [esp + 0x180]
push eax
push dword [esp + 0x180]
lea eax, [esp + 0x18c]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x3f0]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3e4]
push eax
mov byte [esp + 0xe7c], 0x70
call fcn.00402691
mov ecx, dword [esp + 0x3ec]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x184]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x48c]
call fcn.004048b1
lea ecx, [esp + 0x56c]
call fcn.0040baf6
lea ecx, [esp + 0xa4]
call fcn.0040e877
jmp 0x40a1ee
mov byte [esp + 0xe78], 0x6d
mov ecx, dword [esp + 0x184]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea eax, [esp + 0x614]
push eax
lea ecx, [esp + 0x580]
call fcn.0040ecec
mov byte [esp + 0xe78], 0x71
lea eax, [esp + 0xa4]
cmp dword [esp + 0x628], 0x10
lea edx, [esp + 0x614]
push eax
push dword [esp + 0x628]
cmovae edx, dword [esp + 0x61c]
lea ecx, [esp + 0x250]
call fcn.00407be8
pop ecx
pop ecx
mov byte [esp + 0xe78], 0x72
cmp dword [esp + 0x248], 0
jge 0x40aa53
push dword [esp + 0x48c]
lea eax, [esp + 0x140]
push dword [esp + 0x628]
push str.Invalid_data__1___d___d_
push eax
call fcn.00401b35
add esp, 0x10
push 0x34e
mov byte [esp + 0xe7c], 0x73
lea eax, [esp + 0x140]
push dword [esp + 0x24c]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x480]
call fcn.004130db
mov ecx, dword [esp + 0x14]
push eax
mov byte [esp + 0xe7c], 0x74
call fcn.00402691
mov ecx, dword [esp + 0x47c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x13c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x250]
lea ecx, [ecx - 0x10]
call fcn.004130bf
xor eax, eax
lea ecx, [esp + 0x614]
push 0
inc eax
push eax
call fcn.0041200c
jmp 0x40a904
mov ecx, dword [esp + 0x250]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
sub eax, ecx
mov dword [esp + 0x8c], eax
setne al
mov dword [esp + 0x68], ecx
test al, al
jne 0x40aac7
push 0x351
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x390]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x384]
push eax
mov byte [esp + 0xe7c], 0x75
call fcn.00402691
mov ecx, dword [esp + 0x38c]
jmp 0x40aa34
xor eax, eax
lea ecx, [esp + 0x614]
push 0
inc eax
push eax
call fcn.0041200c
lea ecx, [esp + 0x48c]
call fcn.004048b1
lea ecx, [esp + 0x56c]
call fcn.0040baf6
xor eax, eax
lea ecx, [esp + 0x98]
inc eax
mov byte [0x446fc4], al
call fcn.00413014
lea eax, [esp + 0x98]
mov byte [esp + 0xe78], 0x76
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0x14c]
push eax
push dword [esp + 0x90]
call fcn.00406be3
pop ecx
pop ecx
mov byte [esp + 0xe78], 0x77
cmp dword [esp + 0x14c], 0
jge 0x40abc8
cmp dword [esp + 0x150], 0
mov eax, 0x35a
cmovne eax, dword [esp + 0x150]
push eax
push dword [esp + 0x150]
lea eax, [esp + 0x15c]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x3d8]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3cc]
push eax
mov byte [esp + 0xe7c], 0x78
call fcn.00402691
mov ecx, dword [esp + 0x3d4]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x154]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x98]
lea ecx, [ecx - 0x10]
call fcn.004130bf
jmp 0x40a91c
mov ecx, dword [esp + 0x154]
lea ecx, [ecx - 0x10]
call fcn.004130bf
push dword [esp + 0x98]
push esi
call fcn.0041928c
neg eax
pop ecx
sbb al, al
pop ecx
inc al
jne 0x40ac31
push 0x35e
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x3a8]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x39c]
push eax
mov byte [esp + 0xe7c], 0x79
call fcn.00402691
mov ecx, dword [esp + 0x3a4]
jmp 0x40abac
mov byte [esp + 0xe78], 0x6b
mov ecx, dword [esp + 0x98]
add ecx, 0xfffffff0
call fcn.004130bf
cmp byte [0x446fdd], 0
je 0x40ae52
lea ecx, [esp + 0x1c0]
call fcn.00401a7a
mov edx, dword [esp + 0xdc]
lea ecx, [esp + 0x88]
push eax
mov byte [esp + 0xe7c], 0x7a
call fcn.0041280d
pop ecx
mov byte [esp + 0xe78], 0x7c
mov ecx, dword [esp + 0x1c0]
add ecx, 0xfffffff0
call fcn.004130bf
push ecx
lea eax, [esp + 0x8c]
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x114]
call fcn.004038f3
push dword [esp + 0x8c]
lea eax, [esp + 0x8c]
mov byte [esp + 0xe7c], 0x7d
push ecx
mov ecx, esp
push eax
call fcn.004130a0
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x16c]
call fcn.00402a66
pop ecx
pop ecx
mov byte [esp + 0xe78], 0x7e
cmp dword [esp + 0x164], 0
jge 0x40ad88
cmp dword [esp + 0x168], 0
mov eax, 0x366
cmovne eax, dword [esp + 0x168]
push eax
push dword [esp + 0x168]
lea eax, [esp + 0x174]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x290]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x284]
push eax
mov byte [esp + 0xe7c], 0x7f
call fcn.00402691
mov ecx, dword [esp + 0x28c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x16c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x110]
mov byte [esp + 0xe78], 0x7c
call fcn.0040392a
mov ecx, dword [esp + 0x88]
jmp 0x40abbb
mov ecx, dword [esp + 0x16c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
push 0
push dword [esp + 0x28]
push dword [esp + 0x90]
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
xor eax, eax
push eax
push eax
push 3
push eax
push 3
inc eax
push eax
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], eax
call fcn.0040e866
test eax, eax
setne al
test al, al
jne 0x40ae32
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x36c
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x29c]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x290]
push eax
mov byte [esp + 0xe7c], 0x80
call fcn.00402691
mov ecx, dword [esp + 0x298]
jmp 0x40ad60
lea ecx, [esp + 0x110]
mov byte [esp + 0xe78], 0x7c
call fcn.0040392a
mov ecx, dword [esp + 0x88]
jmp 0x40b1a9
push dword [esp + 0x8c]
lea eax, [esp + 0x28]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x19c]
call fcn.00402a66
pop ecx
pop ecx
mov byte [esp + 0xe78], 0x81
cmp dword [esp + 0x194], 0
jge 0x40aef7
cmp dword [esp + 0x198], 0
mov eax, 0x372
cmovne eax, dword [esp + 0x198]
push eax
push dword [esp + 0x198]
lea eax, [esp + 0x1a4]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x2b4]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2a8]
push eax
mov byte [esp + 0xe7c], 0x82
call fcn.00402691
mov ecx, dword [esp + 0x2b0]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x19c]
jmp 0x40abbb
mov byte [esp + 0xe78], 0x6b
mov ecx, dword [esp + 0x19c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
xor eax, eax
push eax
push eax
push 3
push eax
push 3
inc eax
push eax
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], eax
call fcn.0040e866
test eax, eax
setne al
test al, al
jne 0x40af96
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x375
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x2cc]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2c0]
push eax
mov byte [esp + 0xe7c], 0x83
call fcn.00402691
mov ecx, dword [esp + 0x2c8]
jmp 0x40abbb
cmp byte [esp + 0x6c], 0
je 0x40b1b1
push 0x43acc8
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x20c]
call fcn.0040e5b7
pop ecx
lea ecx, [esp + 0x4c]
mov byte [esp + 0xe78], 0x84
push ecx
mov edx, eax
lea ecx, [esp + 0xd8]
call fcn.0041280d
pop ecx
mov ecx, dword [esp + 0x208]
lea ecx, [ecx - 0x10]
call fcn.004130bf
push dword [esp + 0xd4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40b1a2
lea ecx, [esp + 0x54]
call fcn.00413014
cmp byte [esp + 0x4b], 0
mov byte [esp + 0xe78], 0x87
je 0x40b06e
lea ecx, [esp + 0xe8]
call fcn.00401a7a
mov edx, dword [esp + 0xdc]
lea ecx, [esp + 0x1c8]
push eax
mov byte [esp + 0xe7c], 0x88
call fcn.0041280d
pop ecx
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xe7c], 0x89
call fcn.00412862
mov ecx, dword [esp + 0x1c8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov byte [esp + 0xe78], 0x87
mov ecx, dword [esp + 0xe8]
jmp 0x40b12b
lea ecx, [esp + 0x234]
call fcn.00401a7a
mov dword [esp + 0xe8], eax
push 0x4399d0
lea edx, [esp + 0xd8]
mov byte [esp + 0xe7c], 0x8a
lea ecx, [esp + 0x1dc]
call fcn.0040e5b7
pop ecx
mov byte [esp + 0xe78], 0x8b
lea ecx, [esp + 0x210]
push dword [esp + 0xe8]
mov edx, eax
call fcn.0041280d
mov byte [esp + 0xe7c], 0x8c
lea ecx, [esp + 0x1bc]
mov edx, eax
mov dword [esp], 0x4399d4
call fcn.0040e5b7
pop ecx
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xe7c], 0x8d
call fcn.00412862
mov ecx, dword [esp + 0x1b8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x210]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x1d8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov byte [esp + 0xe78], 0x87
mov ecx, dword [esp + 0x234]
add ecx, 0xfffffff0
call fcn.004130bf
push dword [esp + 0x8c]
lea eax, [esp + 0x58]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x2d8]
call fcn.00402a66
pop ecx
pop ecx
mov byte [esp + 0xe78], 0x8e
cmp dword [esp + 0x2d0], 0
jl 0x40b17e
push 0
push dword [esp + 0xd8]
push dword [esp + 0x5c]
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [esp + 0x54]
call fcn.00401fb9
mov ecx, dword [esp + 0x2d8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x54]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0xd4]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0xa4]
mov byte [esp + 0xe78], 0x60
call fcn.0040e877
cmp byte [0x446fdd], 0
je 0x40b4e1
cmp dword [esi - 0xc], 0
setne al
test al, al
jne 0x40b220
push 0x394
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x2f4]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2e8]
push eax
mov byte [esp + 0xe7c], 0x8f
call fcn.00402691
mov ecx, dword [esp + 0x2f0]
jmp 0x40a1e6
cmp dword [ebx - 0xc], 0
setne al
test al, al
jne 0x40b26e
push 0x395
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x30c]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x300]
push eax
mov byte [esp + 0xe7c], 0x90
call fcn.00402691
mov ecx, dword [esp + 0x308]
jmp 0x40a1e6
and dword [esp + 0x114], 0
and dword [esp + 0x118], 0
call fcn.0040fc56
mov dword [esp + 0x114], eax
push 0x43acc8
lea edx, [esp + 0x38]
mov byte [esp + 0xe7c], 0x91
lea ecx, [esp + 0x1e4]
call fcn.0040e5b7
pop ecx
lea ecx, [esp + 0x58]
mov byte [esp + 0xe78], 0x92
push ecx
mov edx, eax
lea ecx, [esp + 0xdc]
call fcn.0041280d
pop ecx
mov byte [esp + 0xe78], 0x94
mov ecx, dword [esp + 0x1e0]
add ecx, 0xfffffff0
call fcn.004130bf
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x4399c0
call fcn.00412bfc
push 0
push ecx
lea eax, [esp + 0xe8]
mov byte [esp + 0xe88], 0x95
mov ecx, esp
push eax
call fcn.004130a0
lea edx, [esp + 0x124]
mov byte [esp + 0xe88], 0x94
lea ecx, [esp + 0x478]
call fcn.00403124
mov ecx, dword [esp + 0x480]
add esp, 0x10
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x114]
mov eax, dword [ecx]
mov dword [esp + 0xb0], eax
cmp eax, ecx
je 0x40b442
add eax, 0x10
lea ecx, [esp + 0xd0]
push eax
call fcn.004130a0
mov byte [esp + 0xe78], 0x96
push dword [esp + 0xd0]
push esi
call fcn.0041928c
pop ecx
pop ecx
test eax, eax
je 0x40b40b
push 0x43acc8
lea edx, [esp + 0xdc]
lea ecx, [esp + 0x21c]
call fcn.0040e5b7
pop ecx
lea ecx, [esp + 0xd0]
mov byte [esp + 0xe78], 0x97
push ecx
mov edx, eax
lea ecx, [esp + 0xc4]
call fcn.0041280d
pop ecx
mov byte [esp + 0xe78], 0x99
mov ecx, dword [esp + 0x218]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xc0]
mov edx, dword [eax]
call fcn.00402278
test al, al
je 0x40b45d
push ecx
lea eax, [esp + 0xc4]
mov ecx, esp
push eax
call fcn.004130a0
xor ecx, ecx
call fcn.00401fe5
pop ecx
mov ecx, dword [esp + 0xc0]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov byte [esp + 0xe78], 0x94
mov ecx, dword [esp + 0xd0]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0xb0]
call fcn.0040f5b4
mov eax, dword [esp + 0xb0]
cmp eax, dword [esp + 0x114]
jne 0x40b34d
mov ecx, dword [esp + 0xd8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x114]
jmp 0x40b6ee
push 0x39e
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x324]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x318]
push eax
mov byte [esp + 0xe7c], 0x9a
call fcn.00402691
mov ecx, dword [esp + 0x320]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0xc0]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0xd0]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0xd8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x114]
call fcn.0040e8d9
jmp 0x40a1ee
cmp byte [esp + 0x4b], 0
je 0x40b6fb
cmp dword [esi - 0xc], 0
setne al
test al, al
jne 0x40b53a
push 0x3a3
push 0x80004005
push ecx
mov ecx, esp
call fcn.00413014
lea ecx, [esp + 0x33c]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x330]
push eax
mov byte [esp + 0xe7c], 0x9b
call fcn.00402691
mov ecx, dword [esp + 0x338]
jmp 0x40a1e6
and dword [esp + 0x11c], 0
and dword [esp + 0x120], 0
call fcn.0040fc56
mov dword [esp + 0x11c], eax
push 0x43acc8
lea edx, [esp + 0x38]
mov byte [esp + 0xe7c], 0x9c
lea ecx, [esp + 0x1ec]
call fcn.0040e5b7
pop ecx
lea ecx, [esp + 0x60]
mov byte [esp + 0xe78], 0x9d
push ecx
mov edx, eax
lea ecx, [esp + 0x100]
call fcn.0041280d
pop ecx
mov byte [esp + 0xe78], 0x9f
mov ecx, dword [esp + 0x1e8]
add ecx, 0xfffffff0
call fcn.004130bf
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x4399c0
call fcn.00412bfc
lea eax, [esp + 0x124]
mov byte [esp + 0xe80], 0xa0
push eax
push ecx
lea eax, [esp + 0x10c]
mov ecx, esp
push eax
call fcn.004130a0
xor edx, edx
mov byte [esp + 0xe88], 0x9f
lea ecx, [esp + 0x490]
call fcn.00403124
mov ecx, dword [esp + 0x498]
add esp, 0x10
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x11c]
mov eax, dword [ecx]
mov dword [esp + 0x74], eax
cmp eax, ecx
je 0x40b6d8
add eax, 0x10
lea ecx, [esp + 0xec]
push eax
call fcn.004130a0
mov byte [esp + 0xe78], 0xa1
push dword [esp + 0xec]
push esi
call fcn.0041928c
pop ecx
pop ecx
test eax, eax
je 0x40b6a7
push 0x43acc8
lea edx, [esp + 0x100]
lea ecx, [esp + 0xf8]
call fcn.0040e5b7
pop ecx
lea ecx, [esp + 0xec]
mov byte [esp + 0xe78], 0xa2
push ecx
mov edx, eax
lea ecx, [esp + 0x230]
call fcn.0041280d
pop ecx
mov byte [esp + 0xe78], 0xa3
mov ecx, dword [eax]
call fcn.00401fb9
mov ecx, dword [esp + 0x22c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0xf4]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov byte [esp + 0xe78], 0x9f
mov ecx, dword [esp + 0xec]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x74]
call fcn.0040f5b4
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0x11c]
jne 0x40b617
mov ecx, dword [esp + 0xfc]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esp + 0x11c]
mov byte [esp + 0xe78], 0x60
call fcn.0040e8d9
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x18c]
call fcn.004017e0
pop ecx
mov byte [esp + 0xe78], 0xa4
cmp dword [esp + 0x188], 0
jge 0x40b796
cmp dword [esp + 0x18c], 0
mov eax, 0x3b2
cmovne eax, dword [esp + 0x18c]
push eax
push dword [esp + 0x18c]
lea eax, [esp + 0x198]
push ecx
mov ecx, esp
push eax
call fcn.004130a0
lea ecx, [esp + 0x354]
call fcn.004130db
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x348]
push eax
mov byte [esp + 0xe7c], 0xa5
call fcn.00402691
lea ecx, [esp + 0x350]
call fcn.0040e46a
lea ecx, [esp + 0x190]
call fcn.0040e46a
jmp 0x40a1ee
lea ecx, [esp + 0x190]
mov byte [esp + 0xe78], 0x60
call fcn.0040e46a
push dword [esp + 0x10c]
lea eax, [esp + 0x28]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.004130a0
push ecx
mov byte [esp + 0xe8c], 0xa6
lea eax, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x70], esp
push eax
call fcn.004130a0
push ecx
mov ecx, esp
mov byte [esp + 0xe90], 0xa7
push dword [esp + 0xe4]
call fcn.004130a0
mov dl, byte [esp + 0x57]
lea ecx, [esp + 0x26c]
mov byte [esp + 0xe90], 0x60
call fcn.00407fa1
add esp, 0x18
mov ecx, dword [esp + 0x14]
mov byte [esp + 0xe78], 0xa8
cmp dword [esp + 0x254], 0
jge 0x40b845
lea eax, [esp + 0x254]
push eax
call fcn.00402691
lea ecx, [esp + 0x25c]
jmp 0x40b78c
push 0
call fcn.00412d97
jmp 0x40b839
push 5
lea eax, [esp + 0xc8]
push eax
call fcn.0040e56f
push str.GOTO:
mov ecx, eax
mov byte [esp + 0xe7c], 0x41
call fcn.00412773
neg eax
mov byte [esp + 0xe78], 0x32
mov ecx, dword [esp + 0xc4]
sbb al, al
add ecx, 0xfffffff0
inc al
mov dword [esp + 0xf4], eax
call fcn.004130bf
cmp byte [esp + 0xf4], 0
je 0x40ba07
push 5
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0xc4]
call fcn.0040e502
mov eax, dword [esp + 0xcc]
push ecx
mov byte [esp + 0xe7c], 0x42
mov dword [esp + 0xc8], esp
mov ecx, dword [eax]
sub ecx, 0x10
call fcn.00413040
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
lea ecx, [esp + 0x108]
call fcn.004029c4
pop ecx
push eax
mov edx, str._key
mov byte [esp + 0xe7c], 0x43
lea ecx, [esp + 0x88]
call fcn.0040e61c
pop ecx
mov byte [esp + 0xe78], 0x45
mov ecx, dword [esp + 0x104]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea eax, [esp + 0x84]
push eax
lea edx, [esp + 0x68]
lea ecx, [esp + 0xbc]
call fcn.0041280d
pop ecx
mov byte [esp + 0xe78], 0x46
cmp byte [0x446fcc], 0
je 0x40b9df
push 0x2a5
lea eax, [esp + 0xbc]
mov edx, str.Please_run_in_non_silent_mode_or_go_to
push 0x80004005
push eax
lea ecx, [esp + 0x68]
call fcn.0040e61c
mov ecx, esp
mov byte [esp + 0xe84], 0x47
push str._for_more_information
mov edx, eax
call fcn.0040e5b7
pop ecx
lea ecx, [esp + 0x42c]
call fcn.004130db
mov ecx, dword [esp + 0x14]
push eax
mov byte [esp + 0xe7c], 0x48
call fcn.00402691
mov ecx, dword [esp + 0x428]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0xb8]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x84]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x64]
jmp 0x40ba43
xor eax, eax
inc eax
push eax
xor eax, eax
push eax
push eax
push dword [esp + 0xc4]
push str.open
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ecx, dword [esp + 0x14]
push 0
call fcn.00412d97
jmp 0x40b9bb
push 0x2ad
push 0x80004005
push ecx
mov ecx, esp
push str.Invalid_response
call fcn.00412bfc
lea ecx, [esp + 0x444]
call fcn.004130db
mov ecx, dword [esp + 0x14]
push eax
mov byte [esp + 0xe7c], 0x49
call fcn.00402691
mov ecx, dword [esp + 0x440]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x40]
lea ecx, [ecx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x20]
call fcn.004130bf
lea ecx, [esp + 0x78]
call fcn.0040f6b4
lea ecx, [ebx - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [esi - 0x10]
call fcn.004130bf
mov ecx, dword [esp + 0x44]
lea ecx, [ecx - 0x10]
call fcn.004130bf
lea ecx, [edi - 0x10]
call fcn.004130bf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xe70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe58]
xor ecx, esp
call fcn.004183eb
mov esp, ebp
pop ebp
ret