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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x54c85c
sub esp, 0x54
mov edx, dword [esp + 0x60]
mov ebx, dword [edx]
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 4]
lea esi, [ebp - 1]
test esi, esi
jl 0x54c83c
mov ebx, dword [ebx + ebp*4 - 4]
nop
cmp ebx, 0x10000
jb 0x54c835
shr ebx, 0x10
mov eax, 0x10
cmp ebx, 0x100
jb 0x54c82e
shr ebx, 8
lea ebp, [eax + 8]
cmp ebx, 0x100
jae 0x54c84f
shl esi, 5
lea eax, [0x7e6380]
movzx ecx, byte [ebx + eax]
add ecx, ebp
add ecx, esi
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.00506930
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x68]
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x38]
dec edx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call fcn.0054bd70
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x34]
test eax, eax
jne 0x54c7fb
mov byte [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.00516bd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
mov byte [esp + 0x44], 0
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
lea ecx, [esp + 0x44]
mov dword [esp + 0xc], ecx
call fcn.0054deb0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x54c7c8
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x60]
mov edx, dword [edx]
mov ebx, dword [edx + 8]
mov edx, dword [edx + 4]
lea ebp, [ebx - 1]
test ebp, ebp
jl 0x54c7c1
mov edx, dword [edx + ebx*4 - 4]
nop
cmp edx, 0x10000
jb 0x54c7ba
shr edx, 0x10
mov eax, 0x10
cmp edx, 0x100
jb 0x54c7b3
shr edx, 8
lea ebx, [eax + 8]
cmp edx, 0x100
jae 0x54c843
shl ebp, 5
lea eax, [0x7e6380]
movzx eax, byte [edx + eax]
add eax, ebx
add eax, ebp
lea ecx, [0x633cc0]
mov dword [esp], ecx
lea ecx, [eax + 7]
sar ecx, 0x1f
shr ecx, 0x1d
lea eax, [eax + ecx + 7]
sar eax, 3
mov dword [esp + 0x3c], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00442930
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
call fcn.0050be00
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
add esp, 0x54
ret
mov ebx, eax
jmp 0x54c711
xor eax, eax
jmp 0x54c6ff
xor eax, eax
jmp 0x54c72e
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
add esp, 0x54
ret
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ebp
add esp, 0x54
ret
mov ebp, eax
jmp 0x54c59b
xor eax, eax
jmp 0x54c589
xor ecx, ecx
jmp 0x54c5b8
mov eax, edx
mov ecx, 0x100
call fcn.0045ad70
mov eax, ebx
mov ecx, 0x100
call fcn.0045ad70
nop
call fcn.00459790
jmp fcn.0054c540