Function at 0x403c30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x64
mov eax, dword [0x6b55a8]
push ebx
push ebp
xor ebx, ebx
push esi
push edi
cmp eax, ebx
mov edi, ecx
mov word [esp + 0x18], bx
mov word [esp + 0x1a], bx
mov word [esp + 0x1c], bx
mov word [esp + 0x20], bx
mov word [esp + 0x22], bx
mov word [esp + 0x24], bx
mov dword [esp + 0x10], ebx
jne 0x403d5b
mov esi, dword [esp + 0x7c]
xor ebp, ebp
mov eax, 1
mov ecx, ebp
shl eax, cl
mov ecx, dword [esp + 0x78]
test ecx, eax
je 0x403d51
mov edx, esi
mov word [esp + 0x1c], bx
mov word [esp + 0x1a], bx
mov word [esp + 0x18], bx
mov eax, dword [edx]
mov word [esp + 0x1e], bp
mov dword [esp + 0x34], eax
mov eax, esi
mov ecx, dword [edx + 4]
add esi, 0xc
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x18]
mov edx, dword [edx + 8]
push ecx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x14]
inc edx
push edi
push eax
mov dword [esp + 0x1c], edx
call fcn.00453ee0
mov eax, dword [esp + 0x8c]
add esp, 0xc
cmp eax, ebx
je 0x403d51
lea edx, [esi - 0xc]
mov dword [esp + 0x14], 1
mov eax, dword [edx]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x14]
mov ecx, dword [edx + 4]
push eax
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x38]
mov edx, dword [edx + 8]
push ecx
mov dword [esp + 0x38], edx
lea edx, [esp + 0x30]
lea eax, [esp + 0x48]
push edx
push eax
call fcn.004e7760
add esp, 0xc
lea ecx, [esp + 0x50]
push eax
push ecx
call fcn.004e7840
add esp, 0xc
lea ecx, [esp + 0x28]
push eax
call fcn.004e7590
lea edx, [esp + 0x20]
push 0x2000
lea eax, [esp + 0x2c]
push edx
mov edx, dword [0x6a9038]
lea ecx, [esp + 0x3c]
push eax
push ecx
push edx
call fcn.004f7ae0
add esp, 0x14
test eax, eax
jne 0x403d67
inc ebp
cmp ebp, 0x20
jl 0x403c70
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x64
ret 0x10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
mov edx, dword [edi]
push ebx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4 - 0xc]
mov ecx, edi
push eax
call dword [edx + 0x18]
mov ax, word [edi + 0x1fc]
cmp ax, 0xa
jae 0x403d9b
mov ecx, dword [0x6a9038]
push ebx
add ecx, 8
push ecx
push 0xf
jmp 0x403dbb
cmp ax, 0x14
push ebx
jae 0x403db0
mov edx, dword [0x6a9038]
add edx, 8
push edx
push 0x10
jmp 0x403dbb
mov eax, dword [0x6a9038]
add eax, 8
push eax
push 0x11
call fcn.00471ea0
mov eax, dword [esp + 0x90]
add esp, 0xc
cmp eax, ebx
jne 0x403e5f
mov cl, byte [esp + 0x26]
mov dx, word [edi + 0x1fc]
mov ebp, dword [edi + 0x10]
mov byte [esp + 0x59], cl
mov ecx, dword [0x6a9038]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x58], 0xf
mov dword [esp + 0x5c], 8
mov word [esp + 0x60], dx
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 8]
mov edx, dword [edi + 8]
sub eax, ebp
sub ecx, edx
sar eax, 0xc
mov dword [esp + 0x6c], eax
lea edx, [esp + 0x64]
lea eax, [esp + 0x64]
push edx
sar ecx, 0xc
push eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ebx
call fcn.00470430
mov ecx, dword [0x6a9038]
add esp, 8
lea eax, [esp + 0x58]
mov edx, dword [ecx]
push eax
call dword [edx + 0xc]
mov ecx, dword [0x6a9038]
cmp word [ecx + 0xe2], bx
jg 0x403e5f
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x20]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x64
ret 0x10