Function at 0x403bda
Capabilities:
Terminate process

Disassembly:
sub esp, 0x30
push ebx
mov ebx, dword [esp + 0x38]
test ebx, ebx
push esi
mov esi, ecx
jl 0x403e92
mov eax, dword [esi + 0x3e4]
cmp eax, ebx
jle 0x403e92
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x403e92
sub eax, 2
je 0x403c1d
dec eax
je 0x403c14
dec eax
jne 0x403c29
mov ecx, 0x5a
mov eax, 0x64
jmp 0x403c31
mov ecx, 0x78
mov eax, ecx
jmp 0x403c31
mov ecx, 0xa0
mov eax, 0xc8
jmp 0x403c31
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x40]
imul eax, ebx
push ebp
lea edx, [ebx + ebx*2 + 0xe7]
push edi
lea edi, [esi + edx*4]
mov edx, dword [esi + 0x3e8]
add edx, 0x32
mov dword [edi], edx
lea edx, [ebx + ebx*2]
add eax, ecx
lea ebp, [esi + edx*4]
mov dword [ebp + 0x3a0], eax
mov eax, dword [ebp + 0x3a4]
test eax, eax
mov dword [esp + 0x44], edi
je 0x403c7a
push eax
call fcn.0043484a
add esp, 4
mov dword [ebp + 0x3a4], 0
mov eax, dword [esp + 0x48]
push eax
call dword [0x47a0fc]
inc eax
push eax
call fcn.0043484f
add esp, 4
test eax, eax
mov dword [ebp + 0x3a4], eax
jne 0x403cbe
mov edx, dword [0x49e8c0]
push 0x30
mov ecx, 0x49e8c0
call dword [edx + 0xc]
push eax
push 0x47a4c0
push 0
call dword [0x47a18c]
push 0
call fcn.00434ab8
mov ecx, dword [esp + 0x48]
push ecx
push eax
call dword [0x47a0f8]
mov edx, dword [ebp + 0x3a0]
mov eax, dword [edi]
push 0x14
push 0x24e
push edx
push eax
lea ecx, [ebx + 4]
push ecx
mov ecx, 0xcd2400
call fcn.004037e0
mov edi, dword [0x47a208]
push 0x10e
push 0x280
push 0xe1
push 0
lea edx, [esp + 0x20]
push edx
call edi
mov ecx, dword [esi + 0x2d8]
mov eax, dword [ecx]
lea edx, [esp + 0x10]
push edx
push 0
call dword [eax + 0x30]
push 0x2d
push 0x280
push 0
push 0
lea eax, [esp + 0x40]
push eax
call edi
mov eax, dword [esi + 0x2d8]
mov edx, dword [eax]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x30]
push eax
mov al, byte [0x490d10]
movzx ecx, al
shl ecx, 8
movzx eax, al
or ecx, eax
movzx eax, byte [0x490d10]
shl ecx, 8
or ecx, eax
push ecx
mov ecx, dword [esp + 0x50]
call dword [edx + 0x30]
push 0x87
push 0x280
push 0x5a
push 0
lea ecx, [esp + 0x20]
push ecx
call edi
mov ecx, dword [esi + 0x2d8]
mov edx, dword [ecx]
push 0
push 0
push ecx
lea eax, [esp + 0x1c]
push eax
push ecx
push 0xe1
push 0
call dword [edx + 0x94]
push 0x2d
push 0x280
push 0
push 0
lea ecx, [esp + 0x40]
push ecx
call edi
mov eax, dword [esi + 0x2d8]
mov edx, dword [eax]
movzx ecx, byte [0x490d13]
lea eax, [esp + 0x30]
push eax
movzx eax, byte [0x490d12]
shl ecx, 8
or ecx, eax
movzx eax, byte [0x490d11]
shl ecx, 8
or ecx, eax
push ecx
mov ecx, dword [esi + 0x2d8]
call dword [edx + 0x30]
mov ebp, dword [ebp + 0x3a0]
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
lea edx, [ebp + 0x2d]
push edx
lea ecx, [eax + 0x280]
push ecx
add ebp, 0xfffffff3
push ebp
add eax, 0xfffffff6
push eax
lea edx, [esp + 0x20]
push edx
call edi
mov ecx, dword [esi + 0x2d8]
mov eax, dword [ecx]
add ebx, 6
imul ebx, ebx, 0x2d
lea edx, [esp + 0x10]
push edx
mov edx, dword [esi + 4]
push edx
push ebx
push 0
call dword [eax + 0x60]
push 0x2d
push 0x280
push 0
push 0
lea eax, [esp + 0x20]
push eax
call edi
mov ecx, dword [esi + 0x2d8]
mov edx, dword [ecx]
push 0xe1
push 0
push ecx
lea eax, [esp + 0x1c]
push eax
push ecx
push ebx
push 0
call dword [edx + 0x94]
mov ecx, dword [esi + 0x2d8]
push 0x87
push 0
push ecx
lea eax, [esp + 0x2c]
push eax
push ecx
push ebx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x5a
mov dword [esp + 0x40], 0x280
mov dword [esp + 0x44], 0x87
mov edx, dword [ecx]
push 0
call dword [edx + 0x94]
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x30
ret 8