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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x43f7e8
sub esp, 0x60
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x54]
mov dword [esp], eax
call fcn.00447f50
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
xor ecx, ecx
xor edx, edx
mov ebx, dword [esp + 0x68]
xor ebp, ebp
mov esi, dword [esp + 0x64]
xor edi, edi
jmp 0x43f3de
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
movzx edi, byte [esp + 0x22]
cmp ecx, 4
jge 0x43f45c
mov dword [esp + 0x44], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ebx
xchg edi, eax
mov byte [esp + 0x22], al
xchg edi, eax
call fcn.00451ac0
mov eax, dword [esp]
lea ecx, [0x6efca0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00446ac0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0x2c]
cmp eax, 3
sete cl
mov byte [esp + 0x21], cl
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
movzx edi, byte [esp + 0x22]
jmp 0x43f4c0
mov dword [esp + 0x6c], 0
mov byte [esp + 0x70], 0
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], ebp
xchg edi, eax
mov byte [esp + 0x84], al
xchg edi, eax
add esp, 0x60
ret
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], edx
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
mov dword [esp + 0x3c], ebp
lea ecx, [esp + 0x48]
mov dword [esp], ecx
call fcn.00446b60
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
movzx edi, byte [esp + 0x22]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ebp
xchg edi, eax
mov byte [esp + 0x22], al
xchg edi, eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], edx
lea eax, [esp + 0x48]
mov dword [esp], eax
call fcn.00446b30
movzx eax, byte [esp + 4]
test al, al
jne 0x43f3be
mov eax, dword [0x6f23b0]
test eax, eax
jne 0x43f7ac
lea eax, [esp + 0x48]
mov dword [esp], eax
call fcn.00446ba0
mov eax, dword [0x6efbf8]
mov ecx, dword [esp + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jne 0x43f538
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
movzx esi, byte [esp + 0x22]
jmp 0x43f489
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x2c]
cmp edx, 3
je 0x43f549
xor ebx, ebx
jmp 0x43f592
lea eax, [esp + 0x48]
mov dword [esp], eax
call fcn.00446ba0
mov eax, dword [0x6efc48]
mov ecx, dword [0x6efc4c]
mov edx, dword [0x6efc50]
mov ebx, dword [esp + 4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.00445920
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x2c]
mov ebx, eax
mov eax, dword [esp + 0x5c]
test bl, bl
jne 0x43f5b0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
movzx edx, byte [esp + 0x22]
jmp 0x43f6a3
mov dword [esp], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], ecx
call fcn.00440440
mov eax, dword [esp + 0x14]
test eax, eax
setne cl
mov edx, dword [esp + 0x18]
test edx, edx
setne bl
movzx ebp, byte [esp + 0x1c]
or ebx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
mov esi, dword [esp + 0xc]
mov dword [esp + 0x24], esi
mov edi, dword [esp + 0x18]
test bl, bl
je 0x43f654
xchg ebp, eax
mov byte [esp + 0x23], al
xchg ebp, eax
mov ebx, dword [esp + 0x3c]
test ebx, ebx
sete cl
mov esi, dword [esp + 0x38]
test esi, esi
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ecx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x43f638
cmp esi, edx
sete cl
cmp ebx, eax
xchg ebp, ebx
seta bl
xchg ebp, ebx
cmp esi, edx
setg dl
and ebp, ecx
or edx, ebp
test dl, dl
je 0x43f647
mov ecx, dword [esp + 0x28]
movzx ebp, byte [esp + 0x23]
mov esi, dword [esp + 0x24]
jmp 0x43f65c
mov ecx, dword [esp + 0x28]
movzx ebp, byte [esp + 0x23]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x43f669
movzx edx, byte [esp + 0x22]
jmp 0x43f6a3
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00446150
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 8]
test eax, eax
jne 0x43f771
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov edx, 1
mov byte [esp + 0x22], dl
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ecx
lea ebx, [esp + 0x48]
mov dword [esp], ebx
call fcn.00446ba0
mov eax, dword [0x6efc28]
mov ecx, dword [0x6efc2c]
mov edx, dword [0x6efc30]
mov ebx, dword [esp + 4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.00445920
movzx eax, byte [esp + 0x10]
test al, al
jne 0x43f71b
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
movzx ecx, byte [esp + 0x21]
mov byte [esp + 8], cl
call fcn.00446530
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x43f735
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
movzx esi, byte [esp + 0x22]
jmp 0x43f489
mov dword [esp + 0x6c], eax
mov byte [esp + 0x70], 0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x7c], eax
movzx eax, byte [esp + 0x22]
mov byte [esp + 0x84], al
add esp, 0x60
ret
mov dword [esp + 0x6c], eax
mov byte [esp + 0x70], cl
mov eax, dword [esp + 0x28]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x7c], eax
movzx eax, byte [esp + 0x22]
mov byte [esp + 0x84], al
add esp, 0x60
ret
mov dword [esp + 0x6c], 0
mov byte [esp + 0x70], 0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov byte [esp + 0x84], 1
add esp, 0x60
ret
call fcn.00462e70
jmp fcn.0043f370