Function at 0x423710
Capabilities:
Terminate process

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x41c
mov edi, dword [0x4344d0]
mov edx, edi
mov eax, dword [0x402670]
mov esi, dword [0x4344d4]
xor eax, esp
mov dword [esp + 0x418], eax
or edx, esi
je 0x423a37
mov edx, dword [esp + 0x434]
mov ebx, edx
mov eax, dword [esp + 0x438]
mov ecx, eax
and ebx, edi
and ecx, esi
sub ebx, edx
sub ecx, eax
or ebx, ecx
je 0x423923
mov ecx, edx
xor ebx, ebx
and ecx, 1
or ecx, ebx
je 0x423792
push ebx
push ebx
push 1
call fcn.00423ff0
push 0
push 0x3a
push 1
call fcn.00423ff0
push ebx
push ebx
push 1
call fcn.00423ff0
add esp, 0x24
push 1
call fcn.0042a137
push 0
not edi
not esi
push 0x39
and edi, edx
and esi, eax
call fcn.00423e50
mov edx, eax
add esp, 8
mov ebp, ebx
xor ecx, ecx
inc ecx
mov eax, ebp
mov byte [esp + 0x18], 0
mov dword [esp], edx
mov dword [esp + 0x14], esi
mov esi, ecx
mov dword [esp + 0x10], edi
mov edi, eax
lea ecx, [esi - 1]
cmp ecx, 0x1f
ja 0x4237d9
xor edx, edx
mov eax, 1
shld edx, eax, cl
shl eax, cl
jmp 0x4237e2
mov edx, 1
xor eax, eax
shl edx, cl
and eax, dword [esp + 0x10]
and edx, dword [esp + 0x14]
or eax, edx
je 0x4238db
cmp esi, 0x29
jae 0x423908
mov ebx, dword [esi*4 + 0x40c160]
test ebx, ebx
je 0x423908
cmp byte [ebx], 0
je 0x423908
cmp byte [esp + 0x18], 0
je 0x4238b8
test ebp, ebp
je 0x4238b4
push ebp
call fcn.00426270
mov dword [esp + 0x10], eax
push 0x40c36c
call fcn.00426270
mov dword [esp + 0x10], eax
push dword [esp + 8]
call fcn.00426270
mov dword [esp + 0x10], eax
push ebx
call fcn.00426270
add esp, 0x10
mov edx, dword [esp + 0xc]
add edx, edi
add edx, dword [esp + 8]
add edx, dword [esp + 4]
add edx, eax
cmp edx, 0x400
jae 0x423950
neg edi
lea edx, [esp + 0x18]
add edi, 0x3ff
push edi
push 0x40c36c
push edx
call fcn.00432cf0
lea eax, [esp + 0x24]
push eax
call fcn.00426270
neg eax
add eax, 0x3ff
push eax
push ebp
lea eax, [esp + 0x30]
push eax
call fcn.00432cf0
lea eax, [esp + 0x34]
push eax
call fcn.00426270
mov edi, eax
add esp, 0x20
mov ebp, ebx
jmp 0x4238db
neg edi
lea edx, [esp + 0x18]
add edi, 0x3ff
push edi
push ebx
push edx
call fcn.00432cf0
lea eax, [esp + 0x24]
push eax
call fcn.00426270
mov edi, eax
add esp, 0x10
inc esi
cmp esi, 0x28
jg 0x4239e1
test esi, esi
jg 0x4237c3
xor ebx, ebx
push ebx
push ebx
push 1
call fcn.00423ff0
push 0
push 0x3b
push 1
call fcn.00423ff0
jmp 0x42377f
xor ebx, ebx
push ebx
push ebx
push 1
call fcn.00423ff0
push 0
push 0x3a
push 1
call fcn.00423ff0
jmp 0x42377f
xor eax, eax
and edi, 0x20
or edi, eax
jne 0x423a21
mov ecx, dword [esp + 0x418]
xor ecx, esp
cmp ecx, dword [0x402670]
jne 0x423a1c
add esp, 0x41c
pop ebp
pop ebx
pop edi
pop esi
ret
mov eax, edi
lea ecx, [esp + 0x18]
neg eax
xor ebx, ebx
add eax, 0x3ff
mov edx, dword [esp]
push eax
push edx
push ecx
call fcn.00432cf0
lea eax, [esp + 0x24]
push eax
call fcn.00426270
neg eax
add eax, 0x3ff
push eax
push ebp
lea eax, [esp + 0x30]
push eax
call fcn.00432cf0
lea eax, [esp + 0x34]
push eax
call fcn.00426270
add esp, 0x20
cmp byte [esp + 0x18], 0
jne 0x4239b4
push ebx
push ebx
push 1
call fcn.00423ff0
push 0
push 0x3a
push 1
call fcn.00423ff0
jmp 0x42377f
push ebx
push ebx
push 1
call fcn.00423ff0
mov edx, 1
lea eax, [esp + 0x24]
push eax
push edx
push 0x38
push edx
call fcn.00423ff0
push ebx
push ebx
push 1
call fcn.00423ff0
add esp, 0x28
jmp 0x42378b
mov edx, dword [esp]
mov eax, edi
xor ebx, ebx
test ebp, ebp
je 0x423994
neg eax
lea esi, [esp + 0x18]
add eax, 0x3ff
push eax
push edx
push esi
call fcn.00432cf0
push esi
call fcn.00426270
neg eax
add eax, 0x3ff
push eax
push ebp
push esi
call fcn.00432cf0
add esp, 0x1c
jmp 0x423994
call fcn.0042ac06
push dword [esp + 0x430]
push 0
call fcn.00424260
add esp, 8
jmp 0x423930
call fcn.00423a70
mov edi, dword [0x4344d0]
mov eax, edi
mov esi, dword [0x4344d4]
or eax, esi
jne 0x42373e
xor ebx, ebx
push ebx
push ebx
push 1
call fcn.00423ff0
push 0
push 0x3b
push 1
call fcn.00423ff0
jmp 0x42377f