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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc]
cmp eax, dword [ecx + 8]
jbe 0x54e6b1
sub esp, 0x8c
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx]
test ebx, ebx
je 0x54e65e
mov ebp, dword [edx + 4]
cmp ebp, 2
jge 0x54e63c
mov ebp, dword [0x81b988]
mov esi, dword [0x81b98c]
test ebp, ebp
jne 0x54e606
nop
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 4]
lea esi, [ebp - 1]
test esi, esi
jl 0x54e5ff
mov ebx, dword [ebx + ebp*4 - 4]
nop
cmp ebx, 0x10000
jb 0x54e5f8
shr ebx, 0x10
mov eax, 0x10
cmp ebx, 0x100
jb 0x54e5f1
shr ebx, 8
lea ebp, [eax + 8]
cmp ebx, 0x100
jae 0x54e6a4
shl esi, 5
lea eax, [0x7e6380]
movzx eax, byte [eax + ebx]
add eax, ebp
add eax, esi
lea ecx, [eax + 7]
sar ecx, 0x1f
shr ecx, 0x1d
lea eax, [ecx + eax + 7]
sar eax, 3
mov ecx, dword [esp + 0xa8]
cmp eax, ecx
jge 0x54e0d8
mov eax, dword [0x81b968]
mov ecx, dword [0x81b96c]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
add esp, 0x8c
ret
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x94]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
shl eax, 1
add eax, 2
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jl 0x54e096
mov byte [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x14], eax
call fcn.00516bd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov byte [esp + 0x7c], 0
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0xc], eax
call fcn.0054d680
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x54e5bb
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x94]
mov dword [esp], edx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0xc], ebx
call ecx
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x94]
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0x90]
mov ebp, dword [ebx + 0x14]
mov esi, dword [esp + 0x94]
mov dword [esp], esi
call ebp
lea eax, [0x633cc0]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00442930
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
call fcn.0050be00
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
test ecx, ecx
jbe 0x54e69d
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x78], edx
movzx eax, byte [edx]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x90]
mov ebx, dword [ecx + 0x18]
mov ebp, dword [esp + 0x94]
mov dword [esp], ebp
call ebx
mov eax, dword [esp + 4]
lea ecx, [eax + 1]
mov edx, dword [esp + 0x54]
cmp edx, ecx
jb 0x54e698
cmp ecx, 1
jb 0x54e68e
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x94]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x54]
lea ecx, [eax - 1]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
mov ebx, dword [esp + 0x78]
add ecx, ebx
mov ebp, dword [esp + 4]
inc ebp
mov esi, dword [esp + 0x50]
cmp esi, ebp
jb 0x54e685
mov dword [esp + 0x5c], edx
mov dword [esp + 0x64], ecx
mov dword [esp], ecx
mov edi, dword [esp + 0x2c]
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0x94]
mov dword [esp + 0x10], edi
sub eax, ebp
mov dword [esp + 0x3c], eax
neg eax
sar eax, 0x1f
and eax, ebp
add eax, ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x14], eax
sub esi, ebp
mov dword [esp + 0x58], esi
mov dword [esp + 0x18], esi
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x1c], ebx
call fcn.0054d420
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0x64]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x1c], esi
call fcn.0054d420
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x94]
mov dword [esp], edx
call ecx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x3c]
cmp edx, ecx
jb 0x54e680
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.00506c30
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + 0x18]
mov edx, dword [esp + 0x94]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x58]
cmp ecx, eax
jb 0x54e67b
sub ecx, eax
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x3c]
sub edx, eax
mov dword [esp + 0x34], edx
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x70]
add edx, eax
mov dword [esp + 0x68], edx
xor eax, eax
mov ebp, 1
xor esi, esi
xor edi, edi
jmp 0x54e4f9
mov dword [esp + 0x28], ebp
lea ebx, [eax + 1]
mov dword [esp + 0x4c], ebx
movzx edx, byte [edx + eax]
mov byte [esp + 0x27], dl
nop
xor edx, 1
movzx edx, dl
dec edx
shr edx, 0x1f
and ebp, edx
nop
movzx ecx, byte [esp + 0x27]
movzx ecx, cl
dec ecx
shr ecx, 0x1f
not ecx
dec edx
mov ebx, dword [esp + 0x28]
and ebx, edx
and ecx, ebx
mov edx, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
and eax, ebp
dec edx
and edi, edx
or edi, eax
mov eax, ecx
neg ecx
and ecx, 1
dec eax
and esi, eax
or esi, ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
mov edx, eax
mov eax, dword [esp + 0x4c]
mov ebp, ebx
mov ebx, dword [esp + 0x34]
cmp ecx, eax
jle 0x54e504
ja 0x54e48e
jmp 0x54e676
mov eax, edx
mov edx, dword [esp + 0x60]
dec edx
shr edx, 0x1f
mov ebx, dword [esp + 0x38]
and ebx, edx
xchg esi, ebx
not ebx
xchg esi, ebx
and esi, ebx
xchg ebp, ebx
not ebx
xchg ebp, ebx
and ebp, esi
cmp ebp, 1
jne 0x54e579
lea edx, [edi + 1]
cmp ecx, edx
jb 0x54e66f
mov ebx, dword [esp + 0x34]
sub ebx, edx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, edx
add eax, ebx
mov dword [esp + 0xbc], eax
sub ecx, edx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
add esp, 0x8c
ret
mov eax, dword [0x81b968]
mov ecx, dword [0x81b96c]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
add esp, 0x8c
ret
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], edx
add esp, 0x8c
ret
mov ebp, eax
jmp 0x54e05e
xor eax, eax
jmp 0x54e04c
xor eax, eax
jmp 0x54e07b
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], esi
add esp, 0x8c
ret
cmp ebp, 0x7fffffff
jle 0x54e655
mov ebp, dword [0x81b980]
mov esi, dword [0x81b984]
jmp 0x54e019
xor ebp, ebp
xor esi, esi
jmp 0x54e019
mov ebp, dword [0x81b990]
mov esi, dword [0x81b994]
jmp 0x54e019
mov eax, edx
call fcn.0045adc0
call fcn.0045ad60
call fcn.0045adc0
call fcn.0045ada0
mov eax, ebp
mov ecx, esi
call fcn.0045adc0
mov eax, 1
call fcn.0045adc0
call fcn.0045ada0
xor eax, eax
call fcn.0045ad60
mov eax, ebx
mov ecx, 0x100
call fcn.0045ad70
nop
call fcn.00459790
jmp fcn.0054dfd0