Function at 0x402e39
Capabilities:
Terminate process

Disassembly:
sub esp, 0x140
mov eax, dword [0x431034]
xor eax, esp
mov dword [esp + 0x13c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x14c]
xor ebx, ebx
and dword [esp + 0x10], ebx
and dword [esp + 0xc], ebx
push esi
mov dword [esp + 0x18], ebx
xor esi, esi
call fcn.00401121
test al, al
je 0x402e7b
call fcn.00404db2
mov dword [esp + 0x24], edx
jmp 0x402e87
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
push 0x425ef8
push ebp
mov dword [esp + 0x28], eax
call fcn.0040eff9
mov dword [esp + 0x24], eax
pop ecx
pop ecx
test eax, eax
jne 0x402eb5
cmp byte [esp + 0x154], bl
je 0x4031fa
or eax, 0xffffffff
jmp 0x4031dd
push edi
push eax
jmp 0x403185
mov al, byte [esp + 0x34]
or edi, 0xffffffff
inc esi
mov dword [esp + 0x10], esi
cmp al, 0x23
je 0x403181
cmp al, 0x2d
je 0x402ee3
push ebp
push esi
push 0x425f18
call fcn.00405aa8
add esp, 0xc
mov ecx, dword [0x4319e4]
cmp ebx, ecx
jl 0x402f4a
test ecx, ecx
lea eax, [ecx + ecx]
push 0xa
pop edx
cmove eax, edx
mov ecx, ebx
cmp eax, ebx
cmovg ecx, eax
mov eax, ecx
mov dword [esp + 0x2c], ecx
shl eax, 4
push eax
call fcn.00401127
pop ecx
mov ecx, dword [0x4319dc]
mov esi, eax
test ecx, ecx
je 0x402f34
mov eax, dword [0x4319e4]
shl eax, 4
push eax
push ecx
push esi
call fcn.0040a130
mov ecx, dword [0x4319dc]
add esp, 0xc
push ecx
call fcn.00401149
mov eax, dword [esp + 0x30]
pop ecx
mov dword [0x4319dc], esi
mov dword [0x4319e4], eax
lea eax, [esp + 0x34]
push eax
call fcn.0040e970
dec eax
pop ecx
cmp eax, 0x118
jae 0x4031f5
push dword [0x431018]
mov byte [esp + eax + 0x38], 0
lea eax, [esp + 0x38]
push eax
call fcn.00413dd0
lea esi, [esp + 0x3c]
add esi, eax
pop ecx
pop ecx
cmp byte [esi], 0
je 0x402f9c
push dword [0x431018]
mov byte [esi], 0
inc esi
push esi
call fcn.00413e20
add esi, eax
pop ecx
pop ecx
cmp byte [esi], 0
jne 0x402fb4
mov esi, dword [esp + 0x10]
push ebp
push esi
push 0x425f44
call fcn.00405aa8
add esp, 0xc
jmp 0x4030ec
push 0x425f70
push esi
call fcn.0040119c
pop ecx
pop ecx
test eax, eax
jne 0x402fce
mov esi, dword [esp + 0x10]
jmp 0x4030ea
push 0x425f78
push esi
call fcn.0040119c
pop ecx
pop ecx
test eax, eax
jne 0x403029
push dword [0x431018]
push esi
call fcn.00413dd0
add esi, eax
pop ecx
pop ecx
mov al, byte [esi]
test al, al
je 0x402f9c
push dword [0x431018]
push esi
call fcn.00413e20
add esi, eax
pop ecx
pop ecx
mov al, byte [esi]
test al, al
je 0x402f9c
push dword [0x431018]
mov dword [esp + 0x1c], esi
push esi
call fcn.00413dd0
pop ecx
xor edi, edi
pop ecx
mov byte [eax + esi], 0
inc edi
jmp 0x4030d1
push 0x425f84
push esi
call fcn.0040119c
pop ecx
pop ecx
test eax, eax
jne 0x403041
push 2
jmp 0x4030d0
push 0x425f8c
push esi
call fcn.0040119c
pop ecx
pop ecx
test eax, eax
jne 0x403056
push 5
jmp 0x4030d0
push 0x42557c
push esi
call fcn.0040119c
pop ecx
pop ecx
test eax, eax
jne 0x40306b
push 3
jmp 0x4030d0
push 0x425f94
push esi
call fcn.0040119c
pop ecx
pop ecx
test eax, eax
jne 0x4030d7
push dword [0x431018]
push esi
call fcn.00413dd0
add esi, eax
pop ecx
pop ecx
mov al, byte [esi]
test al, al
je 0x4030a8
push dword [0x431018]
push esi
call fcn.00413e20
add esi, eax
pop ecx
pop ecx
mov al, byte [esi]
test al, al
jne 0x4030b8
mov esi, dword [esp + 0x10]
push ebp
push esi
push 0x425fa4
jmp 0x402fa7
push dword [0x431018]
mov dword [esp + 0x18], esi
push esi
call fcn.00413dd0
pop ecx
pop ecx
push 4
mov byte [eax + esi], 0
pop edi
mov esi, dword [esp + 0x10]
jmp 0x4030ec
mov esi, dword [esp + 0x10]
push ebp
push esi
push 0x425fd8
call fcn.00405aa8
add esp, 0xc
xor edi, edi
lea eax, [esp + 0x34]
push eax
push ebx
push 0x426004
call fcn.004011d9
add esp, 0xc
cmp edi, 0xffffffff
je 0x403181
mov esi, dword [0x4319dc]
lea eax, [esp + 0x34]
push eax
add ebx, ebx
call fcn.004011b7
mov dword [esi + ebx*8 + 4], edi
mov dword [esi + ebx*8], eax
pop ecx
sub edi, 1
je 0x40314b
sub edi, 3
jne 0x403174
push dword [esp + 0x14]
call fcn.004011b7
mov ecx, dword [0x4319dc]
push eax
push 0x426054
push dword [ecx + ebx*8]
mov dword [ecx + ebx*8 + 0xc], eax
push 0x426068
jmp 0x40316c
push dword [esp + 0x18]
call fcn.004011b7
mov ecx, dword [0x4319dc]
push eax
push 0x42601c
push dword [ecx + ebx*8]
mov dword [ecx + ebx*8 + 8], eax
push 0x42602c
call fcn.004011d9
add esp, 0x14
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x1c], ebx
push dword [esp + 0x20]
lea eax, [esp + 0x38]
push 0x118
push eax
call fcn.0040ef37
add esp, 0xc
test eax, eax
jne 0x402ebc
push dword [esp + 0x20]
call fcn.0040edf1
pop ecx
mov dword [0x4319e0], ebx
call fcn.00401121
test al, al
je 0x4031da
call fcn.00404db2
sub eax, dword [esp + 0x24]
sbb edx, dword [esp + 0x28]
push edx
push eax
call fcn.00404d73
push eax
push 0x426094
call fcn.00401104
add esp, 0x10
mov eax, ebx
pop edi
mov ecx, dword [esp + 0x148]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004097a8
add esp, 0x140
ret
call fcn.004096ce
push ebp
push 0x425efc
call fcn.00405aa8
pop ecx
pop ecx
push 1
call fcn.0040ed64
int3