Function at 0x407210
Capabilities:
Terminate process

Disassembly:
endbr32
push esi
push edi
push ebx
push ebp
sub esp, 0x41c
mov edi, dword [0x44fc20]
mov edx, edi
mov eax, dword [0x42c080]
mov esi, dword [0x44fc24]
xor eax, esp
mov dword [esp + 0x418], eax
or edx, esi
je 0x40753b
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 0x407427
mov ecx, edx
xor ebx, ebx
and ecx, 1
or ecx, ebx
je 0x407296
push ebx
push ebx
push 1
call fcn.00408390
push 0
push 0x3a
push 1
call fcn.00408390
push ebx
push ebx
push 1
call fcn.00408390
add esp, 0x24
push 1
call fcn.0040f76e
push 0
not edi
not esi
push 0x39
and edi, edx
and esi, eax
call fcn.004081f0
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 0x4072dd
xor edx, edx
mov eax, 1
shld edx, eax, cl
shl eax, cl
jmp 0x4072e6
mov edx, 1
xor eax, eax
shl edx, cl
and eax, dword [esp + 0x10]
and edx, dword [esp + 0x14]
or eax, edx
je 0x4073df
cmp esi, 0x37
jae 0x40740c
mov ebx, dword [esi*4 + 0x423120]
test ebx, ebx
je 0x40740c
cmp byte [ebx], 0
je 0x40740c
cmp byte [esp + 0x18], 0
je 0x4073bc
test ebp, ebp
je 0x4073b8
push ebp
call fcn.00412900
mov dword [esp + 0x10], eax
push 0x42337c
call fcn.00412900
mov dword [esp + 0x10], eax
push dword [esp + 8]
call fcn.00412900
mov dword [esp + 0x10], eax
push ebx
call fcn.00412900
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 0x407454
neg edi
lea edx, [esp + 0x18]
add edi, 0x3ff
push edi
push 0x42337c
push edx
call fcn.00412990
lea eax, [esp + 0x24]
push eax
call fcn.00412900
neg eax
add eax, 0x3ff
push eax
push ebp
lea eax, [esp + 0x30]
push eax
call fcn.00412990
lea eax, [esp + 0x34]
push eax
call fcn.00412900
mov edi, eax
add esp, 0x20
mov ebp, ebx
jmp 0x4073df
neg edi
lea edx, [esp + 0x18]
add edi, 0x3ff
push edi
push ebx
push edx
call fcn.00412990
lea eax, [esp + 0x24]
push eax
call fcn.00412900
mov edi, eax
add esp, 0x10
inc esi
cmp esi, 0x2b
jg 0x4074e5
test esi, esi
jg 0x4072c7
xor ebx, ebx
push ebx
push ebx
push 1
call fcn.00408390
push 0
push 0x3b
push 1
call fcn.00408390
jmp 0x407283
xor ebx, ebx
push ebx
push ebx
push 1
call fcn.00408390
push 0
push 0x3a
push 1
call fcn.00408390
jmp 0x407283
xor eax, eax
and edi, 0x20
or edi, eax
jne 0x407525
mov ecx, dword [esp + 0x418]
xor ecx, esp
cmp ecx, dword [0x42c080]
jne 0x407520
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.00412990
lea eax, [esp + 0x24]
push eax
call fcn.00412900
neg eax
add eax, 0x3ff
push eax
push ebp
lea eax, [esp + 0x30]
push eax
call fcn.00412990
lea eax, [esp + 0x34]
push eax
call fcn.00412900
add esp, 0x20
cmp byte [esp + 0x18], 0
jne 0x4074b8
push ebx
push ebx
push 1
call fcn.00408390
push 0
push 0x3a
push 1
call fcn.00408390
jmp 0x407283
push ebx
push ebx
push 1
call fcn.00408390
mov edx, 1
lea eax, [esp + 0x24]
push eax
push edx
push 0x38
push edx
call fcn.00408390
push ebx
push ebx
push 1
call fcn.00408390
add esp, 0x28
jmp 0x40728f
mov edx, dword [esp]
mov eax, edi
xor ebx, ebx
test ebp, ebp
je 0x407498
neg eax
lea esi, [esp + 0x18]
add eax, 0x3ff
push eax
push edx
push esi
call fcn.00412990
push esi
call fcn.00412900
neg eax
add eax, 0x3ff
push eax
push ebp
push esi
call fcn.00412990
add esp, 0x1c
jmp 0x407498
call fcn.0040b79d
push dword [esp + 0x430]
push 0
call fcn.00408600
add esp, 8
jmp 0x407434
call fcn.00407dc0
mov edi, dword [0x44fc20]
mov eax, edi
mov esi, dword [0x44fc24]
or eax, esi
jne 0x407242
xor ebx, ebx
push ebx
push ebx
push 1
call fcn.00408390
push 0
push 0x3b
push 1
call fcn.00408390
jmp 0x407283