Function at 0x407390
Capabilities:
Accept command line arguments
Enumerate files on windows
Move file
Set environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42bef4
mov eax, dword fs:[0]
push eax
sub esp, 0x2b4
mov eax, dword [0x43c770]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
mov dword [ebp - 4], 1
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0xf
mov byte [ebp - 0xd0], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0xf
mov byte [ebp - 0xb8], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00417c38
and eax, 0x80000007
jns 0x40745b
dec eax
or eax, 0xfffffff8
inc eax
add eax, 8
mov dword [ebp - 0x40], 0
push 0x20
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov byte [ebp - 4], 7
call fcn.00410c50
xor esi, esi
mov byte [ebp - 4], 9
cmp dword [ebp - 0x30], esi
jle 0x4074b3
lea edi, [esi + 0x1a]
call fcn.00417c38
cdq
idiv edi
lea eax, [ebp - 0x40]
add dl, 0x61
cmp dword [ebp - 0x2c], 0x10
cmovae eax, dword [ebp - 0x40]
mov byte [eax + esi], dl
inc esi
cmp esi, dword [ebp - 0x30]
jl 0x407494
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov edx, eax
lea esi, [edx + 1]
nop
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4074c0
sub edx, esi
lea ecx, [ebp - 0x28]
push edx
push eax
call fcn.00402c50
push ecx
push 0x4377ec
lea ecx, [ebp - 0x28]
call fcn.0040fec0
push ecx
mov esi, 2
lea ecx, [ebp - 0x28]
push 0x437788
sub esi, eax
call fcn.0040fec0
push ecx
push 0x4377ec
lea ecx, [ebp - 0x28]
add esi, eax
call fcn.0040fec0
mov dword [ebp - 0x290], 0
lea edx, [eax - 1]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 0xf
cmp ecx, edx
jb 0x408989
sub ecx, edx
lea eax, [ebp - 0x28]
cmp ecx, esi
cmovb esi, ecx
cmp dword [ebp - 0x14], 0x10
push esi
cmovae eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x290]
add eax, edx
push eax
call fcn.00402c50
lea eax, [ebp - 0x290]
push eax
lea ecx, [ebp - 0x28]
call fcn.004101e0
mov edx, dword [ebp - 0x27c]
cmp edx, 0x10
jb 0x4075a0
mov ecx, dword [ebp - 0x290]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407596
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x7c]
xorps xmm0, xmm0
mov dword [ebp - 0x74], 0
push 0
push 0x43c010
mov edx, section..data
movq qword [ebp - 0x7c], xmm0
call fcn.004038b0
add esp, 8
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x58]
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
sub eax, edi
dec eax
push eax
push edi
call fcn.00402c50
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xa0]
xorps xmm0, xmm0
mov dword [ebp - 0x98], 0
push 0
push 0x43c6e0
mov edx, 0x43c6d0
movq qword [ebp - 0xa0], xmm0
call fcn.004038b0
add esp, 8
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x70]
mov eax, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xa0]
sub eax, esi
dec eax
push eax
push esi
call fcn.00402c50
mov ecx, dword [ebp - 0x18]
mov eax, 0x7fffffff
sub eax, ecx
mov dword [ebp - 0x9c], esi
cmp eax, 2
jb 0x40898e
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push 2
cmovae eax, dword [ebp - 0x28]
push 0x4377f0
push ecx
push eax
push ecx
push dword [ebp - 0x230]
lea ecx, [ebp - 0x290]
call fcn.00412030
cmp dword [ebp - 0x27c], 0x10
lea ecx, [ebp - 0x210]
lea eax, [ebp - 0x290]
cmovae eax, dword [ebp - 0x290]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edx, dword [ebp - 0x27c]
mov ebx, eax
mov dword [ebp - 0x230], ebx
cmp edx, 0x10
jb 0x407709
mov ecx, dword [ebp - 0x290]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4076ff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 0xf
mov byte [ebp - 0x290], 0
cmp ebx, 0xffffffff
je 0x408702
cmp dword [ebp - 0x210], 0x10
je 0x407f10
mov dword [ebp - 0x22c], 0
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x22c], 0
mov byte [ebp - 4], 0x10
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407770
sub ecx, edx
lea eax, [ebp - 0x1e4]
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.00402c50
mov byte [ebp - 4], 0x12
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0x18]
sub eax, ecx
cmp eax, 1
jb 0x408998
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push 1
cmovae eax, dword [ebp - 0x28]
push 0x437788
push ecx
push eax
push ecx
push dword [ebp - 0x230]
lea ecx, [ebp - 0x278]
call fcn.00412030
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov ecx, esp
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x214], ecx
push eax
lea eax, [ebp - 0x278]
push eax
push dword [ebp - 0x214]
call fcn.00411e20
lea ecx, [ebp - 0x248]
call fcn.004070f0
add esp, 0x18
lea edx, [ebp - 0x58]
mov ecx, eax
cmp esi, 0x10
cmovae edx, dword [ebp - 0x58]
cmp dword [ecx + 0x14], 0x10
mov esi, dword [ecx + 0x10]
jb 0x407816
mov ecx, dword [ecx]
cmp esi, dword [ebp - 0x48]
jne 0x407874
sub esi, 4
jb 0x407831
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x407836
add ecx, 4
add edx, 4
sub esi, 4
jae 0x407820
cmp esi, 0xfffffffc
je 0x40786a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x407863
cmp esi, 0xfffffffd
je 0x40786a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x407863
cmp esi, 0xfffffffe
je 0x40786a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x407863
cmp esi, 0xffffffff
je 0x40786a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x40786a
sbb eax, eax
or eax, 1
jmp 0x40786c
xor eax, eax
test eax, eax
jne 0x407874
mov bl, 1
jmp 0x407876
xor bl, bl
mov edx, dword [ebp - 0x234]
cmp edx, 0x10
jb 0x4078b0
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4078a6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40899d
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x264]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
cmp edx, 0x10
jb 0x407909
mov ecx, dword [ebp - 0x278]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4078ff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40899d
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x218]
cmp edx, 0x10
jb 0x407947
mov ecx, dword [ebp - 0x22c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40793d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40899d
push edx
push ecx
call fcn.00413ec3
add esp, 8
test bl, bl
je 0x407f03
mov dword [ebp - 0x22c], 0
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x22c], 0
mov byte [ebp - 4], 0x10
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407981
sub ecx, edx
lea eax, [ebp - 0x1e4]
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.00402c50
mov dword [ebp - 0x260], 0
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x260], 0
mov byte [ebp - 4], 0x15
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4079d0
sub ecx, edx
lea eax, [ebp - 0x1e4]
push ecx
push eax
lea ecx, [ebp - 0x260]
call fcn.00402c50
push ecx
push 0x437740
lea ecx, [ebp - 0x260]
call fcn.0040fec0
mov esi, eax
mov dword [ebp - 0x248], 0
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
cmp edx, esi
jb 0x4089a2
sub edx, esi
lea eax, [ebp - 0x22c]
or ecx, 0xffffffff
cmp edx, 0xffffffff
cmovb ecx, edx
cmp dword [ebp - 0x218], 0x10
push ecx
cmovae eax, dword [ebp - 0x22c]
lea ecx, [ebp - 0x248]
add eax, esi
push eax
call fcn.00402c50
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x94]
call fcn.004101e0
mov edx, dword [ebp - 0x234]
cmp edx, 0x10
jb 0x407aa9
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407a9f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089a7
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x24c]
cmp edx, 0x10
jb 0x407ae7
mov ecx, dword [ebp - 0x260]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407add
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089a7
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x218]
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0xf
mov byte [ebp - 0x260], 0
cmp edx, 0x10
jb 0x407b40
mov ecx, dword [ebp - 0x22c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407b36
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089a7
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov dword [ebp - 0x22c], 0
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x22c], 0
mov byte [ebp - 4], 0x10
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407b72
sub ecx, edx
lea eax, [ebp - 0x1e4]
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.00402c50
mov byte [ebp - 4], 0x1a
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0x18]
sub eax, ecx
cmp eax, 1
jb 0x4089ac
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push 1
cmovae eax, dword [ebp - 0x28]
push 0x437788
push ecx
push eax
push ecx
push dword [ebp - 0x214]
lea ecx, [ebp - 0x248]
call fcn.00412030
lea eax, [ebp - 0x22c]
mov byte [ebp - 4], 0x1b
push eax
lea eax, [ebp - 0x248]
push eax
push dword [ebp - 0x214]
lea ecx, [ebp - 0x278]
call fcn.00411e20
lea eax, [ebp - 0x278]
push eax
lea ecx, [ebp - 0xd0]
call fcn.004101e0
mov edx, dword [ebp - 0x264]
cmp edx, 0x10
jb 0x407c3a
mov ecx, dword [ebp - 0x278]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407c30
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x1a
mov edx, dword [ebp - 0x234]
cmp edx, 0x10
jb 0x407c78
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407c6e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x218]
cmp edx, 0x10
jb 0x407cb6
mov ecx, dword [ebp - 0x22c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407cac
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov ecx, dword [ebp - 0x18]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 1
jb 0x4089b1
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push 1
cmovae eax, dword [ebp - 0x28]
push 0x437788
push ecx
push eax
push ecx
push dword [ebp - 0x214]
lea ecx, [ebp - 0x278]
call fcn.00412030
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x1c
push eax
lea edx, [ebp - 0x278]
lea ecx, [ebp - 0x22c]
call fcn.00410f50
add esp, 4
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x1d
push ecx
mov edx, eax
lea ecx, [ebp - 0x248]
call fcn.00410f50
add esp, 4
lea ecx, [ebp - 0xb8]
push eax
call fcn.004101e0
mov edx, dword [ebp - 0x234]
cmp edx, 0x10
jb 0x407d6c
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407d62
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089b6
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x1c
mov edx, dword [ebp - 0x218]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
cmp edx, 0x10
jb 0x407dc5
mov ecx, dword [ebp - 0x22c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407dbb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089b6
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x264]
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0xf
mov byte [ebp - 0x22c], 0
cmp edx, 0x10
jb 0x407e1e
mov ecx, dword [ebp - 0x278]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407e14
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089b6
push edx
push ecx
call fcn.00413ec3
add esp, 8
cmp dword [ebp - 0xa4], 0x10
lea ecx, [ebp - 0xb8]
push 2
cmovae ecx, dword [ebp - 0xb8]
lea eax, [ebp - 0xd0]
cmp dword [ebp - 0xbc], 0x10
push ecx
cmovae eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
je 0x407f03
mov edx, dword [ebp - 0x30]
mov eax, 0x7fffffff
mov esi, dword [ebp - 0x84]
sub eax, edx
cmp eax, esi
jb 0x4089bb
cmp dword [ebp - 0x2c], 0x10
lea ecx, [ebp - 0x40]
push esi
cmovae ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x94]
cmp dword [ebp - 0x80], 0x10
cmovae eax, dword [ebp - 0x94]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x214]
lea ecx, [ebp - 0x248]
call fcn.00412030
cmp dword [ebp - 0x234], 0x10
lea ecx, [ebp - 0x248]
lea eax, [ebp - 0x70]
cmovae ecx, dword [ebp - 0x248]
cmp dword [ebp - 0x5c], 0x10
push ecx
cmovae eax, dword [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov edx, dword [ebp - 0x234]
cmp edx, 0x10
jb 0x407f03
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407ef9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c0
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov ebx, dword [ebp - 0x230]
mov esi, dword [ebp - 0x44]
nop dword [eax]
lea eax, [ebp - 0x210]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov edi, eax
test edi, edi
je 0x4086ff
cmp dword [ebp - 0x210], 0x10
je 0x4086f6
mov dword [ebp - 0x22c], 0
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x22c], 0
mov byte [ebp - 4], 0x10
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407f67
sub ecx, edx
lea eax, [ebp - 0x1e4]
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.00402c50
mov byte [ebp - 4], 0x1f
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0x18]
sub eax, ecx
cmp eax, 1
jb 0x40898e
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push 1
cmovae eax, dword [ebp - 0x28]
push 0x437788
push ecx
push eax
push ecx
push dword [ebp - 0x214]
lea ecx, [ebp - 0x278]
call fcn.00412030
sub esp, 0x18
mov byte [ebp - 4], 0x20
mov ecx, esp
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x214], ecx
push eax
lea eax, [ebp - 0x278]
push eax
push dword [ebp - 0x214]
call fcn.00411e20
lea ecx, [ebp - 0x248]
call fcn.004070f0
add esp, 0x18
lea edx, [ebp - 0x58]
mov ecx, eax
cmp esi, 0x10
cmovae edx, dword [ebp - 0x58]
cmp dword [ecx + 0x14], 0x10
mov esi, dword [ecx + 0x10]
jb 0x40800d
mov ecx, dword [ecx]
cmp esi, dword [ebp - 0x48]
jne 0x40806b
sub esi, 4
jb 0x408028
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40802d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x408017
cmp esi, 0xfffffffc
je 0x408061
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x40805a
cmp esi, 0xfffffffd
je 0x408061
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40805a
cmp esi, 0xfffffffe
je 0x408061
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40805a
cmp esi, 0xffffffff
je 0x408061
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x408061
sbb eax, eax
or eax, 1
jmp 0x408063
xor eax, eax
test eax, eax
jne 0x40806b
mov bl, 1
jmp 0x40806d
xor bl, bl
mov edx, dword [ebp - 0x234]
cmp edx, 0x10
jb 0x4080a7
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40809d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x264]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
cmp edx, 0x10
jb 0x408100
mov ecx, dword [ebp - 0x278]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4080f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x218]
cmp edx, 0x10
jb 0x40813e
mov ecx, dword [ebp - 0x22c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408134
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
test bl, bl
je 0x4086f0
mov dword [ebp - 0x260], 0
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x260], 0
mov byte [ebp - 4], 0x10
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408178
sub ecx, edx
lea eax, [ebp - 0x1e4]
push ecx
push eax
lea ecx, [ebp - 0x260]
call fcn.00402c50
mov dword [ebp - 0x22c], 0
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x22c], 0
mov byte [ebp - 4], 0x22
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4081c6
sub ecx, edx
lea eax, [ebp - 0x1e4]
push ecx
push eax
lea ecx, [ebp - 0x22c]
call fcn.00402c50
push ecx
push 0x437740
lea ecx, [ebp - 0x22c]
call fcn.0040fec0
mov esi, eax
mov dword [ebp - 0x248], 0
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x250]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
cmp edx, esi
jb 0x408989
sub edx, esi
lea eax, [ebp - 0x260]
or ecx, 0xffffffff
cmp edx, 0xffffffff
cmovb ecx, edx
cmp dword [ebp - 0x24c], 0x10
push ecx
cmovae eax, dword [ebp - 0x260]
lea ecx, [ebp - 0x248]
add eax, esi
push eax
call fcn.00402c50
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x94]
call fcn.004101e0
mov edx, dword [ebp - 0x234]
cmp edx, 0x10
jb 0x40829f
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408295
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x22
mov edx, dword [ebp - 0x218]
cmp edx, 0x10
jb 0x4082dd
mov ecx, dword [ebp - 0x22c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4082d3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x24c]
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0xf
mov byte [ebp - 0x22c], 0
cmp edx, 0x10
jb 0x408336
mov ecx, dword [ebp - 0x260]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40832c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov ecx, dword [ebp - 0x18]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 1
jb 0x40898e
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push 1
cmovae eax, dword [ebp - 0x28]
push 0x437788
push ecx
push eax
push ecx
push dword [ebp - 0x214]
lea ecx, [ebp - 0x2c0]
call fcn.00412030
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x26
push eax
lea edx, [ebp - 0x2c0]
lea ecx, [ebp - 0x278]
call fcn.00410f50
add esp, 4
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x27
push ecx
mov edx, eax
lea ecx, [ebp - 0x248]
call fcn.00410f50
add esp, 4
mov esi, eax
cmp dword [esi + 0x14], 0x10
jb 0x4083b0
mov esi, dword [esi]
mov dword [ebp - 0x260], 0
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x260], 0
mov byte [ebp - 4], 0x28
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4083e2
sub ecx, edx
lea eax, [ebp - 0x1e4]
push ecx
push eax
lea ecx, [ebp - 0x260]
call fcn.00402c50
mov byte [ebp - 4], 0x2a
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0x18]
sub eax, ecx
cmp eax, 1
jb 0x40898e
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push 1
cmovae eax, dword [ebp - 0x28]
push 0x437788
push ecx
push eax
push ecx
push dword [ebp - 0x214]
lea ecx, [ebp - 0x2a8]
call fcn.00412030
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0x2b
push eax
lea eax, [ebp - 0x2a8]
push eax
push dword [ebp - 0x214]
lea ecx, [ebp - 0x22c]
call fcn.00411e20
cmp dword [ebp - 0x218], 0x10
lea eax, [ebp - 0x22c]
push esi
cmovae eax, dword [ebp - 0x22c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov edx, dword [ebp - 0x218]
mov esi, eax
cmp edx, 0x10
jb 0x4084b6
mov ecx, dword [ebp - 0x22c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4084ac
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x2a
mov edx, dword [ebp - 0x294]
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0xf
mov byte [ebp - 0x22c], 0
cmp edx, 0x10
jb 0x40850f
mov ecx, dword [ebp - 0x2a8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408505
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x28
mov edx, dword [ebp - 0x24c]
cmp edx, 0x10
jb 0x40854d
mov ecx, dword [ebp - 0x260]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408543
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x234]
cmp edx, 0x10
jb 0x40858b
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408581
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x26
mov edx, dword [ebp - 0x264]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
cmp edx, 0x10
jb 0x4085e4
mov ecx, dword [ebp - 0x278]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4085da
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x2ac]
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x264], 0xf
mov byte [ebp - 0x278], 0
cmp edx, 0x10
jb 0x40863d
mov ecx, dword [ebp - 0x2c0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408633
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
test esi, esi
je 0x4086f0
mov edx, dword [ebp - 0x30]
mov eax, 0x7fffffff
mov esi, dword [ebp - 0x84]
sub eax, edx
cmp eax, esi
jb 0x40898e
cmp dword [ebp - 0x2c], 0x10
lea ecx, [ebp - 0x40]
push esi
cmovae ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x94]
cmp dword [ebp - 0x80], 0x10
cmovae eax, dword [ebp - 0x94]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x214]
lea ecx, [ebp - 0x278]
call fcn.00412030
cmp dword [ebp - 0x264], 0x10
lea ecx, [ebp - 0x278]
lea eax, [ebp - 0x70]
cmovae ecx, dword [ebp - 0x278]
cmp dword [ebp - 0x5c], 0x10
push ecx
cmovae eax, dword [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov edx, dword [ebp - 0x264]
cmp edx, 0x10
jb 0x4086f0
mov ecx, dword [ebp - 0x278]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4086e6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408993
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov ebx, dword [ebp - 0x230]
cmp edi, 1
je 0x407f09
mov edi, dword [ebp - 0x7c]
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
push ebx
cmovae eax, dword [ebp - 0x58]
mov byte [eax], 0
lea eax, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x60], 0
cmovae eax, dword [ebp - 0x70]
mov byte [eax], 0
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, dword [ebp - 0xa0]
test edx, edx
je 0x408766
mov ecx, dword [ebp - 0x98]
mov eax, edx
sub ecx, edx
cmp ecx, 0x1000
jb 0x40875c
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push ecx
push edx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x40879a
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408790
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
test edi, edi
je 0x4087dd
mov ecx, dword [ebp - 0x74]
mov eax, edi
sub ecx, edi
cmp ecx, 0x1000
jb 0x4087d3
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push ecx
push edi
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x408811
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408807
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x408845
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40883b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x408879
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40886f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
cmp edx, 0x10
jb 0x4088c5
mov ecx, dword [ebp - 0xb8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4088bb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0xf
mov byte [ebp - 0xb8], 0
cmp edx, 0x10
jb 0x40891a
mov ecx, dword [ebp - 0xd0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408910
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0xf
mov byte [ebp - 0xd0], 0
cmp edx, 0x10
jb 0x408968
mov ecx, dword [ebp - 0x94]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40895e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4089c5
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00413918
mov esp, ebp
pop ebp
ret
call fcn.00410dc0
call fcn.00401250
call fcn.00419536
call fcn.00401250
call fcn.00419536
call fcn.00410dc0
call fcn.00419536
call fcn.00401250
call fcn.00401250
call fcn.00419536
call fcn.00401250
call fcn.00419536
call fcn.00419536
int3