Function at 0x401120
Capabilities:
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x32c
push ebx
push esi
push edi
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
push 0x40b2bc
mov dword [esp + 0x10], 0
stosw word es:[edi], ax
call fcn.00401f1c
push 0x40b278
call fcn.00401f1c
mov eax, dword [ebp + 8]
add esp, 8
cmp eax, 2
jl 0x4016f8
cmp eax, 3
jg 0x4016f8
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
push eax
call fcn.00409e16
mov ecx, dword [esi + 4]
push ecx
call fcn.00409e16
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xc0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x2e
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xc4]
push ecx
call fcn.00401e60
add esp, 0x10
test eax, eax
jne 0x4011e9
lea edi, [esp + 0xb8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [0x40b270]
not ecx
dec ecx
lea edx, [esp + ecx + 0xb8]
mov cl, byte [0x40b274]
mov dword [edx], eax
mov byte [edx + 4], cl
lea edx, [esp + 0x220]
lea eax, [esp + 0xb8]
push edx
push 0
push eax
call fcn.004010d0
add esp, 0xc
lea ecx, [esp + 0xb8]
push 0x5c
push ecx
call fcn.00401e20
mov edx, eax
add esp, 8
test edx, edx
je 0x40121e
inc edx
jmp 0x401240
lea edx, [esp + 0xb8]
push 0x3a
push edx
call fcn.00401e20
mov edx, eax
add esp, 8
test edx, edx
je 0x401239
inc edx
jmp 0x401240
lea edx, [esp + 0xb8]
lea edi, [esp + 0x234]
or ecx, 0xffffffff
xor eax, eax
push 0x40b26c
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xbc]
push ecx
call fcn.00401e08
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x18], ebx
je 0x4016d3
cmp dword [ebp + 8], 3
jne 0x4012a7
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
push eax
call fcn.00409e16
add esp, 4
lea edx, [esp + 0x130]
mov edi, eax
jmp 0x4012b5
lea edi, [esp + 0xb8]
lea edx, [esp + 0x130]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x2e
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x134]
push ecx
call fcn.00401e20
add esp, 8
test eax, eax
jne 0x401306
lea edi, [esp + 0x130]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, dword [0x40b030]
not ecx
dec ecx
lea edx, [esp + ecx + 0x130]
jmp 0x401320
mov edi, dword [0x40b030]
lea ecx, [esp + 0x130]
push 0x2e
push ecx
call fcn.00401e20
add esp, 8
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0xb8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x130]
push ecx
push edx
push 0x40b240
call fcn.00401f1c
mov al, byte [ebx + 0xc]
add esp, 0xc
test al, 0x10
mov dword [esp + 0x14], 0
jne 0x40139a
push ebx
lea eax, [esp + 0x1ac]
push 0x78
push eax
call section..text
push 5
lea ecx, [esp + 0x1b8]
push 0x40b238
push ecx
call fcn.00401db0
add esp, 0x18
test eax, eax
je 0x40139a
test byte [ebx + 0xc], 0x10
je 0x401369
lea edx, [esp + 0x1a8]
push 0x3a
push edx
call fcn.00401e60
add esp, 8
test eax, eax
je 0x4013cc
push 2
add eax, 2
push 0x40b234
push eax
call fcn.00401db0
add esp, 0xc
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0xc], eax
test byte [ebx + 0xc], 0x10
jne 0x401403
push ebx
lea eax, [esp + 0x1ac]
push 0x78
push eax
call section..text
push 6
lea ecx, [esp + 0x1b8]
push 0x40b22c
push ecx
call fcn.00401db0
add esp, 0x18
test eax, eax
je 0x401403
test byte [ebx + 0xc], 0x10
je 0x4013d2
push ebx
lea edx, [esp + 0x1ac]
push 0x78
push edx
call section..text
lea eax, [esp + 0x13c]
push 0x40b228
push eax
call fcn.00401e08
mov dword [esp + 0x24], eax
mov al, byte [ebx + 0xc]
add esp, 0x14
test al, 0x10
jne 0x40167b
lea ecx, [esp + 0x1a8]
push 0x44
push ecx
call fcn.00401e60
mov edi, eax
add esp, 8
test edi, edi
je 0x40167b
lea edx, [edi + 1]
push edx
call fcn.00401da1
push 0x7c
push edi
mov dword [esp + 0x28], eax
call fcn.00401e60
lea ebx, [eax + 2]
inc eax
push 0x7c
push eax
call fcn.00401e60
add esp, 0x14
mov edi, eax
mov al, byte [edi + 1]
inc edi
cmp al, 0x20
je 0x401479
push edi
call fcn.00401cc9
fstp qword [esp + 0x24]
inc edi
push 0x7c
push edi
call fcn.00401e60
add esp, 0xc
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x401497
push eax
call fcn.00401cc9
fstp qword [esp + 0x74]
mov eax, dword [esp + 0x10]
fld qword [esp + 0x24]
fmul qword [eax*8 + 0x40b038]
call fcn.00401fa0
mov esi, eax
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x7c]
push 6
push 0x40b220
rep stosd dword es:[edi], eax
push ebx
mov dword [esp + 0x30], esi
call fcn.00401db0
add esp, 0x10
test eax, eax
jne 0x4014e9
xor ebx, ebx
jmp 0x40153c
push 6
push 0x40b218
push ebx
call fcn.00401db0
add esp, 0xc
test eax, eax
jne 0x401504
mov ebx, 3
jmp 0x40153c
push 7
push 0x40b210
push ebx
call fcn.00401db0
add esp, 0xc
test eax, eax
jne 0x401537
mov ecx, dword [esp + 0xc]
mov ebx, 6
fld qword [esp + 0x70]
fmul qword [ecx*8 + 0x40b038]
call fcn.00401fa0
mov dword [esp + 0x20], eax
jmp 0x40153c
mov ebx, 9
mov eax, dword [esp + 0x14]
mov ecx, 1
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4015d3
mov ax, word [esp + 0x1c]
mov dl, byte [esp + 0xc]
mov word [esp + 0x32], ax
xor eax, eax
cmp ebx, 9
mov word [esp + 0x28], 0xf7
mov byte [esp + 0x2c], dl
mov word [esp + 0x2a], cx
mov word [esp + 0x34], cx
mov word [esp + 0x36], ax
mov byte [esp + 0x2e], bl
je 0x401593
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ecx
jmp 0x4015bf
mov edx, dword [0x40b200]
mov ecx, dword [0x40b204]
mov dword [esp + 0x38], edx
mov edx, dword [0x40b208]
mov dword [esp + 0x3c], ecx
mov cl, byte [0x40b20c]
mov dword [esp + 0x40], edx
mov byte [esp + 0x44], cl
mov dword [esp + 0x6a], eax
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push edx
push eax
call fcn.00401090
jmp 0x401654
mov cx, word [esp + 0x1c]
mov word [esp + 0x7e], ax
dec eax
cmp ebx, 9
mov word [esp + 0x7c], cx
mov word [esp + 0x80], ax
mov byte [esp + 0x78], bl
je 0x401608
mov edx, dword [esp + 0x20]
mov dword [esp + 0x82], esi
mov dword [esp + 0x86], edx
jmp 0x401645
mov eax, dword [0x40b200]
mov ecx, dword [0x40b204]
mov edx, dword [0x40b208]
mov dword [esp + 0x82], eax
mov al, byte [0x40b20c]
mov dword [esp + 0x86], ecx
mov dword [esp + 0x8a], edx
mov byte [esp + 0x8e], al
mov dword [esp + 0xb4], 0
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x78]
push ecx
push edx
call fcn.004010b0
mov esi, dword [esp + 0x20]
add esp, 8
lea eax, [esp + 0x1a8]
push esi
push 0x78
push eax
call section..text
mov al, byte [esi + 0xc]
add esp, 0xc
test al, 0x10
mov ebx, esi
je 0x401437
mov esi, dword [esp + 0x10]
push 0
push 0
push esi
call fcn.00401c3d
mov cx, word [esp + 0x20]
lea edx, [esp + 0x34]
push esi
push edx
mov word [esp + 0x3e], cx
call fcn.00401090
movsx eax, word [esp + 0x3e]
push eax
push 0x40b1ec
call fcn.00401f1c
push ebx
call fcn.00401be7
push esi
call fcn.00401be7
lea ecx, [esp + 0x244]
push ecx
call fcn.00401100
add esp, 0x28
test eax, eax
jne 0x4016ef
jmp 0x401203
lea edx, [esp + 0xb8]
push edx
push 0x40b1cc
call fcn.00401f1c
add esp, 8
push 1
call fcn.00401b12
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push 0x40b19c
call fcn.00401f1c
push 0x40b164
call fcn.00401f1c
push 0x40b124
call fcn.00401f1c
mov eax, dword [0x40b030]
push eax
push 0x40b0e4
call fcn.00401f1c
mov ecx, dword [0x40b030]
push ecx
push 0x40b0b4
call fcn.00401f1c
push 0x40b094
call fcn.00401f1c
push 0x40b058
call fcn.00401f1c
add esp, 0x24
push 1
call fcn.00401b12
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop