Function at 0x401880
Capabilities:
Terminate process

Disassembly:
sub esp, 0x158
push ebx
mov ebx, dword [esp + 0x160]
push esi
push edi
mov edi, dword [esp + 0x16c]
push edi
push ebx
mov dword [esp + 0x18], 0
call fcn.00403b80
test eax, eax
je 0x4018d9
push ebx
call fcn.00404d80
push eax
mov eax, dword [0x4377fc]
push edi
push eax
push 0x4219d4
push 0x433c20
call fcn.0041156a
add esp, 0x14
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x158
ret
mov esi, dword [esp + 0x170]
push esi
push ebx
call fcn.00404a30
test eax, eax
mov dword [esp + 0xc], eax
jne 0x401917
push ebx
call fcn.00404d80
mov ecx, dword [0x4377fc]
push eax
push edi
push ecx
push 0x4219b0
push 0x433c20
call fcn.0041156a
add esp, 0x14
push 1
call fcn.00411477
push edi
push 0x4219a0
call fcn.0041179c
add esp, 8
test esi, esi
je 0x401937
push esi
push 0x421990
call fcn.0041179c
add esp, 8
push ebp
push 0xa
call fcn.004118b8
mov esi, dword [esp + 0x14]
or ecx, 0xffffffff
add esp, 4
xor eax, eax
mov edi, 0x42191c
repne scasb al, byte es:[edi]
not ecx
dec ecx
push esi
mov ebp, ecx
call fcn.004047c0
mov eax, dword [eax + 0x14]
cmp ebp, eax
jae 0x401966
mov ebp, eax
mov eax, dword [0x4377d0]
test eax, eax
push 0
jne 0x401981
push ebp
push 0x42191c
call fcn.00401f20
add esp, 0xc
jmp 0x4019b9
cmp eax, 1
jne 0x40199d
push 8
push 0x421988
push ebp
push 0x42191c
call fcn.00401f20
add esp, 0x14
jmp 0x4019b9
push 0xa
push 0x421910
push 8
push 0x421988
push ebp
push 0x42191c
call fcn.00401f20
add esp, 0x1c
push esi
call fcn.004047f0
mov edi, eax
test edi, edi
je 0x401b3e
jmp 0x4019d2
mov ebx, dword [esp + 0x16c]
mov ecx, dword [esp + 0x14]
mov eax, dword [0x4377d0]
inc ecx
test eax, eax
mov dword [esp + 0x14], ecx
jbe 0x401adf
mov edx, dword [esp + 0x170]
push edx
push ebx
call fcn.00403b80
test eax, eax
jne 0x401abe
push eax
mov eax, dword [edi]
push eax
push ebx
call fcn.00404aa0
mov esi, eax
xor ebx, ebx
test esi, esi
je 0x401abe
push esi
call fcn.00404d40
push eax
lea eax, [esp + 0x1c]
push 0x421984
push eax
call fcn.00411855
add esp, 0xc
push esi
call fcn.00402c00
cmp dword [0x4377d0], 1
jbe 0x401adf
mov ecx, dword [edi]
push ecx
lea edx, [esp + 0x6c]
push 0x4218ec
push edx
call fcn.00411855
mov esi, dword [esp + 0x178]
add esp, 0xc
lea eax, [esp + 0x68]
push eax
push esi
call fcn.00403d00
test eax, eax
jne 0x401aa8
push esi
call fcn.004045a0
mov esi, eax
test esi, esi
je 0x401a93
push esi
call fcn.004047f0
mov ecx, dword [eax]
push 0xa
push ebx
push ecx
call fcn.00406c70
add esp, 0xc
push esi
mov ebx, eax
call fcn.00402c00
push ebx
lea edx, [esp + 0x2c]
push 0x42197c
push edx
call fcn.00411855
add esp, 0xc
jmp 0x401adf
push 0
lea eax, [esp + 0x2c]
push 0x421974
push eax
call fcn.00411855
add esp, 0xc
jmp 0x401adf
lea ecx, [esp + 0x18]
push 0x4218d4
push ecx
call fcn.00406c50
lea edx, [esp + 0x30]
push 0x4218d4
push edx
call fcn.00406c50
add esp, 0x10
mov eax, dword [0x4377d0]
test eax, eax
push 0
jne 0x401af8
mov eax, dword [edi]
push ebp
push eax
call fcn.004020a0
add esp, 0xc
jmp 0x401b26
cmp eax, 1
mov edx, dword [edi]
lea ecx, [esp + 0x1c]
jne 0x401b12
push 8
push ecx
push ebp
push edx
call fcn.004020a0
add esp, 0x14
jmp 0x401b26
push 0xa
lea eax, [esp + 0x30]
push eax
push 8
push ecx
push ebp
push edx
call fcn.004020a0
add esp, 0x1c
mov eax, dword [esp + 0x10]
push eax
call fcn.004047f0
mov edi, eax
test edi, edi
jne 0x4019cb
mov esi, dword [esp + 0x10]
mov eax, dword [0x4377d0]
mov ecx, 1
cmp ecx, eax
sbb edx, edx
and edx, 0xa
push 0
push edx
xor ecx, ecx
cmp ecx, eax
sbb edx, edx
and edx, 8
push edx
push ebp
call fcn.00402120
mov ecx, dword [esp + 0x24]
add esp, 0x10
test ecx, ecx
pop ebp
je 0x401b95
mov eax, dword [0x4377d0]
test eax, eax
je 0x401b95
cmp ecx, 1
mov eax, 0x4218d0
ja 0x401b86
mov eax, 0x4377dc
push eax
push ecx
push 0x421960
call fcn.0041179c
add esp, 0xc
push esi
call fcn.00402c00
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x158
ret