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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4310fe
mov eax, dword fs:[0]
push eax
sub esp, 0xe40
mov eax, dword [0x44335c]
xor eax, esp
mov dword [esp + 0xe38], eax
push ebx
push esi
push edi
mov eax, dword [0x44335c]
xor eax, esp
push eax
lea eax, [esp + 0xe50]
mov dword fs:[0], eax
mov dword [esp + 0xd8], edx
mov ebx, ecx
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
and dword [esp + 0x360], 0
mov dword [esp + 0x104], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x74], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp + 0xe0], eax
call fcn.00412bcd
push eax
lea ecx, [esp + 0xf4]
call fcn.0040f03e
and dword [esp + 0xe58], 0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jle 0x408b5f
push 0x21
push eax
call fcn.00418719
pop ecx
pop ecx
test eax, eax
je 0x408b5f
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
je 0x408b5f
push eax
lea eax, [esp + 0x1cc]
mov ecx, esi
push eax
call fcn.0040e22d
push eax
lea ecx, [esp + 0xf4]
mov byte [esp + 0xe5c], 1
call fcn.004124b3
mov byte [esp + 0xe58], 0
mov ecx, dword [esp + 0x1c8]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov edi, dword [esp + 0xf0]
lea ecx, [esp + 0x19c]
mov edx, edi
call fcn.0040887d
mov byte [esp + 0xe58], 2
cmp dword [esp + 0x19c], 0
jge 0x408bf6
cmp dword [esp + 0x1a0], 0
mov eax, 0x223
mov ebx, dword [esp + 0x1a4]
cmovne eax, dword [esp + 0x1a0]
push eax
push dword [esp + 0x1a0]
push ecx
lea ecx, [ebx - 0x10]
mov esi, esp
call fcn.00412c8f
add eax, 0x10
lea ecx, [esp + 0x288]
mov dword [esi], eax
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x27c]
push eax
mov byte [esp + 0xe5c], 3
call fcn.00402671
mov ecx, dword [esp + 0x284]
add ecx, 0xfffffff0
call fcn.00412d0e
lea ecx, [ebx - 0x10]
jmp 0x40b7cb
mov byte [esp + 0xe58], 0
mov ecx, dword [esp + 0x1a4]
add ecx, 0xfffffff0
call fcn.00412d0e
mov eax, dword [0x445fe0]
cmp dword [eax - 0xc], 0
je 0x408db3
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
setne al
test al, al
jne 0x408c88
push 0x226
push 0x80004005
push ecx
mov esi, esp
call fcn.00412bcd
push eax
mov ecx, esi
call fcn.0040f03e
lea ecx, [esp + 0x3a0]
call fcn.00412d2a
lea eax, [esp + 0x394]
mov byte [esp + 0xe58], 4
push eax
mov ecx, ebx
call fcn.00402671
mov ecx, dword [esp + 0x39c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [edi - 0x10]
call fcn.00412d0e
mov eax, ebx
jmp 0x40b7dc
push ecx
mov ecx, dword [0x445fe0]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.00412c8f
add eax, 0x10
lea ecx, [esp + 0xe0]
mov dword [esi], eax
call fcn.004021de
pop ecx
mov byte [esp + 0xe58], 5
mov ecx, dword [0x445fe0]
add ecx, 0xfffffff0
call fcn.00412c8f
add eax, 0x10
mov dword [esp + 0x18], eax
push dword [esp + 0xe0]
mov byte [esp + 0xe5c], 6
add eax, 0xfffffff0
push dword [ebp + 0x10]
mov dword [esp + 0x68], eax
push dword [ebp + 0xc]
push ecx
mov ecx, eax
mov dword [esp + 0x68], esp
mov esi, esp
call fcn.00412c8f
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [esp + 0xe6c], 7
mov esi, esp
mov ecx, dword [esp + 0xf0]
add ecx, 0xfffffff0
mov dword [esp + 0x124], esp
call fcn.00412c8f
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, dword [esp + 0xe0]
mov esi, esp
mov byte [esp + 0xe70], 8
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.00412c8f
add eax, 0x10
lea ecx, [esp + 0x240]
mov dword [esi], eax
mov dl, 1
mov byte [esp + 0xe70], 6
call fcn.00407ea8
add esp, 0x18
mov byte [esp + 0xe58], 9
cmp dword [esp + 0x228], 0
jge 0x408d9c
lea eax, [esp + 0x228]
mov ecx, ebx
push eax
call fcn.00402671
mov ecx, dword [esp + 0x230]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x60]
call fcn.00412d0e
mov ecx, dword [esp + 0xdc]
jmp 0x408c71
and dword [ebx], 0
and dword [ebx + 4], 0
call fcn.00412bcd
push eax
lea ecx, [ebx + 8]
call fcn.0040f03e
jmp 0x408d78
mov ecx, dword [esp + 0xe0]
call fcn.00412761
call fcn.00412bcd
push eax
lea ecx, [esp + 0x48]
call fcn.0040f03e
mov byte [esp + 0xe58], 0xa
call fcn.00412bcd
push eax
lea ecx, [esp + 0x58]
call fcn.0040f03e
mov byte [esp + 0xe58], 0xb
call fcn.00412bcd
push eax
lea ecx, [esp + 0x74]
call fcn.0040f03e
mov byte [esp + 0xe58], 0xc
call fcn.00412bcd
push eax
lea ecx, [esp + 0x6c]
call fcn.0040f03e
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 + 0x4ac], 0xffffffff
mov dword [esp + 0x4a4], 0x439bac
mov dword [esp + 0x4a8], ebx
push ecx
push ecx
lea ecx, [esp + 0x4bc]
mov byte [esp + 0xe60], 0xf
call fcn.0040e89e
mov byte [esp + 0xe58], 0x10
mov eax, dword [ebp + 0xc]
push str.compressed1extended1
push ecx
mov ecx, dword [esp + 0x7c]
mov esi, esp
mov dword [esp + 0x4b0], eax
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.00412c8f
add eax, 0x10
lea ecx, [esp + 0x1ec]
mov dword [esi], eax
call fcn.004029a4
pop ecx
push eax
push str.version
push ecx
mov ecx, dword [esp + 0xd8]
mov esi, esp
mov byte [esp + 0xe68], 0x11
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.00412c8f
add eax, 0x10
lea ecx, [esp + 0x21c]
mov dword [esi], eax
call fcn.004029a4
pop ecx
push eax
mov edx, str.key
mov byte [esp + 0xe68], 0x12
lea ecx, [esp + 0x20c]
call fcn.0040e2da
pop ecx
mov byte [esp + 0xe64], 0x13
mov edx, eax
lea ecx, [esp + 0x1c8]
call fcn.0040e275
pop ecx
mov edx, eax
mov byte [esp + 0xe60], 0x14
lea ecx, [esp + 0x1f0]
call fcn.0041245e
pop ecx
mov edx, eax
mov byte [esp + 0xe5c], 0x15
lea ecx, [esp + 0xa0]
call fcn.0040e275
pop ecx
mov ecx, dword [esp + 0x1e8]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x1bc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x1fc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x20c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [esp + 0xe58], 0x1b
mov ecx, dword [esp + 0x1e4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
call fcn.00412bcd
push eax
lea ecx, [esp + 0x134]
call fcn.0040f03e
lea edx, [esp + 0x130]
mov byte [esp + 0xe58], 0x1c
lea ecx, [esp + 0x3f4]
call fcn.00406dd3
mov ecx, dword [esp + 0x3fc]
cmp dword [eax], ebx
setge bl
add ecx, 0xfffffff0
call fcn.00412d0e
mov esi, dword [esp + 0x130]
test bl, bl
je 0x40906c
push ecx
lea ecx, [esi - 0x10]
mov ebx, esp
call fcn.00412c8f
add eax, 0x10
lea ecx, [esp + 0x218]
mov dword [ebx], eax
call fcn.004029a4
mov ebx, eax
mov byte [esp + 0xe5c], 0x1d
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x1f0]
mov dword [esp], str.id
call fcn.0040e275
pop ecx
push ebx
mov edx, eax
mov byte [esp + 0xe5c], 0x1e
lea ecx, [esp + 0x220]
call fcn.0041245e
pop ecx
push eax
lea ecx, [esp + 0xa0]
mov byte [esp + 0xe5c], 0x1f
call fcn.004124b3
mov ecx, dword [esp + 0x21c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x1ec]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [esp + 0xe58], 0x1c
mov ecx, dword [esp + 0x214]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
push str.https:__ninite.com_newinstaller
lea ecx, [esp + 0x9c]
call fcn.0041284d
mov byte [esp + 0xe58], 0x20
cmp dword [edi - 0xc], 0
je 0x4090d6
lea eax, [esp + 0xf0]
mov edx, 0x4391e8
push eax
lea ecx, [esp + 0x1b0]
call fcn.0040e2da
pop ecx
mov byte [esp + 0xe58], 0x21
lea ecx, [esp + 0x98]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00411eb9
mov byte [esp + 0xe58], 0x20
mov ecx, dword [esp + 0x1ac]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
push 0x4389e4
lea ecx, [esp + 0x1bc]
call fcn.0041284d
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe58], 0x22
push ecx
mov edx, eax
lea ecx, [esp + 0x1b4]
call fcn.0041245e
pop ecx
mov byte [esp + 0xe58], 0x23
lea ecx, [esp + 0x98]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00411eb9
mov ecx, dword [esp + 0x1b0]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [esp + 0xe58], 0x20
mov ecx, dword [esp + 0x1b8]
add ecx, 0xfffffff0
call fcn.00412d0e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
call fcn.00403f31
xor eax, eax
mov byte [esp + 0xe5c], 0x24
push eax
push eax
push eax
push 0x1f4
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push eax
push eax
push dword [0x445ff4]
push ecx
mov ecx, dword [esp + 0xc8]
mov ebx, esp
lea ecx, [ecx - 0x10]
call fcn.00412c8f
add eax, 0x10
lea ecx, [esp + 0x4d4]
mov dword [ebx], eax
lea eax, [esp + 0x27c]
push eax
mov byte [esp + 0xe8c], 0x20
call fcn.0040460b
mov byte [esp + 0xe58], 0x25
cmp dword [esp + 0x24c], 0
jge 0x409273
sub esp, 0xc
lea eax, [esp + 0x258]
mov ecx, esp
push eax
call fcn.00402671
mov ecx, dword [esp + 0x20]
call fcn.0040890a
mov ecx, dword [esp + 0x260]
add esp, 0xc
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x98]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esi - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x9c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x504]
mov byte [esp + 0xe58], 0xe
call fcn.0040e925
lea eax, [esp + 0x504]
mov dword [esp + 0x504], 0x439c48
push eax
call fcn.00417744
pop ecx
lea ecx, [esp + 0x4ac]
call fcn.0040e50a
lea ecx, [esp + 0x78]
call fcn.0040f330
mov ecx, dword [esp + 0x68]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x70]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x54]
lea ecx, [ecx - 0x10]
jmp 0x40b7bf
lea eax, [esp + 0x60c]
push eax
lea ecx, [esp + 0x4b8]
call fcn.0040e968
mov byte [esp + 0xe58], 0x26
cmp dword [eax + 0x14], 0x10
jb 0x409297
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x130]
call fcn.00411f61
push 0
push 1
lea ecx, [esp + 0x614]
mov byte [esp + 0xe60], 0x28
call fcn.00411c5d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x438aa0
call fcn.0041284d
push ecx
mov byte [esp + 0xe60], 0x29
mov ebx, esp
mov ecx, dword [esp + 0x134]
lea ecx, [ecx - 0x10]
call fcn.00412c8f
add eax, 0x10
lea ecx, [esp + 0x80]
mov dword [ebx], eax
mov dl, 1
mov byte [esp + 0xe60], 0x28
call fcn.0040f921
pop ecx
pop ecx
mov ecx, dword [esp + 0x12c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x254]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x98]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esi - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x9c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x504]
mov byte [esp + 0xe58], 0xe
call fcn.0040e925
lea eax, [esp + 0x504]
mov dword [esp + 0x504], 0x439c48
push eax
call fcn.00417744
pop ecx
lea ecx, [esp + 0x4ac]
call fcn.0040e50a
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
sub ebx, esi
sar ebx, 2
test ebx, ebx
mov dword [esp + 0xac], ebx
setne al
test al, al
jne 0x4093f1
push 0x263
push 0x80004005
push ecx
mov esi, esp
call fcn.00412bcd
push eax
mov ecx, esi
call fcn.0040f03e
lea ecx, [esp + 0x2a0]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x294]
push eax
mov byte [esp + 0xe5c], 0x2a
call fcn.00402671
mov ecx, dword [esp + 0x29c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
jmp 0x409246
mov ecx, dword [esi]
sub ecx, 0x10
call fcn.00412c8f
mov dword [esp + 0x20], eax
add eax, 0x10
mov dword [esp + 0xb8], eax
mov byte [esp + 0xe58], 0x2b
call fcn.00412bcd
push eax
lea ecx, [esp + 0x44]
call fcn.0040f03e
xor eax, eax
mov byte [esp + 0xe58], 0x2c
inc eax
cmp ebx, eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
jbe 0x4099b3
lea ecx, [esi + 4]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x50], ecx
mov eax, dword [ecx]
mov edx, 0x4391ec
mov ecx, eax
mov dword [esp + 0x60], eax
call fcn.00402258
test al, al
je 0x409530
mov ecx, dword [esp + 0x50]
lea eax, [esp + 0x1c0]
push 5
push eax
call fcn.0040e1c0
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xe5c], 0x2d
call fcn.004124b3
mov byte [esp + 0xe58], 0x2c
mov ecx, dword [esp + 0x1c0]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x54]
mov esi, dword [eax - 0xc]
push esi
call fcn.004129b0
lea ecx, [esi + 1]
push ecx
push eax
call fcn.0041b3d1
pop ecx
pop ecx
push esi
lea ecx, [esp + 0x58]
call fcn.00412891
mov esi, dword [esp + 0x54]
cmp dword [esi - 0xc], 0x28
sete al
test al, al
jne 0x409740
push 0x26f
push 0x80004005
push ecx
mov dword [esp + 0x58], esp
call fcn.00412bcd
mov ecx, dword [esp + 0x58]
push eax
call fcn.0040f03e
lea ecx, [esp + 0x354]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x348]
push eax
mov byte [esp + 0xe5c], 0x2e
call fcn.00402671
mov ecx, dword [esp + 0x350]
jmp 0x40b782
mov ecx, dword [esp + 0x60]
mov edx, str.MODULE:
call fcn.00402258
test al, al
je 0x4096b6
mov ecx, dword [esp + 0x50]
lea eax, [esp + 0x4c]
push 7
push eax
call fcn.0040e1c0
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0xe5c], 0x2f
call fcn.004124b3
mov byte [esp + 0xe58], 0x2c
mov ecx, dword [esp + 0x4c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x40]
call fcn.0040e198
mov eax, dword [esp + 0x40]
cmp dword [eax - 0xc], 0
setne cl
test cl, cl
je 0x409906
push ecx
lea ecx, [eax - 0x10]
mov dword [esp + 0x78], esp
call fcn.00412c8f
mov ecx, esp
lea edx, [esp + 0x74]
add eax, 0x10
mov dword [ecx], eax
lea ecx, [esp + 0x140]
call fcn.00406a01
pop ecx
mov byte [esp + 0xe58], 0x31
cmp dword [esp + 0x13c], 0
jl 0x40985c
mov byte [esp + 0xe58], 0x2c
mov ecx, dword [esp + 0x144]
add ecx, 0xfffffff0
call fcn.00412d0e
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1c], eax
cmp dword [eax - 0xc], 0
setne al
test al, al
je 0x40980d
push ecx
lea eax, [esp + 0x44]
mov ecx, esp
push eax
mov edx, 0x439210
lea ebx, [esp + 0x70]
call fcn.0040e2da
pop ecx
mov edx, ebx
lea ecx, [esp + 0x188]
call fcn.00406a01
pop ecx
mov byte [esp + 0xe58], 0x34
cmp dword [esp + 0x184], 0
jl 0x40976c
mov byte [esp + 0xe58], 0x2c
mov ecx, dword [esp + 0x18c]
add ecx, 0xfffffff0
call fcn.00412d0e
mov ebx, dword [esp + 0x68]
cmp dword [ebx - 0xc], 0
setne al
test al, al
jne 0x409740
push 0x277
push 0x80004005
push ecx
mov dword [esp + 0x58], esp
call fcn.00412bcd
mov ecx, dword [esp + 0x58]
push eax
call fcn.0040f03e
lea ecx, [esp + 0x2b8]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2ac]
push eax
mov byte [esp + 0xe5c], 0x36
call fcn.00402671
mov ecx, dword [esp + 0x2b4]
jmp 0x40b782
mov ecx, dword [esp + 0x60]
mov edx, 0x439214
call fcn.00402258
test al, al
je 0x409740
mov ecx, dword [esp + 0x50]
lea eax, [esp + 0x90]
push 5
push eax
call fcn.0040e1c0
lea ecx, [esp + 0x90]
mov byte [esp + 0xe58], 0x37
call fcn.0040e198
mov eax, 0x439220
lea ecx, [esp + 0x90]
push eax
call fcn.004123c4
test eax, eax
jne 0x40970b
mov byte [esp + 0x3f], al
jmp 0x409729
push 0x439228
lea ecx, [esp + 0x94]
call fcn.004123c4
test eax, eax
jne 0x409955
mov byte [esp + 0x3f], 1
mov byte [esp + 0xe58], 0x2c
mov ecx, dword [esp + 0x90]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x50]
inc eax
add ecx, 4
mov dword [esp + 0x88], eax
mov dword [esp + 0x50], ecx
cmp eax, dword [esp + 0xac]
jb 0x409451
jmp 0x4099b7
cmp dword [esp + 0x188], 0
mov eax, 0x276
cmovne eax, dword [esp + 0x188]
push eax
push dword [esp + 0x188]
push ecx
mov ecx, dword [esp + 0x198]
mov ebx, esp
lea ecx, [ecx - 0x10]
call fcn.00412c8f
add eax, 0x10
lea ecx, [esp + 0x270]
mov dword [ebx], eax
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x264]
push eax
mov byte [esp + 0xe5c], 0x35
call fcn.00402671
mov ecx, dword [esp + 0x26c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x18c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x40]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x20]
call fcn.00412d0e
lea ecx, [esp + 0x78]
call fcn.0040f330
mov ecx, dword [esp + 0x68]
lea ecx, [ecx - 0x10]
jmp 0x40b7ab
push 0x275
push 0x80004005
push ecx
mov dword [esp + 0x58], esp
call fcn.00412bcd
mov ecx, dword [esp + 0x58]
push eax
call fcn.0040f03e
lea ecx, [esp + 0x2d0]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2c4]
push eax
mov byte [esp + 0xe5c], 0x33
call fcn.00402671
mov ecx, dword [esp + 0x2cc]
jmp 0x40b782
cmp dword [esp + 0x140], 0
mov eax, 0x274
cmovne eax, dword [esp + 0x140]
push eax
push dword [esp + 0x140]
push ecx
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x58], esp
lea ecx, [ecx - 0x10]
call fcn.00412c8f
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
lea ecx, [esp + 0x37c]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x370]
push eax
mov byte [esp + 0xe5c], 0x32
call fcn.00402671
mov ecx, dword [esp + 0x378]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x144]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x40]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x20]
call fcn.00412d0e
lea ecx, [esp + 0x78]
call fcn.0040f330
lea ecx, [ebx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x70]
jmp 0x40b7b4
push 0x273
push 0x80004005
push ecx
mov dword [esp + 0x58], esp
call fcn.00412bcd
mov ecx, dword [esp + 0x58]
push eax
call fcn.0040f03e
lea ecx, [esp + 0x2e8]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2dc]
push eax
mov byte [esp + 0xe5c], 0x30
call fcn.00402671
mov ecx, dword [esp + 0x2e4]
jmp 0x40b782
push 0x280
push 0x80004005
push ecx
mov dword [esp + 0x58], esp
call fcn.00412bcd
mov ecx, dword [esp + 0x58]
push eax
call fcn.0040f03e
lea ecx, [esp + 0x394]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x388]
push eax
mov byte [esp + 0xe5c], 0x38
call fcn.00402671
mov ecx, dword [esp + 0x390]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x90]
jmp 0x40b782
mov esi, dword [esp + 0x54]
push 4
lea eax, [esp + 0x1d4]
push eax
lea ecx, [esp + 0xc0]
call fcn.0040e22d
push str.GET:
mov ecx, eax
mov byte [esp + 0xe5c], 0x39
call fcn.004123c4
neg eax
mov byte [esp + 0xe58], 0x2c
mov ecx, dword [esp + 0x1d0]
sbb al, al
add ecx, 0xfffffff0
inc al
mov dword [esp + 0x74], eax
call fcn.00412d0e
cmp byte [esp + 0x74], 0
lea ecx, [esp + 0xb8]
je 0x40b57b
push 4
lea eax, [esp + 0x1dc]
push eax
call fcn.0040e1c0
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0xe5c], 0x3a
call fcn.004124b3
mov ecx, dword [esp + 0x1d8]
add ecx, 0xfffffff0
call fcn.00412d0e
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], eax
cmp dword [eax - 0xc], 0
setne al
test al, al
jne 0x409ae4
push 0x298
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x300]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2f4]
push eax
mov byte [esp + 0xe5c], 0x44
call fcn.00402671
mov ecx, dword [esp + 0x2fc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x40]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x20]
call fcn.00412d0e
lea ecx, [esp + 0x78]
call fcn.0040f330
lea ecx, [ebx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esi - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x30]
jmp 0x40b7c8
mov ecx, dword [esp + 0x40]
cmp dword [ecx - 0xc], 0
setne al
test al, al
jne 0x409b36
push 0x299
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x3ac]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3a0]
push eax
mov byte [esp + 0xe5c], 0x45
call fcn.00402671
mov ecx, dword [esp + 0x3a8]
jmp 0x409a99
mov eax, dword [esp + 0x1c]
cmp dword [eax - 0xc], 0
setne al
test al, al
jne 0x409b88
push 0x29a
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x318]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x30c]
push eax
mov byte [esp + 0xe5c], 0x46
call fcn.00402671
mov ecx, dword [esp + 0x314]
jmp 0x409a99
cmp dword [ebx - 0xc], 0
setne al
test al, al
jne 0x409bd6
push 0x29b
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x3c4]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3b8]
push eax
mov byte [esp + 0xe5c], 0x47
call fcn.00402671
mov ecx, dword [esp + 0x3c0]
jmp 0x409a99
add ecx, 0xfffffff0
call fcn.00412d0e
mov ecx, dword [esp + 0x20]
call fcn.00412d0e
lea ecx, [esp + 0x78]
mov byte [esp + 0xe58], 0xd
call fcn.0040f330
mov edx, dword [esp + 0xd8]
lea ecx, [esp + 0x34]
push str.Ninite.tmp
call fcn.0040e275
pop ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x5c], 0
mov byte [esp + 0x4b], 0
call fcn.00412c63
lea ecx, [esp + 0x6c]
call fcn.00412c63
mov byte [esp + 0xe58], 0x4a
cmp byte [0x445fd9], 0
je 0x409efa
cmp dword [ebx - 0xc], 0
setne al
test al, al
jne 0x409cb9
push 0x2aa
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x330]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x324]
push eax
mov byte [esp + 0xe5c], 0x4b
call fcn.00402671
mov ecx, dword [esp + 0x32c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x38]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x34]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
jmp 0x409abf
cmp dword [esi - 0xc], 0
setne al
test al, al
jne 0x409d04
push 0x2ab
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x3dc]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3d0]
push eax
mov byte [esp + 0xe5c], 0x4c
call fcn.00402671
mov ecx, dword [esp + 0x3d8]
jmp 0x409c88
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x3c]
call fcn.004124b3
push 0
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0x68]
mov edx, 0x439c58
push eax
lea ecx, [esp + 0x1e4]
call fcn.0040e2da
pop ecx
mov byte [esp + 0xe58], 0x4d
lea ecx, [esp + 0x38]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00411eb9
mov byte [esp + 0xe58], 0x4a
mov ecx, dword [esp + 0x1e0]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
push 0
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0x54]
mov edx, 0x439c58
push eax
lea ecx, [esp + 0x108]
call fcn.0040e2da
pop ecx
mov byte [esp + 0xe58], 0x4e
lea ecx, [esp + 0x38]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00411eb9
mov byte [esp + 0xe58], 0x4a
mov ecx, dword [esp + 0x104]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
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 + 0x5c], 1
push eax
lea ecx, [esp + 0x70]
call fcn.004124b3
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x20], eax
push str.Ninite.
lea edx, [esp + 0x70]
lea ecx, [esp + 0x20c]
call fcn.0040e275
pop ecx
cmp byte [esp + 0x3f], 0
mov edx, 0x439220
mov ecx, 0x439228
mov byte [esp + 0xe58], 0x57
cmove ecx, edx
mov edx, eax
push ecx
lea ecx, [esp + 0x28]
call fcn.0040e275
pop ecx
mov ecx, dword [esp + 0x208]
add ecx, 0xfffffff0
call fcn.00412d0e
or dword [esp + 0x2c], 0xffffffff
mov byte [esp + 0xe58], 0x5a
cmp byte [0x445fd9], 0
je 0x40a1d4
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40a4c0
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.0040e524
test eax, eax
setne al
test al, al
jne 0x40a4c0
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x2f4
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x348]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x33c]
push eax
mov byte [esp + 0xe5c], 0x5b
call fcn.00402671
mov ecx, dword [esp + 0x344]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x2c]
call fcn.0040e50a
mov ecx, dword [esp + 0x24]
jmp 0x409fe5
cmp dword [esi - 0xc], 0
je 0x409f77
cmp byte [0x445fd8], 0
je 0x40a002
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x3c]
call fcn.004124b3
push 0
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [esp + 0x70]
mov edx, 0x439c58
push eax
lea ecx, [esp + 0x1f4]
call fcn.0040e2da
pop ecx
mov byte [esp + 0xe58], 0x4f
lea ecx, [esp + 0x38]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00411eb9
mov byte [esp + 0xe58], 0x4a
mov ecx, dword [esp + 0x1f0]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
xor eax, eax
inc eax
mov byte [esp + 0x5c], al
mov byte [esp + 0x4b], al
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
push dword [esp + 0x104]
lea ecx, [esp + 0x70]
call fcn.004124b3
mov eax, dword [esp + 0x6c]
push 0
push eax
mov dword [esp + 0x28], eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x409de0
call fcn.00412501
push 0x2e5
push eax
push ecx
lea eax, [esp + 0x78]
mov ecx, esp
push eax
call fcn.00412cef
lea ecx, [esp + 0x43c]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
push eax
mov byte [esp + 0xe5c], 0x56
call fcn.00402671
mov ecx, dword [esp + 0x438]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x20]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x28]
jmp 0x409ca0
mov eax, dword [0x445fdc]
cmp dword [eax - 0xc], 0
je 0x40a031
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40a031
push 0x445fdc
lea ecx, [esp + 0x3c]
mov byte [esp + 0x60], 1
call fcn.004124b3
jmp 0x409f77
lea ecx, [esp + 0x1f8]
call fcn.00401d90
push str._ninite.ini
mov edx, eax
mov byte [esp + 0xe5c], 0x50
lea ecx, [esp + 0x12c]
call fcn.0040e275
pop ecx
mov byte [esp + 0xe58], 0x52
mov ecx, dword [esp + 0x1f8]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
xor eax, eax
push 0x81e
push eax
mov word [esp + 0x62c], ax
lea eax, [esp + 0x62e]
push eax
call fcn.00418540
add esp, 0xc
lea eax, [esp + 0x624]
push dword [esp + 0x128]
push 0x410
push eax
push 0
push str.path
push str.Cache
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x40a11d
lea eax, [esp + 0x624]
push eax
lea ecx, [esp + 0x3c]
call fcn.00412822
push ecx
lea eax, [esp + 0x3c]
mov ecx, esp
push eax
call fcn.00412cef
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x410]
call fcn.00401c62
pop ecx
mov ecx, dword [esp + 0x414]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov eax, dword [esp + 0x38]
push eax
mov dword [esp + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, dword [esp + 0x5c]
cmp eax, 0xffffffff
push 1
movzx ecx, cl
pop eax
cmovne ecx, eax
mov dword [esp + 0x5c], ecx
jmp 0x40a125
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov byte [esp + 0xe58], 0x4a
mov ecx, dword [esp + 0x128]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
cmp byte [esp + 0x5c], 0
jne 0x409f7f
lea ecx, [esp + 0x200]
call fcn.00401d90
push str.NiniteDownloadsFiles
mov edx, eax
mov byte [esp + 0xe5c], 0x53
lea ecx, [esp + 0x104]
call fcn.0040e275
pop ecx
mov byte [esp + 0xe58], 0x55
mov ecx, dword [esp + 0x200]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
push dword [esp + 0x100]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40a1b8
xor eax, eax
lea ecx, [esp + 0x38]
inc eax
mov byte [esp + 0x5c], al
lea eax, [esp + 0x100]
push eax
call fcn.004124b3
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov byte [esp + 0xe58], 0x4a
mov ecx, dword [esp + 0x100]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
jmp 0x409f7f
cmp byte [esp + 0x5c], 0
je 0x40a4c0
cmp dword [esi - 0xc], 0
setne al
test al, al
jne 0x40a22d
push 0x2f8
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x3f4]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3e8]
push eax
mov byte [esp + 0xe5c], 0x5c
call fcn.00402671
mov ecx, dword [esp + 0x3f0]
jmp 0x409ee0
mov eax, dword [esp + 0x28]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x439c58
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x214]
call fcn.0040e275
pop ecx
lea ecx, [esp + 0x54]
mov byte [esp + 0xe58], 0x5d
push ecx
mov edx, eax
lea ecx, [esp + 0xb4]
call fcn.0041245e
pop ecx
mov ecx, dword [esp + 0x210]
add ecx, 0xfffffff0
call fcn.00412d0e
xor eax, eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
push eax
push ecx
lea eax, [esp + 0xb8]
mov byte [esp + 0xe60], 0x60
mov ecx, esp
push eax
call fcn.00412cef
lea edx, [esp + 0x124]
lea ecx, [esp + 0x260]
call fcn.00402eee
pop ecx
pop ecx
cmp dword [esp + 0x258], 0
jl 0x40a48e
xor eax, eax
inc eax
mov byte [0x445fc4], al
mov eax, dword [esp + 0x120]
sub eax, dword [esp + 0x11c]
mov dword [esp + 0x64], eax
je 0x40a48e
lea ecx, [esp + 0xc4]
call fcn.00412c63
lea eax, [esp + 0xc4]
mov byte [esp + 0xe58], 0x62
mov edx, dword [esp + 0x11c]
lea ecx, [esp + 0x424]
push eax
push dword [esp + 0x68]
call fcn.00406af7
pop ecx
pop ecx
mov ecx, dword [esp + 0x42c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
push esi
push dword [esp + 0xc8]
call fcn.00418edc
pop ecx
pop ecx
test eax, eax
jne 0x40a47f
push ecx
lea eax, [esp + 0xb4]
mov ecx, esp
push eax
call fcn.00412cef
lea ecx, [esp + 0x440]
call fcn.004037ef
pop ecx
mov ecx, dword [esp + 0x444]
add ecx, 0xfffffff0
call fcn.00412d0e
push dword [esp + 0x64]
lea eax, [esp + 0x28]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
mov edx, dword [esp + 0x124]
lea ecx, [esp + 0x168]
call fcn.00402a46
pop ecx
pop ecx
mov byte [esp + 0xe58], 0x63
cmp dword [esp + 0x160], 0
jge 0x40a457
cmp dword [esp + 0x164], 0
mov eax, 0x30b
cmovne eax, dword [esp + 0x164]
push eax
push dword [esp + 0x164]
lea eax, [esp + 0x170]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
lea ecx, [esp + 0x360]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x354]
push eax
mov byte [esp + 0xe5c], 0x64
call fcn.00402671
mov ecx, dword [esp + 0x35c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x168]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0xc4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x260]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x11c]
call fcn.0040e535
mov ecx, dword [esp + 0xb0]
jmp 0x409ee0
mov ecx, dword [esp + 0x168]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
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 + 0xc4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x260]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x11c]
call fcn.0040e535
mov byte [esp + 0xe58], 0x5a
mov ecx, dword [esp + 0xb0]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x2c]
call fcn.0040e524
test eax, eax
jne 0x40aee2
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
lea ecx, [esp + 0x54c]
mov byte [esp + 0xe58], 0x65
call fcn.0040b800
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x46c]
mov dword [esp + 0x550], eax
call fcn.00403f90
push ecx
mov byte [esp + 0xe5c], 0x67
mov ecx, esp
mov dword [esp + 0x68], esp
call fcn.00403f31
xor ecx, ecx
mov byte [esp + 0xe5c], 0x68
push ecx
push ecx
lea eax, [esp + 0x478]
push eax
push 0x1f4
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push ecx
push dword [0x445ff8]
lea eax, [esp + 0x6c]
push dword [0x445ff4]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
lea eax, [esp + 0x178]
mov byte [esp + 0xe88], 0x67
push eax
lea ecx, [esp + 0x580]
call fcn.0040460b
mov byte [esp + 0xe58], 0x69
cmp dword [esp + 0x148], 0
jge 0x40a627
cmp dword [esp + 0x14c], 0
mov eax, 0x329
cmovne eax, dword [esp + 0x14c]
push eax
push dword [esp + 0x14c]
lea eax, [esp + 0x158]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
lea ecx, [esp + 0x3d0]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3c4]
push eax
mov byte [esp + 0xe5c], 0x6a
call fcn.00402671
mov ecx, dword [esp + 0x3cc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x150]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x46c]
call fcn.00404853
lea ecx, [esp + 0x54c]
call fcn.0040b835
lea ecx, [esp + 0xa0]
call fcn.0040e535
jmp 0x409ee8
mov byte [esp + 0xe58], 0x67
mov ecx, dword [esp + 0x150]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea eax, [esp + 0x5f4]
push eax
lea ecx, [esp + 0x560]
call fcn.0040e968
mov byte [esp + 0xe58], 0x6b
lea eax, [esp + 0xa0]
cmp dword [esp + 0x608], 0x10
lea edx, [esp + 0x5f4]
push eax
push dword [esp + 0x608]
cmovae edx, dword [esp + 0x5fc]
lea ecx, [esp + 0x23c]
call fcn.00407aec
pop ecx
pop ecx
mov byte [esp + 0xe58], 0x6c
cmp dword [esp + 0x234], 0
jge 0x40a74d
push dword [esp + 0x46c]
lea eax, [esp + 0x13c]
push dword [esp + 0x608]
push str.Invalid_data__1___d___d_
push eax
call fcn.00401b15
add esp, 0x10
push 0x336
mov byte [esp + 0xe5c], 0x6d
lea eax, [esp + 0x13c]
push dword [esp + 0x238]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
lea ecx, [esp + 0x460]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
push eax
mov byte [esp + 0xe5c], 0x6e
call fcn.00402671
mov ecx, dword [esp + 0x45c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x138]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x23c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
xor eax, eax
lea ecx, [esp + 0x5f4]
push 0
inc eax
push eax
call fcn.00411c5d
jmp 0x40a5fe
mov ecx, dword [esp + 0x23c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa0]
sub eax, ecx
mov dword [esp + 0x84], eax
setne al
mov dword [esp + 0x64], ecx
test al, al
jne 0x40a7c1
push 0x339
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x370]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x364]
push eax
mov byte [esp + 0xe5c], 0x6f
call fcn.00402671
mov ecx, dword [esp + 0x36c]
jmp 0x40a72e
xor eax, eax
lea ecx, [esp + 0x5f4]
push 0
inc eax
push eax
call fcn.00411c5d
lea ecx, [esp + 0x46c]
call fcn.00404853
lea ecx, [esp + 0x54c]
call fcn.0040b835
xor eax, eax
lea ecx, [esp + 0x94]
inc eax
mov byte [0x445fc4], al
call fcn.00412c63
lea eax, [esp + 0x94]
mov byte [esp + 0xe58], 0x70
mov edx, dword [esp + 0x64]
lea ecx, [esp + 0x154]
push eax
push dword [esp + 0x88]
call fcn.00406af7
pop ecx
pop ecx
mov byte [esp + 0xe58], 0x71
cmp dword [esp + 0x154], 0
jge 0x40a8c2
cmp dword [esp + 0x158], 0
mov eax, 0x342
cmovne eax, dword [esp + 0x158]
push eax
push dword [esp + 0x158]
lea eax, [esp + 0x164]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
lea ecx, [esp + 0x3b8]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3ac]
push eax
mov byte [esp + 0xe5c], 0x72
call fcn.00402671
mov ecx, dword [esp + 0x3b4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x15c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x94]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
jmp 0x40a616
mov ecx, dword [esp + 0x15c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
push dword [esp + 0x94]
push esi
call fcn.00418edc
neg eax
pop ecx
sbb al, al
pop ecx
inc al
jne 0x40a92b
push 0x346
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x388]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x37c]
push eax
mov byte [esp + 0xe5c], 0x73
call fcn.00402671
mov ecx, dword [esp + 0x384]
jmp 0x40a8a6
mov byte [esp + 0xe58], 0x65
mov ecx, dword [esp + 0x94]
add ecx, 0xfffffff0
call fcn.00412d0e
cmp byte [0x445fd9], 0
je 0x40ab6f
lea ecx, [esp + 0x1f4]
call fcn.00401a5a
mov edx, dword [esp + 0xd8]
lea ecx, [esp + 0x8c]
push eax
mov byte [esp + 0xe5c], 0x74
call fcn.0041245e
pop ecx
mov byte [esp + 0xe58], 0x76
mov ecx, dword [esp + 0x1f4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x138]
call fcn.00412cef
lea eax, [esp + 0x134]
mov byte [esp + 0xe58], 0x77
push eax
lea ecx, [esp + 0xfc]
call fcn.00412cef
mov ecx, dword [esp + 0x134]
add ecx, 0xfffffff0
call fcn.00412d0e
push dword [esp + 0x84]
lea eax, [esp + 0x90]
mov byte [esp + 0xe5c], 0x78
push ecx
mov ecx, esp
push eax
call fcn.00412cef
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x180]
call fcn.00402a46
pop ecx
pop ecx
mov byte [esp + 0xe58], 0x79
cmp dword [esp + 0x178], 0
jge 0x40aaa5
cmp dword [esp + 0x17c], 0
mov eax, 0x34e
cmovne eax, dword [esp + 0x17c]
push eax
push dword [esp + 0x17c]
lea eax, [esp + 0x188]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
lea ecx, [esp + 0x3e8]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x3dc]
push eax
mov byte [esp + 0xe5c], 0x7a
call fcn.00402671
mov ecx, dword [esp + 0x3e4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x180]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0xf8]
mov byte [esp + 0xe58], 0x76
call fcn.00403924
mov ecx, dword [esp + 0x8c]
jmp 0x40a8b5
mov ecx, dword [esp + 0x180]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
push 0
push dword [esp + 0x28]
push dword [esp + 0x94]
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.0040e524
test eax, eax
setne al
test al, al
jne 0x40ab4f
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x354
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x27c]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x270]
push eax
mov byte [esp + 0xe5c], 0x7b
call fcn.00402671
mov ecx, dword [esp + 0x278]
jmp 0x40aa7d
lea ecx, [esp + 0xf8]
mov byte [esp + 0xe58], 0x76
call fcn.00403924
mov ecx, dword [esp + 0x8c]
jmp 0x40aec6
push dword [esp + 0x84]
lea eax, [esp + 0x28]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x198]
call fcn.00402a46
pop ecx
pop ecx
mov byte [esp + 0xe58], 0x7c
cmp dword [esp + 0x190], 0
jge 0x40ac14
cmp dword [esp + 0x194], 0
mov eax, 0x35a
cmovne eax, dword [esp + 0x194]
push eax
push dword [esp + 0x194]
lea eax, [esp + 0x1a0]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
lea ecx, [esp + 0x294]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x288]
push eax
mov byte [esp + 0xe5c], 0x7d
call fcn.00402671
mov ecx, dword [esp + 0x290]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x198]
jmp 0x40a8b5
mov byte [esp + 0xe58], 0x65
mov ecx, dword [esp + 0x198]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
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.0040e524
test eax, eax
setne al
test al, al
jne 0x40acb3
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x35d
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x2ac]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2a0]
push eax
mov byte [esp + 0xe5c], 0x7e
call fcn.00402671
mov ecx, dword [esp + 0x2a8]
jmp 0x40a8b5
cmp byte [esp + 0x5c], 0
je 0x40aece
push 0x439c58
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x1b8]
call fcn.0040e275
pop ecx
lea ecx, [esp + 0x54]
mov byte [esp + 0xe58], 0x7f
push ecx
mov edx, eax
lea ecx, [esp + 0xd4]
call fcn.0041245e
pop ecx
mov ecx, dword [esp + 0x1b4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
push dword [esp + 0xd0]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40aebf
lea ecx, [esp + 0x50]
call fcn.00412c63
cmp byte [esp + 0x4b], 0
mov byte [esp + 0xe58], 0x82
je 0x40ad8b
lea ecx, [esp + 0xe8]
call fcn.00401a5a
mov edx, dword [esp + 0xd8]
lea ecx, [esp + 0x224]
push eax
mov byte [esp + 0xe5c], 0x83
call fcn.0041245e
pop ecx
push eax
lea ecx, [esp + 0x54]
mov byte [esp + 0xe5c], 0x84
call fcn.004124b3
mov ecx, dword [esp + 0x224]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [esp + 0xe58], 0x82
mov ecx, dword [esp + 0xe8]
jmp 0x40ae48
lea ecx, [esp + 0x1cc]
call fcn.00401a5a
mov dword [esp + 0xe8], eax
push 0x4389c0
lea edx, [esp + 0xd4]
mov byte [esp + 0xe5c], 0x85
lea ecx, [esp + 0x224]
call fcn.0040e275
pop ecx
mov byte [esp + 0xe58], 0x86
lea ecx, [esp + 0x1c4]
push dword [esp + 0xe8]
mov edx, eax
call fcn.0041245e
mov byte [esp + 0xe5c], 0x87
lea ecx, [esp + 0x1ac]
mov edx, eax
mov dword [esp], 0x4389c4
call fcn.0040e275
pop ecx
push eax
lea ecx, [esp + 0x54]
mov byte [esp + 0xe5c], 0x88
call fcn.004124b3
mov ecx, dword [esp + 0x1a8]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x1c4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x220]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [esp + 0xe58], 0x82
mov ecx, dword [esp + 0x1cc]
add ecx, 0xfffffff0
call fcn.00412d0e
push dword [esp + 0x84]
lea eax, [esp + 0x54]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x2c0]
call fcn.00402a46
pop ecx
pop ecx
mov byte [esp + 0xe58], 0x89
cmp dword [esp + 0x2b8], 0
jl 0x40ae9b
push 0
push dword [esp + 0xd4]
push dword [esp + 0x58]
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [esp + 0x50]
call fcn.00401f99
mov ecx, dword [esp + 0x2c0]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x50]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0xd0]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0xa0]
mov byte [esp + 0xe58], 0x5a
call fcn.0040e535
cmp byte [0x445fd9], 0
je 0x40b1fe
cmp dword [esi - 0xc], 0
setne al
test al, al
jne 0x40af3d
push 0x37c
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x2dc]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2d0]
push eax
mov byte [esp + 0xe5c], 0x8a
call fcn.00402671
mov ecx, dword [esp + 0x2d8]
jmp 0x409ee0
cmp dword [ebx - 0xc], 0
setne al
test al, al
jne 0x40af8b
push 0x37d
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x2f4]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2e8]
push eax
mov byte [esp + 0xe5c], 0x8b
call fcn.00402671
mov ecx, dword [esp + 0x2f0]
jmp 0x409ee0
and dword [esp + 0x108], 0
and dword [esp + 0x10c], 0
call fcn.0040f8d2
mov dword [esp + 0x108], eax
push 0x439c58
lea edx, [esp + 0x38]
mov byte [esp + 0xe5c], 0x8c
lea ecx, [esp + 0x208]
call fcn.0040e275
pop ecx
lea ecx, [esp + 0x68]
mov byte [esp + 0xe58], 0x8d
push ecx
mov edx, eax
lea ecx, [esp + 0xd8]
call fcn.0041245e
pop ecx
mov byte [esp + 0xe58], 0x8f
mov ecx, dword [esp + 0x204]
add ecx, 0xfffffff0
call fcn.00412d0e
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x4389b0
call fcn.0041284d
push 0
push ecx
lea eax, [esp + 0xe4]
mov byte [esp + 0xe68], 0x90
mov ecx, esp
push eax
call fcn.00412cef
lea edx, [esp + 0x118]
mov byte [esp + 0xe68], 0x8f
lea ecx, [esp + 0x458]
call fcn.00403104
mov ecx, dword [esp + 0x460]
add esp, 0x10
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x108]
mov eax, dword [ecx]
mov dword [esp + 0xac], eax
cmp eax, ecx
je 0x40b15f
add eax, 0x10
lea ecx, [esp + 0xcc]
push eax
call fcn.00412cef
mov byte [esp + 0xe58], 0x91
push dword [esp + 0xcc]
push esi
call fcn.00418edc
pop ecx
pop ecx
test eax, eax
je 0x40b128
push 0x439c58
lea edx, [esp + 0xd8]
lea ecx, [esp + 0x1d8]
call fcn.0040e275
pop ecx
lea ecx, [esp + 0xcc]
mov byte [esp + 0xe58], 0x92
push ecx
mov edx, eax
lea ecx, [esp + 0xc0]
call fcn.0041245e
pop ecx
mov byte [esp + 0xe58], 0x94
mov ecx, dword [esp + 0x1d4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xbc]
mov edx, dword [eax]
call fcn.00402258
test al, al
je 0x40b17a
push ecx
lea eax, [esp + 0xc0]
mov ecx, esp
push eax
call fcn.00412cef
xor ecx, ecx
call fcn.00401fc5
pop ecx
mov ecx, dword [esp + 0xbc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [esp + 0xe58], 0x8f
mov ecx, dword [esp + 0xcc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0xac]
call fcn.0040f230
mov eax, dword [esp + 0xac]
cmp eax, dword [esp + 0x108]
jne 0x40b06a
mov ecx, dword [esp + 0xd4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x108]
jmp 0x40b40b
push 0x386
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x30c]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x300]
push eax
mov byte [esp + 0xe5c], 0x95
call fcn.00402671
mov ecx, dword [esp + 0x308]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0xbc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0xcc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0xd4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x108]
call fcn.0040e597
jmp 0x409ee8
cmp byte [esp + 0x4b], 0
je 0x40b418
cmp dword [esi - 0xc], 0
setne al
test al, al
jne 0x40b257
push 0x38b
push 0x80004005
push ecx
mov ecx, esp
call fcn.00412c63
lea ecx, [esp + 0x324]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x318]
push eax
mov byte [esp + 0xe5c], 0x96
call fcn.00402671
mov ecx, dword [esp + 0x320]
jmp 0x409ee0
and dword [esp + 0x114], 0
and dword [esp + 0x118], 0
call fcn.0040f8d2
mov dword [esp + 0x114], eax
push 0x439c58
lea edx, [esp + 0x38]
mov byte [esp + 0xe5c], 0x97
lea ecx, [esp + 0x21c]
call fcn.0040e275
pop ecx
lea ecx, [esp + 0x70]
mov byte [esp + 0xe58], 0x98
push ecx
mov edx, eax
lea ecx, [esp + 0x100]
call fcn.0041245e
pop ecx
mov byte [esp + 0xe58], 0x9a
mov ecx, dword [esp + 0x218]
add ecx, 0xfffffff0
call fcn.00412d0e
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x4389b0
call fcn.0041284d
lea eax, [esp + 0x11c]
mov byte [esp + 0xe60], 0x9b
push eax
push ecx
lea eax, [esp + 0x10c]
mov ecx, esp
push eax
call fcn.00412cef
xor edx, edx
mov byte [esp + 0xe68], 0x9a
lea ecx, [esp + 0x470]
call fcn.00403104
mov ecx, dword [esp + 0x478]
add esp, 0x10
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x114]
mov eax, dword [ecx]
mov dword [esp + 0x74], eax
cmp eax, ecx
je 0x40b3f5
add eax, 0x10
lea ecx, [esp + 0xec]
push eax
call fcn.00412cef
mov byte [esp + 0xe58], 0x9c
push dword [esp + 0xec]
push esi
call fcn.00418edc
pop ecx
pop ecx
test eax, eax
je 0x40b3c4
push 0x439c58
lea edx, [esp + 0x100]
lea ecx, [esp + 0xf8]
call fcn.0040e275
pop ecx
lea ecx, [esp + 0xec]
mov byte [esp + 0xe58], 0x9d
push ecx
mov edx, eax
lea ecx, [esp + 0x1e0]
call fcn.0041245e
pop ecx
mov byte [esp + 0xe58], 0x9e
mov ecx, dword [eax]
call fcn.00401f99
mov ecx, dword [esp + 0x1dc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0xf4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [esp + 0xe58], 0x9a
mov ecx, dword [esp + 0xec]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x74]
call fcn.0040f230
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0x114]
jne 0x40b334
mov ecx, dword [esp + 0xfc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esp + 0x114]
mov byte [esp + 0xe58], 0x5a
call fcn.0040e597
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.00412cef
lea ecx, [esp + 0x170]
call fcn.004017c0
pop ecx
mov byte [esp + 0xe58], 0x9f
cmp dword [esp + 0x16c], 0
jge 0x40b4b1
cmp dword [esp + 0x170], 0
mov eax, 0x39a
cmovne eax, dword [esp + 0x170]
push eax
push dword [esp + 0x170]
lea eax, [esp + 0x17c]
push ecx
mov ecx, esp
push eax
call fcn.00412cef
lea ecx, [esp + 0x33c]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x330]
push eax
mov byte [esp + 0xe5c], 0xa0
call fcn.00402671
mov ecx, dword [esp + 0x338]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x174]
jmp 0x409ee0
mov byte [esp + 0xe58], 0x5a
mov ecx, dword [esp + 0x174]
add ecx, 0xfffffff0
call fcn.00412d0e
push dword [esp + 0xe0]
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.00412cef
push ecx
mov byte [esp + 0xe6c], 0xa1
lea eax, [esp + 0x80]
mov ecx, esp
mov dword [esp + 0x6c], esp
push eax
call fcn.00412cef
push ecx
mov ecx, esp
mov byte [esp + 0xe70], 0xa2
push dword [esp + 0xe0]
call fcn.00412cef
mov dl, byte [esp + 0x57]
lea ecx, [esp + 0x258]
mov byte [esp + 0xe70], 0x5a
call fcn.00407ea8
add esp, 0x18
mov ecx, dword [esp + 0x14]
mov byte [esp + 0xe58], 0xa3
cmp dword [esp + 0x240], 0
jge 0x40b563
lea eax, [esp + 0x240]
push eax
call fcn.00402671
mov ecx, dword [esp + 0x248]
jmp 0x409ee0
push 0
call fcn.004129e8
lea ecx, [esp + 0x248]
call fcn.0040e128
jmp 0x409ee8
push 5
lea eax, [esp + 0xc4]
push eax
call fcn.0040e22d
push str.GOTO:
mov ecx, eax
mov byte [esp + 0xe5c], 0x3b
call fcn.004123c4
neg eax
mov byte [esp + 0xe58], 0x2c
mov ecx, dword [esp + 0xc0]
sbb al, al
add ecx, 0xfffffff0
inc al
mov dword [esp + 0xf4], eax
call fcn.00412d0e
cmp byte [esp + 0xf4], 0
je 0x40b746
push 5
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0xc0]
call fcn.0040e1c0
mov eax, dword [esp + 0xc8]
push ecx
mov byte [esp + 0xe5c], 0x3c
mov dword [esp + 0xc4], esp
mov ecx, dword [eax]
sub ecx, 0x10
call fcn.00412c8f
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
lea ecx, [esp + 0x114]
call fcn.004029a4
pop ecx
push eax
mov edx, str._key
mov byte [esp + 0xe5c], 0x3d
lea ecx, [esp + 0x8c]
call fcn.0040e2da
pop ecx
mov byte [esp + 0xe58], 0x3f
mov ecx, dword [esp + 0x110]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea eax, [esp + 0x88]
push eax
lea edx, [esp + 0x64]
lea ecx, [esp + 0xb8]
call fcn.0041245e
pop ecx
mov byte [esp + 0xe58], 0x40
cmp byte [0x445fc8], 0
je 0x40b70c
push 0x28d
lea eax, [esp + 0xb8]
mov edx, str.Please_run_in_non_silent_mode_or_go_to
push 0x80004005
push eax
lea ecx, [esp + 0x64]
call fcn.0040e2da
mov ecx, esp
mov byte [esp + 0xe64], 0x41
push str._for_more_information
mov edx, eax
call fcn.0040e275
pop ecx
lea ecx, [esp + 0x40c]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
push eax
mov byte [esp + 0xe5c], 0x42
call fcn.00402671
mov ecx, dword [esp + 0x408]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x58]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0xb4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x88]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x60]
jmp 0x40b782
xor eax, eax
inc eax
push eax
xor eax, eax
push eax
push eax
push dword [esp + 0xc0]
push str.open
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [esp + 0x14]
and dword [eax], 0
and dword [eax + 4], 0
call fcn.00412bcd
mov ecx, dword [esp + 0x14]
push eax
lea ecx, [ecx + 8]
call fcn.0040f03e
jmp 0x40b6e8
push 0x295
push 0x80004005
push ecx
mov ecx, esp
push str.Invalid_response
call fcn.0041284d
lea ecx, [esp + 0x424]
call fcn.00412d2a
mov ecx, dword [esp + 0x14]
push eax
mov byte [esp + 0xe5c], 0x43
call fcn.00402671
mov ecx, dword [esp + 0x420]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x40]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x20]
call fcn.00412d0e
lea ecx, [esp + 0x78]
call fcn.0040f330
lea ecx, [ebx - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esi - 0x10]
call fcn.00412d0e
mov ecx, dword [esp + 0x44]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [edi - 0x10]
call fcn.00412d0e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xe50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe38]
xor ecx, esp
call fcn.00418039
mov esp, ebp
pop ebp
ret