Function at 0x401402
Capabilities:
Accept command line arguments
Create thread
Link many functions at runtime
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x250
or dword [ebp - 8], 0xffffffff
push ebx
push esi
xor ebx, ebx
push edi
mov dword [ebp - 0x24], ebx
mov byte [ebp - 1], 0x20
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
jmp 0x4014b7
inc eax
cmp cl, 0x2f
jne 0x4014b7
mov cl, byte [eax]
cmp cl, 0x46
je 0x401452
cmp cl, 0x49
jne 0x4014b7
inc eax
inc eax
movzx ecx, byte [eax]
sub ecx, 0x30
mov dword [ebp - 8], ecx
cmp ecx, 9
jbe 0x4014b7
or dword [ebp - 8], 0xffffffff
jmp 0x4014b7
inc eax
inc eax
cmp byte [eax], 0x22
jne 0x40145e
inc eax
mov byte [ebp - 1], 0x22
push 7
mov byte [ebp - 0x150], 0x66
mov byte [ebp - 0x14f], 0x69
mov byte [ebp - 0x14e], 0x6c
mov byte [ebp - 0x14d], 0x65
mov byte [ebp - 0x14c], 0x3a
mov byte [ebp - 0x14b], 0x2f
mov byte [ebp - 0x14a], 0x2f
pop esi
jmp 0x4014aa
cmp cl, byte [ebp - 1]
je 0x4014b0
cmp esi, 0x104
jae 0x4014b0
mov byte [ebp + esi - 0x150], cl
inc eax
inc esi
mov cl, byte [eax]
cmp cl, bl
jne 0x401494
mov byte [ebp + esi - 0x150], bl
mov cl, byte [eax]
cmp cl, bl
jne 0x401426
call fcn.0040133b
mov edi, eax
cmp edi, ebx
jne 0x4014e0
push 0x15
push 0x4012cc
call fcn.0040130a
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x4012b8
push edi
call esi
push 0x4012ac
push edi
mov dword [ebp - 0xc], eax
call esi
push 0x401294
push edi
mov dword [ebp - 0x20], eax
call esi
push 0x40127c
push edi
mov dword [ebp - 0x38], eax
call esi
push 0x401264
push edi
mov dword [ebp - 0x44], eax
call esi
push 0x401254
push edi
mov dword [ebp - 0x4c], eax
call esi
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x48]
push eax
call dword [ebp - 0xc]
cmp eax, 0xffffffff
jne 0x401544
push 0x1a
push 0x401238
jmp 0x4014d3
cmp dword [ebp - 8], 0xffffffff
jne 0x401556
push 0x18
push 0x40121c
call fcn.0040130a
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x28], ebx
cmp esi, ebx
je 0x40165e
mov dword [ebp - 0xc], 0xa5d305b
mov edi, 0x401218
cmp dword [ebp - 8], 0xffffffff
jne 0x4015c8
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
push 4
lea eax, [ebp - 0x14]
push eax
call fcn.0040130a
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x4015ac
push eax
call fcn.004012f0
push eax
mov dword [ebp - 0x14], eax
push dword [esi + 8]
call fcn.0040130a
push 2
push 0x401214
call fcn.0040130a
push dword [esi + 4]
call fcn.004012f0
push eax
mov dword [ebp - 0x14], eax
push dword [esi + 4]
call fcn.0040130a
push 2
push edi
call fcn.0040130a
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 8]
je 0x4015e2
mov esi, dword [esi]
inc dword [ebp - 0x28]
add dword [ebp - 0xc], 0x100
cmp esi, ebx
jne 0x401570
jmp 0x401657
lea eax, [ebp - 0x250]
push eax
push ebx
push 0x3e8
push 1
push 0x64
push dword [esi + 4]
call dword [ebp - 0x20]
mov dword [ebp - 0x40], eax
cmp eax, ebx
jne 0x401613
push 0x19
push 0x4011f8
call fcn.0040130a
push 2
jmp 0x4014da
push 0x15
push 0x4011e0
call fcn.0040130a
mov eax, dword [ebp - 0x28]
shl eax, 8
add eax, 0x205d305b
mov dword [ebp - 0x14], eax
push 4
lea eax, [ebp - 0x14]
push eax
call fcn.0040130a
push dword [esi + 8]
call fcn.004012f0
push eax
mov dword [ebp - 0x14], eax
push dword [esi + 8]
call fcn.0040130a
push 2
push edi
call fcn.0040130a
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, ebx
jne 0x40166a
push 0x14
push 0x4011c8
jmp 0x4014d3
cmp dword [ebp - 8], eax
jb 0x40168a
push 0x1e
push 0x4011a8
call fcn.0040130a
push 0xaf
push 0x4010f8
jmp 0x4014d3
lea eax, [ebp - 0x250]
push eax
push ebx
push 0x3e8
push 1
push 0x10000
lea eax, [ebp - 0x150]
push eax
call dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
cmp eax, ebx
jne 0x4016b8
push 0x1a
push 0x4010dc
jmp 0x401676
push 0x1000000
call dword [ebp - 0x38]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x20]
call dword [ebp - 0x34]
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
jmp 0x401748
cmp dword [ebp - 0x24], ebx
jne 0x401707
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
push 1
cdq
push ebx
push edx
push eax
call fcn.004018a0
mov ecx, eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], edx
cdq
add ecx, eax
mov eax, dword [ebp - 0x28]
adc eax, edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], eax
push dword [ebp - 0x30]
push dword [ebp - 0x10]
push dword [ebp - 8]
call dword [ebp - 0x44]
cmp eax, 0xffffffff
je 0x401752
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
push 1
cdq
push ebx
push edx
push eax
call fcn.004018a0
mov esi, eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
mov edi, edx
cdq
add esi, eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x20]
adc edi, edx
inc dword [ebp - 0x24]
call dword [ebp - 0x34]
mov dword [ebp - 0xc], eax
cmp eax, 1
je 0x4016d9
jmp 0x40175e
push 0x43
push 0x401098
call fcn.0040130a
cmp dword [ebp - 0xc], 0xffffffff
jne 0x401770
push 0x15
push 0x401080
jmp 0x4014d3
push 7
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x24]
call fcn.004013b6
push 0xf
push 0x401070
mov byte [ebp - 0x15], 0xa
call fcn.0040130a
push 8
lea eax, [ebp - 0x1c]
push eax
call fcn.0040130a
sub esi, dword [ebp - 0x3c]
push ebx
sbb edi, dword [ebp - 0x38]
push 0x3e8
push ebx
push esi
call fcn.00401830
mov esi, eax
xor eax, eax
add esi, eax
push 3
lea eax, [ebp - 0x1c]
adc edx, edi
push eax
push edx
call fcn.004013b6
push 3
lea eax, [ebp - 0x18]
push eax
push esi
mov byte [ebp - 0x19], 0x2e
call fcn.004013b6
push 0x17
push 0x401058
mov byte [ebp - 0x15], 0xa
call fcn.0040130a
push 8
lea eax, [ebp - 0x1c]
push eax
call fcn.0040130a
push 0xc
push 0x401048
call fcn.0040130a
push ebx
push ebx
push ebx
push 0x4013e9
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 1
push dword [ebp - 8]
push dword [ebp - 0x40]
call dword [ebp - 0x4c]
push 7
push 0x401040
call fcn.0040130a
push ebx
jmp 0x4014da