Function at 0x4013d3
Capabilities:
Accept command line arguments

Disassembly:
push ebx
push ecx
push edx
push esi
push edi
push ebp
mov ebp, esp
sub esp, 0x15c
sub ebp, 0x82
mov dword [ebp + 0x3e], 0
mov dword [ebp + 0x2a], 0x3e8
mov dword [ebp + 0x26], 0xffffffff
mov byte [ebp + 0x72], 0
mov byte [ebp + 0x7e], 0
mov byte [ebp + 0x6e], 0
mov byte [ebp + 0x5e], 0
mov byte [ebp + 0x76], 0
mov ebx, 0x28
mov edx, 0x4040e8
lea eax, [ebp - 0xa2]
mov byte [ebp + 0x62], 0
call fcn.0040203d
mov ebx, 0x400
mov edx, 0x113
lea eax, [ebp - 0xda]
mov byte [ebp + 0x66], 0
call fcn.00401ccb
call sub.KERNEL32.DLL_GetCommandLineA
mov edx, eax
call fcn.00402056
mov ebx, eax
lea eax, [ebp - 0xda]
mov byte [ebp + 0x52], 0
call fcn.00401cff
lea eax, [ebp - 0xda]
mov byte [ebp + 0x6a], 0
call fcn.00401d78
jmp 0x4015c5
push 0x40410a
push 0x40474b
jmp 0x401788
cmp byte [edx], 0
je 0x401490
cmp byte [edx], 0x2b
je 0x401490
mov al, 1
jmp 0x401492
xor al, al
movzx edx, al
lea eax, [ebp - 0xda]
call fcn.004011b6
mov ecx, eax
xor edx, edx
lea eax, [ebp - 0xda]
jmp 0x40185d
cmp byte [edx], 0
jne 0x4014c1
lea eax, [ebp - 0xda]
call fcn.00401d78
mov edx, eax
test edx, edx
je 0x4014ce
mov eax, edx
call fcn.00402030
jmp 0x4014d3
mov eax, 0x1f4
push eax
call sub.KERNEL32.DLL_GetCurrentProcess
push eax
mov byte [ebp + 0x52], 1
call sub.KERNEL32.DLL_WaitForSingleObject
jmp 0x4015c5
cmp byte [edx], 0x2d
setne al
mov byte [0x404850], al
jmp 0x4015c5
cmp byte [edx], 0x2d
setne al
mov byte [0x404851], al
jmp 0x4015c5
cmp byte [edx], 0x2d
setne al
mov byte [ebp + 0x6e], al
jmp 0x4015c5
mov byte [ebp + 0x72], 1
cmp byte [edx], 0
jne 0x40152c
lea eax, [ebp - 0xda]
call fcn.00401d78
mov edx, eax
cmp byte [edx], 0x23
jne 0x40153b
call fcn.0040131e
jmp 0x4014a0
cmp byte [edx], 0x2d
jne 0x40154a
cmp byte [edx + 1], 0
jne 0x40154a
xor al, al
jmp 0x40154c
mov al, 1
mov byte [ebp + 0x6a], al
cmp al, 1
jne 0x4015c5
mov eax, edx
mov byte [ebp + 0x56], 0
call fcn.00402030
mov dword [ebp + 0x36], eax
test eax, eax
jge 0x401570
neg dword [ebp + 0x36]
mov byte [ebp + 0x56], 1
cmp byte [edx], 0
je 0x4015c5
mov eax, edx
inc edx
cmp byte [eax], 0x2b
jne 0x401570
cmp byte [edx], 0x3f
jne 0x401595
cmp byte [edx + 1], 0x2b
je 0x401595
cmp byte [edx + 1], 0
je 0x401595
mov ecx, 1
jmp 0x401597
xor ecx, ecx
mov eax, edx
call fcn.00402030
add eax, ecx
add dword [ebp + 0x36], eax
jmp 0x401570
cmp byte [edx], 0x2d
setne al
mov byte [ebp + 0x66], al
jmp 0x4015c5
cmp byte [edx], 0
je 0x401601
mov ebx, 0x28
lea eax, [ebp - 0xa2]
call fcn.0040203d
lea eax, [ebp - 0xda]
call fcn.00401d78
mov edx, eax
test eax, eax
je 0x4017a2
cmp byte [eax], 0x2d
je 0x4015e8
cmp byte [eax], 0x2f
jne 0x4017a2
cmp byte [edx + 1], 0x30
jb 0x4016ee
cmp byte [edx + 1], 0x39
jbe 0x4017a2
jmp 0x4016ee
lea eax, [ebp - 0xda]
call fcn.00401d78
mov edx, eax
test eax, eax
je 0x4017a2
jmp 0x4015b5
cmp byte [edx], 0x2d
setne al
mov byte [ebp + 0x5e], al
jmp 0x4015c5
mov byte [ebp + 0x76], 1
lea esi, [ebp - 0x76]
jmp 0x401633
mov byte [ebp + 0x62], 1
lea esi, [ebp - 0x36]
mov ecx, 0x40474e
cmp byte [edx], 0
je 0x401641
mov ecx, edx
jmp 0x401652
lea eax, [ebp - 0xda]
call fcn.00401d78
test eax, eax
je 0x401652
mov ecx, eax
mov byte [ebp + 0x5a], 0
inc byte [ebp + 0x5a]
movsx eax, byte [ebp + 0x5a]
cmp eax, 4
jg 0x4015c5
cmp byte [ecx], 0
je 0x40167b
movzx eax, byte [ecx]
cmp eax, 0x30
jl 0x401678
cmp eax, 0x39
jle 0x40167b
inc ecx
jmp 0x401666
mov ebx, 0xa
lea edx, [ebp + 0x1e]
mov eax, ecx
call fcn.00401e22
mov ebx, eax
test eax, eax
jg 0x4016b0
push ecx
push 0x40474f
xor edx, edx
call fcn.00401b75
add esp, 8
lea eax, [ebp - 0xda]
mov ecx, 0xfe
jmp 0x40185d
cmp byte [ebp + 0x5a], 1
jne 0x4016c4
mov eax, dword [ebp + 0x1e]
mov dword [esi + 0x18], eax
mov eax, dword [ebp + 0x22]
mov dword [esi + 0x1c], eax
jmp 0x4016e7
cmp byte [ebp + 0x5a], 2
jne 0x4016ce
mov edx, esi
jmp 0x4016dc
cmp byte [ebp + 0x5a], 3
jne 0x4016d9
lea edx, [esi + 8]
jmp 0x4016dc
lea edx, [esi + 0x10]
mov eax, dword [ebp + 0x1e]
mov dword [edx], eax
mov eax, dword [ebp + 0x22]
mov dword [edx + 4], eax
add ecx, ebx
jmp 0x401656
inc edx
mov al, byte [edx]
inc edx
cmp al, 0x68
jb 0x401745
jbe 0x401473
cmp al, 0x70
jb 0x401727
jbe 0x401618
cmp al, 0x74
jb 0x40171d
jbe 0x4015b0
cmp al, 0x77
je 0x4014af
jmp 0x40177f
cmp al, 0x71
je 0x4014e8
jmp 0x40177f
cmp al, 0x6c
jb 0x40173b
jbe 0x401508
cmp al, 0x6e
je 0x40151a
jmp 0x40177f
cmp al, 0x6b
je 0x4014f8
jmp 0x40177f
cmp al, 0x61
jb 0x40176d
jbe 0x401623
cmp al, 0x65
jb 0x401763
jbe 0x401482
cmp al, 0x67
je 0x4015a5
jmp 0x40177f
cmp al, 0x62
je 0x40162c
jmp 0x40177f
cmp al, 0x3f
jb 0x40177f
jbe 0x401473
cmp al, 0x4e
je 0x401516
lea eax, [edx - 2]
push eax
push 0x4040ee
xor edx, edx
call fcn.00401b75
add esp, 8
lea eax, [ebp - 0xda]
mov ecx, 0xff
jmp 0x40185d
cmp byte [ebp + 0x5e], 1
je 0x4017b2
cmp byte [ebp + 0x76], 1
jne 0x401871
cmp byte [ebp + 0x5e], 1
jne 0x4017e2
lea eax, [ebp - 0x16]
movzx edx, byte [0x404850]
call fcn.00401071
lea eax, [ebp - 0x16]
call fcn.004010d0
cmp byte [ebp + 0x62], 0
jne 0x4017e2
mov ecx, 8
lea edi, [ebp - 0x36]
lea esi, [ebp - 0x16]
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp + 0x76], 1
jne 0x401850
cmp byte [ebp + 0x62], 0
jne 0x401803
cmp byte [ebp + 0x5e], 0
jne 0x401803
lea eax, [ebp - 0x36]
movzx edx, byte [0x404850]
call fcn.00401071
lea edx, [ebp - 0x36]
lea eax, [ebp - 0x76]
call fcn.00401101
mov esi, eax
mov eax, dword [ebp - 0x1e]
mov ebx, 0x2710
sub eax, dword [ebp - 0x5e]
mov edx, dword [ebp - 0x1a]
sbb edx, dword [ebp - 0x5a]
xor ecx, ecx
call fcn.00401c3d
push edx
mov ecx, 0x64
push eax
mov edx, esi
mov eax, esi
sar edx, 0x1f
idiv ecx
push edx
mov edx, esi
mov eax, esi
sar edx, 0x1f
idiv ecx
push eax
push 0x404772
call fcn.00401b75
add esp, 0x14
lea eax, [ebp - 0xda]
xor edx, edx
mov ecx, 0xfc
call fcn.00402064
mov eax, ecx
lea esp, [ebp + 0x82]
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
cmp byte [ebp + 0x52], 0
je 0x401888
lea eax, [ebp - 0xda]
xor edx, edx
call fcn.00402064
xor ecx, ecx
jmp 0x401862
test edx, edx
je 0x4018cb
mov eax, edx
call fcn.00402030
imul eax, eax, 0x64
mov dword [ebp + 0x3e], eax
lea eax, [ebp - 0xda]
call fcn.00401d78
test eax, eax
je 0x4018cb
call fcn.00402030
test eax, eax
jle 0x4018b4
mov dword [ebp + 0x2a], eax
lea eax, [ebp - 0xda]
call fcn.00401d78
test eax, eax
je 0x4018cb
call fcn.00402030
mov dword [ebp + 0x26], eax
mov byte [ebp + 0x7a], 0
mov eax, 0xffffffff
mov dword [ebp + 0x32], eax
lea eax, [ebp - 0x76]
movzx edx, byte [0x404850]
call fcn.00401071
cmp byte [ebp + 0x7a], 0
jne 0x4018fd
mov ecx, 8
lea edi, [ebp - 0x56]
lea esi, [ebp - 0x76]
mov byte [ebp + 0x7a], 1
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x2a]
push esi
push dword [0x404868]
call sub.KERNEL32.DLL_WaitForSingleObject
lea eax, [ebp + 0xa]
call fcn.004020b3
movzx edx, byte [0x404850]
mov dword [ebp + 0x3a], eax
mov dword [ebp + 0x46], eax
lea eax, [ebp - 0x36]
call fcn.00401071
mov eax, dword [ebp - 0x1e]
mov ebx, 0x2710
sub eax, dword [ebp - 0x5e]
mov edx, dword [ebp - 0x1a]
sbb edx, dword [ebp - 0x5a]
add eax, 0x64
adc edx, 0
xor ecx, ecx
call fcn.00401c3d
mov dword [ebp + 0x4e], eax
mov edi, edx
test edx, edx
jb 0x401958
jne 0x401962
cmp esi, eax
jbe 0x401962
test byte [ebp + 0x3d], 0xe0
je 0x401962
sub esi, eax
jmp 0x401900
lea edx, [ebp - 0x36]
lea eax, [ebp - 0x76]
call fcn.00401101
lea edx, [ebp - 0x36]
mov dword [ebp + 0x4a], eax
lea eax, [ebp - 0x56]
call fcn.00401101
mov dword [ebp + 0x42], eax
mov eax, dword [ebp - 0x1e]
mov ebx, 0x2710
sub eax, dword [ebp - 0x3e]
mov edx, dword [ebp - 0x1a]
sbb edx, dword [ebp - 0x3a]
xor ecx, ecx
call fcn.00401c3d
mov dword [ebp + 0x2e], eax
mov ecx, edx
cmp byte [0x404850], 0
jne 0x401a68
cmp byte [0x404851], 1
jne 0x4019c8
cmp byte [ebp + 0x7e], 0
jne 0x4019c8
push 0x40479e
mov byte [ebp + 0x7e], 1
call fcn.00401b75
add esp, 4
mov eax, dword [ebp + 0x42]
mov edx, eax
mov ebx, 0x64
sar edx, 0x1f
idiv ebx
push ecx
push dword [ebp + 0x2e]
mov eax, dword [ebp + 0x42]
push edx
mov edx, eax
sar edx, 0x1f
idiv ebx
push eax
mov eax, dword [ebp + 0x3e]
mov edx, eax
sar edx, 0x1f
idiv ebx
push eax
mov eax, dword [ebp + 0x4a]
cmp eax, dword [ebp + 0x3e]
jge 0x401a01
mov eax, 0x4047aa
jmp 0x401a06
mov eax, 0x4047ad
push eax
mov eax, dword [ebp + 0x4a]
mov edx, eax
mov ebx, 0x64
sar edx, 0x1f
idiv ebx
mov eax, dword [ebp + 0x4a]
push edx
mov edx, eax
sar edx, 0x1f
idiv ebx
push eax
lea eax, [ebp - 0xa2]
push eax
push 0x4047b0
call fcn.00401b75
add esp, 0x28
cmp byte [ebp + 0x72], 0
je 0x401a68
cmp dword [ebp + 0x32], 0
jl 0x401a68
push dword [ebp + 0x36]
cmp byte [ebp + 0x56], 0
je 0x401a52
mov eax, 0x4047e4
jmp 0x401a57
mov eax, 0x4047e6
push eax
push dword [ebp + 0x32]
push 0x4047e9
call fcn.00401b75
add esp, 0x10
test edi, edi
ja 0x401a73
jne 0x401ad0
cmp esi, dword [ebp + 0x4e]
ja 0x401ad0
mov eax, dword [ebp + 0x4a]
cmp eax, dword [ebp + 0x3e]
setl al
movzx edx, byte [ebp + 0x6e]
movzx eax, al
xor eax, edx
jne 0x401a8d
cmp dword [ebp + 0x26], 0
jne 0x401ad0
cmp byte [ebp + 0x6a], 0
je 0x401aac
call fcn.0040131e
mov dword [ebp + 0x32], eax
cmp eax, dword [ebp + 0x36]
setl al
movzx edx, byte [ebp + 0x56]
movzx eax, al
xor eax, edx
je 0x401ad0
call fcn.004013b3
cmp byte [ebp + 0x66], 0
jne 0x401abc
mov edx, dword [ebp + 0x4a]
jmp 0x401abf
mov edx, dword [ebp + 0x42]
mov ecx, 0x64
mov eax, edx
sar edx, 0x1f
idiv ecx
jmp 0x4014a0
cmp dword [ebp + 0x26], 0
jle 0x401b02
mov eax, dword [ebp + 0x26]
sar eax, 0x1f
cmp eax, ecx
jb 0x401aea
jne 0x401b02
mov eax, dword [ebp + 0x26]
cmp eax, dword [ebp + 0x2e]
ja 0x401b02
cmp byte [0x404850], 0
jne 0x401ab1
push 0x4047f2
call fcn.00401b75
add esp, 4
jmp 0x401aac
test byte [ebp + 0x49], 0xe0
jne 0x4018d7
cmp dword [ebp + 0x46], 0xd
jb 0x4018cf
jbe 0x401b4f
cmp dword [ebp + 0x46], 0x1b
jne 0x4018cf
cmp byte [0x404850], 0
jne 0x401b3d
push 0x4047ff
call fcn.00401b75
add esp, 4
call fcn.004013b3
lea eax, [ebp - 0xda]
xor edx, edx
mov ecx, 0xfd
jmp 0x40185d
cmp byte [0x404850], 0
jne 0x401850
push 0x404808
call fcn.00401b75
add esp, 4
call fcn.004013b3
jmp 0x401850