Function at 0x408fe4
Capabilities:
Terminate process

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x424
xor ebx, ebx
mov edx, dword [0x444cfc]
mov ebp, eax
xor edx, esp
mov dword [esp + 0x420], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov eax, dword [0x446ea8]
or eax, dword [0x446eac]
je 0x4092fb
cmp ebp, 2
jge 0x40926e
mov ecx, dword [esp + 0x43c]
mov edi, ecx
mov ebx, dword [esp + 0x440]
mov esi, ebx
mov eax, dword [ebp*8 + 0x446ea8]
and edi, eax
mov edx, dword [ebp*8 + 0x446eac]
and esi, edx
sub edi, ecx
sub esi, ebx
xor ebx, ebx
or edi, esi
jne 0x409084
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x420], 0
xor ecx, esp
cmp ecx, dword [0x444cfc]
jne 0x409284
add esp, 0x424
pop ebp
pop ebx
pop edi
pop esi
ret
not eax
not edx
and eax, dword [esp + 0x43c]
and edx, dword [esp + 0x440]
mov dword [esp + ebp*8 + 0x10], eax
mov dword [esp + ebp*8 + 0x14], edx
push 0
push 0x39
call fcn.0040b7a0
add esp, 8
mov esi, ebx
mov ebp, 1
mov byte [esp + 0x20], 0
mov edi, esi
mov dword [esp + 0xc], eax
mov eax, ebp
call fcn.0040a1c0
test eax, eax
jl 0x4091d6
lea ebx, [esp + 0x10]
push ebp
push ebx
call fcn.0040a380
add esp, 8
test eax, eax
je 0x4091d6
push ebp
push ebx
call fcn.0040a380
add esp, 8
test eax, eax
jl 0x4092e0
push ebp
call fcn.0040a190
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4092c5
cmp byte [ebx], 0
je 0x4092c5
cmp byte [esp + 0x20], 0
je 0x4091b3
test esi, esi
je 0x4091af
push esi
call fcn.0041c5a0
mov dword [esp + 0xc], eax
push 0x4398f8
call fcn.0041c5a0
mov dword [esp + 0xc], eax
push dword [esp + 0x14]
call fcn.0041c5a0
mov dword [esp + 0xc], eax
push ebx
call fcn.0041c5a0
add esp, 0x10
mov edx, dword [esp + 8]
add edx, edi
add edx, dword [esp + 4]
add edx, dword [esp]
add edx, eax
cmp edx, 0x400
jae 0x409289
neg edi
lea edx, [esp + 0x20]
add edi, 0x3ff
push edi
push 0x4398f8
push edx
call fcn.0041c630
lea edx, [esp + 0x2c]
push edx
call fcn.0041c5a0
neg eax
add eax, 0x3ff
push eax
push esi
lea edx, [esp + 0x38]
push edx
call fcn.0041c630
lea edx, [esp + 0x3c]
push edx
call fcn.0041c5a0
mov edi, eax
add esp, 0x20
mov esi, ebx
jmp 0x4091d6
neg edi
lea edx, [esp + 0x20]
add edi, 0x3ff
push edi
push ebx
push edx
call fcn.0041c630
lea edx, [esp + 0x2c]
push edx
call fcn.0041c5a0
mov edi, eax
add esp, 0x10
inc ebp
cmp ebp, 0x43
jl 0x4090bc
mov eax, dword [esp + 0xc]
xor ebx, ebx
test esi, esi
je 0x409216
neg edi
lea ebp, [esp + 0x20]
add edi, 0x3ff
push edi
push eax
push ebp
call fcn.0041c630
push ebp
call fcn.0041c5a0
neg eax
add eax, 0x3ff
push eax
push esi
push ebp
call fcn.0041c630
add esp, 0x1c
cmp byte [esp + 0x20], 0
jne 0x409244
push ebx
push ebx
push 1
call fcn.0040b970
push 0
push 0x3a
push 1
call fcn.0040b970
push ebx
push ebx
push 1
call fcn.0040b970
add esp, 0x24
push 1
call fcn.004171d6
push ebx
push ebx
push 1
call fcn.0040b970
mov edx, 1
lea eax, [esp + 0x2c]
push eax
push edx
push 0x38
push edx
call fcn.0040b970
push ebx
push ebx
push 1
call fcn.0040b970
add esp, 0x28
jmp 0x40923d
push ebx
push ebx
push 1
call fcn.0040b970
push 0
push 0x3a
push 1
call fcn.0040b970
jmp 0x409231
call fcn.0040c6fe
neg edi
lea ebp, [esp + 0x20]
add edi, 0x3ff
xor ebx, ebx
mov eax, dword [ebp - 0x14]
push edi
push eax
push ebp
call fcn.0041c630
push ebp
call fcn.0041c5a0
neg eax
add eax, 0x3ff
push eax
push esi
push ebp
call fcn.0041c630
push ebp
call fcn.0041c5a0
add esp, 0x20
jmp 0x409216
xor ebx, ebx
push ebx
push ebx
push 1
call fcn.0040b970
push 0
push 0x3a
push 1
call fcn.0040b970
jmp 0x409231
xor ebx, ebx
push ebx
push ebx
push 1
call fcn.0040b970
push 0
push 0x3a
push 1
call fcn.0040b970
jmp 0x409231
call fcn.0040acc0
test eax, eax
jne 0x409315
mov eax, dword [0x446ea8]
or eax, dword [0x446eac]
jne 0x409022
push ebx
push ebx
push 1
call fcn.0040b970
push 0
push 0x3b
push 1
call fcn.0040b970
jmp 0x409231