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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x540768
sub esp, 0x60
mov eax, dword [esp + 0x64]
cmp eax, 2
jne 0x5403cc
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x5403bf
mov eax, dword [0x872e1c]
mov ecx, dword [0x872e18]
mov edx, dword [0x872e20]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x6c], eax
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0053c430
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x54], ecx
test ecx, ecx
je 0x5402ed
lea edx, [0x6d5080]
mov dword [esp], edx
call fcn.0040cd70
mov eax, dword [esp + 4]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x74]
mov dword [eax], ecx
test byte [eax], al
lea ecx, [eax + 4]
test byte [ecx], al
mov edx, dword [esp + 0x2c]
cmp edx, 4
jge 0x5402e6
mov dword [esp], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0044aa80
lea eax, [0x848460]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x60
ret
mov edx, 4
jmp 0x5402a0
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.0053c510
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
lea edx, [0x6c9600]
mov dword [esp], edx
call fcn.0040cd70
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov dword [eax + 4], 0x10
mov ecx, dword [0x884700]
test ecx, ecx
jne 0x5403a7
lea ecx, [0x708d0e]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x884700]
lea edx, [eax + 8]
test ecx, ecx
jne 0x540391
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], ecx
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea ecx, [0x848040]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x60
ret
mov dword [esp], edx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
call fcn.0040d5a0
mov eax, dword [esp + 0x58]
jmp 0x540363
mov dword [esp], eax
lea ecx, [0x708d0e]
mov dword [esp + 4], ecx
call fcn.0040d5a0
mov eax, dword [esp + 0x58]
jmp 0x540348
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
jmp 0x540244
cmp eax, 0x17
jne 0x540696
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x540642
mov eax, dword [0x86e898]
mov ecx, dword [0x86e894]
mov edx, dword [0x86e890]
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
cmp ecx, 4
jne 0x54062b
movzx ebx, byte [edx + 1]
mov byte [esp + 0x1e], bl
movzx ebp, byte [edx + 2]
xchg ebp, eax
mov byte [esp + 0x1d], al
xchg ebp, eax
movzx esi, byte [edx + 3]
xchg esi, eax
mov byte [esp + 0x1c], al
xchg esi, eax
movzx edi, byte [edx]
xchg edi, eax
mov byte [esp + 0x1f], al
xchg edi, eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov eax, dword [0x86e8b4]
mov ecx, dword [0x86e8b0]
cmp eax, 0x10
jge 0x540621
lea edx, [esp + 0x34]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0044aa80
movzx eax, byte [esp + 0x1f]
mov byte [esp + 0x40], al
movzx eax, byte [esp + 0x1e]
mov byte [esp + 0x41], al
movzx eax, byte [esp + 0x1d]
mov byte [esp + 0x42], al
movzx eax, byte [esp + 0x1c]
mov byte [esp + 0x43], al
mov eax, 0x10
lea ecx, [esp + 0x34]
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], ecx
test ecx, ecx
je 0x54054f
mov edx, dword [esp + 0x78]
mov dword [esp], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 4], edx
call fcn.0053b830
mov eax, dword [esp + 8]
mov dword [esp + 0x30], eax
lea ecx, [0x6d93c0]
mov dword [esp], ecx
call fcn.0040cd70
mov eax, dword [esp + 4]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x74]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], ecx
test byte [eax], al
lea ecx, [eax + 8]
test byte [ecx], al
mov edx, dword [esp + 0x28]
cmp edx, 0x10
jge 0x540548
mov dword [esp], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0044aa80
lea eax, [0x848480]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x60
ret
mov edx, 0x10
jmp 0x540502
mov eax, dword [esp + 0x44]
mov dword [esp], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
call fcn.0053c510
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
lea edx, [0x6c9600]
mov dword [esp], edx
call fcn.0040cd70
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov dword [eax + 4], 0x10
mov ecx, dword [0x884700]
test ecx, ecx
jne 0x540609
lea ecx, [0x708d1e]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x884700]
lea edx, [eax + 8]
test ecx, ecx
jne 0x5405f3
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], ecx
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea ecx, [0x848040]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x60
ret
mov dword [esp], edx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
call fcn.0040d5a0
mov eax, dword [esp + 0x58]
jmp 0x5405c5
mov dword [esp], eax
lea ecx, [0x708d1e]
mov dword [esp + 4], ecx
call fcn.0040d5a0
mov eax, dword [esp + 0x58]
jmp 0x5405aa
mov eax, 0x10
jmp 0x540462
cmp ecx, 0x10
jne 0x540639
mov eax, ecx
mov ecx, edx
jmp 0x5404a3
xor eax, eax
xor ecx, ecx
jmp 0x5404a3
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov ebx, dword [0x872e20]
mov ebp, dword [0x872e1c]
mov esi, dword [0x872e18]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebx
call fcn.0053ce60
movzx eax, byte [esp + 0x18]
test al, al
jne 0x5403e1
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
jmp 0x5403f3
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.0053c510
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
lea edx, [0x6c9600]
mov dword [esp], edx
call fcn.0040cd70
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov dword [eax + 4], 0x16
mov ecx, dword [0x884700]
test ecx, ecx
jne 0x540750
lea ecx, [0x70b865]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x884700]
lea edx, [eax + 8]
test ecx, ecx
jne 0x54073a
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], ecx
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea ecx, [0x848040]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x60
ret
mov dword [esp], edx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
call fcn.0040d5a0
mov eax, dword [esp + 0x58]
jmp 0x54070c
mov dword [esp], eax
lea ecx, [0x70b865]
mov dword [esp + 4], ecx
call fcn.0040d5a0
mov eax, dword [esp + 0x58]
jmp 0x5406f1
call fcn.004486b0
jmp fcn.00540200