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

Disassembly:
mov ecx, dword [0x98d270]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x54d1b5
add esp, 0xffffff80
movzx edx, byte [esp + 0x84]
cmp dl, 2
ja 0x54c96b
test dl, dl
jne 0x54c923
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
xor eax, eax
xor ecx, ecx
xor esi, esi
xor edi, edi
jmp 0x54ce7e
mov eax, dword [esp + 0x8c]
cmp eax, 0x14
je 0x54ca0c
mov eax, dword [0x95dce8]
mov ecx, dword [0x967510]
mov edx, dword [0x967514]
mov ebx, dword [0x95dcec]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ebx
sub esp, 0xffffff80
ret
cmp dl, 3
je 0x54c9c8
cmp dl, 4
jne 0x54c990
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
xor ecx, ecx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x54cb4f
mov eax, dword [0x95dcd8]
mov ecx, dword [0x967510]
mov edx, dword [0x967514]
mov ebx, dword [0x95dcdc]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ebx
sub esp, 0xffffff80
ret
mov eax, dword [esp + 0x8c]
cmp eax, 0x30
je 0x54ca0c
mov eax, dword [0x95dce8]
mov ecx, dword [0x967510]
mov edx, dword [0x967514]
mov ebx, dword [0x95dcec]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ebx
sub esp, 0xffffff80
ret
lea ecx, [0x6bd4a0]
mov dword [esp], ecx
lea ecx, [eax + 1]
mov dword [esp + 0x38], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0044e050
mov eax, dword [esp + 0x38]
test eax, eax
jbe 0x54cac1
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x84]
mov byte [ecx], dl
mov edx, dword [esp + 0x8c]
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, 1
add edx, ecx
mov ebp, dword [esp + 0x88]
cmp ebp, edx
je 0x54ca7d
mov dword [esp + 0x4c], ecx
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.00469320
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x4c]
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00451eb0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
sub esp, 0xffffff80
ret
xor eax, eax
mov ecx, eax
call fcn.00468a00
and edx, 0x7f
mov dword [esp + 0x48], edx
mov ecx, edi
shl edx, cl
lea eax, [ecx - 0x20]
mov dword [esp + 0x44], eax
mov ecx, eax
mov ebx, dword [esp + 0x48]
shl ebx, cl
neg eax
mov ecx, eax
mov esi, dword [esp + 0x48]
shr esi, cl
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x34]
inc esi
mov dword [esp + 0x40], esi
lea esi, [edi + 7]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x44]
cmp esi, 0x20
sbb esi, esi
and esi, ebx
cmp edi, 0x20
sbb ebx, ebx
and edx, ebx
or ebp, edx
cmp eax, 0x20
sbb eax, eax
mov ecx, dword [esp + 0x48]
and ecx, eax
or esi, ecx
mov eax, dword [esp + 0x28]
or esi, eax
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
movzx edx, byte [esp + 0x84]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
cmp ebx, ecx
jle 0x54cc4a
movzx edx, byte [eax + ecx]
cmp ecx, 8
jne 0x54cb69
cmp dl, 0x80
jae 0x54cc28
cmp ecx, 9
jge 0x54cc28
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], ecx
cmp dl, 0x80
jae 0x54caca
test dl, dl
jne 0x54cbb0
test edi, edi
jbe 0x54cbb0
mov ecx, dword [0x95df18]
mov edx, dword [0x95df1c]
xor esi, esi
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x1c], ebp
mov ebp, edx
movzx edx, byte [esp + 0x84]
jmp 0x54cc62
movzx edx, dl
mov dword [esp + 0x48], edx
mov ecx, edi
shl edx, cl
lea eax, [ecx - 0x20]
mov dword [esp + 0x44], eax
mov ecx, eax
mov ebx, dword [esp + 0x48]
shl ebx, cl
mov dword [esp + 0x3c], ebx
neg eax
mov ecx, eax
mov esi, dword [esp + 0x48]
shr esi, cl
mov ebx, dword [esp + 0x34]
inc ebx
cmp eax, 0x20
sbb eax, eax
and esi, eax
cmp edi, 0x20
sbb eax, eax
and edx, eax
or edx, ebp
mov eax, dword [esp + 0x44]
cmp eax, 0x20
sbb eax, eax
mov ebp, dword [esp + 0x3c]
and ebp, eax
or esi, ebp
mov eax, dword [esp + 0x28]
or esi, eax
mov eax, dword [esp + 0x88]
xor ecx, ecx
mov edi, esi
mov dword [esp + 0x1c], ebx
xor ebp, ebp
mov ebx, dword [esp + 0x8c]
mov esi, edx
movzx edx, byte [esp + 0x84]
jmp 0x54cc62
mov ecx, dword [0x95df08]
mov edx, dword [0x95df0c]
xor esi, esi
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x1c], ebp
mov ebp, edx
movzx edx, byte [esp + 0x84]
jmp 0x54cc62
mov ecx, dword [0x95df10]
mov ebp, dword [0x95df14]
xor esi, esi
xor edi, edi
xor esi, esi
mov dword [esp + 0x1c], esi
xor esi, esi
test ecx, ecx
je 0x54cd14
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
je 0x54cc8f
mov ecx, dword [ecx + 4]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ebp
mov eax, dword [0x95dce0]
test eax, eax
je 0x54cca4
mov eax, dword [eax + 4]
mov ecx, dword [0x95dce4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
lea eax, [0x71f920]
mov dword [esp], eax
mov dword [esp + 4], 0x34
lea eax, [esp + 0x58]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.0053f820
mov eax, dword [0x967510]
mov ecx, dword [0x967514]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], ebx
sub esp, 0xffffff80
ret
cmp edi, 0x7fffffff
sete cl
xchg ebp, ebx
seta bl
xchg ebp, ebx
cmp esi, 0xffffffff
xchg esi, ebx
seta bl
xchg esi, ebx
and ecx, esi
or ebp, ecx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x54cdc9
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov eax, dword [0x95dce0]
test eax, eax
je 0x54cd59
mov eax, dword [eax + 4]
mov ecx, dword [0x95dce4]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
lea eax, [0x71bddc]
mov dword [esp], eax
mov dword [esp + 4], 0x27
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.0053f820
mov eax, dword [0x967510]
mov ecx, dword [0x967514]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], ebx
sub esp, 0xffffff80
ret
mov ecx, dword [esp + 0x1c]
mov ebp, ebx
sub ebx, ecx
cmp ebx, 0x36
jg 0x54cddd
mov eax, ebp
jmp 0x54ca0c
mov eax, dword [0x95dce8]
mov ecx, dword [0x967510]
mov edx, dword [0x967514]
mov ebx, dword [0x95dcec]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ebx
sub esp, 0xffffff80
ret
and edx, 0x7f
mov dword [esp + 0x48], edx
mov ecx, edi
shl edx, cl
lea ebx, [ecx - 0x20]
mov ecx, ebx
mov ebp, dword [esp + 0x48]
shl ebp, cl
neg ecx
mov esi, dword [esp + 0x48]
shr esi, cl
inc eax
mov dword [esp + 0x40], eax
lea eax, [edi + 7]
cmp ebx, 0x20
sbb ebx, ebx
and ebp, ebx
cmp ecx, 0x20
sbb ecx, ecx
and ecx, esi
or ecx, ebp
mov ebx, dword [esp + 0x2c]
or ecx, ebx
cmp edi, 0x20
sbb esi, esi
and esi, edx
mov edx, dword [esp + 0x24]
or esi, edx
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
mov edx, dword [esp + 0x40]
movzx edx, byte [esp + 0x84]
mov edi, eax
mov eax, dword [esp + 0x40]
cmp ebp, eax
jle 0x54cf67
movzx edx, byte [ebx + eax]
cmp eax, 8
jne 0x54ce98
cmp dl, 0x80
jae 0x54cf45
cmp eax, 9
jge 0x54cf45
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], esi
cmp dl, 0x80
jae 0x54ce15
test dl, dl
jne 0x54cedf
test edi, edi
jbe 0x54cedf
mov ecx, dword [0x95df18]
mov edx, dword [0x95df1c]
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, edx
movzx edx, byte [esp + 0x84]
jmp 0x54cf7f
movzx edx, dl
mov dword [esp + 0x48], edx
mov ecx, edi
shl edx, cl
lea ebx, [ecx - 0x20]
mov ecx, ebx
mov ebp, dword [esp + 0x48]
shl ebp, cl
neg ecx
mov esi, dword [esp + 0x48]
shr esi, cl
inc eax
cmp ebx, 0x20
sbb ebx, ebx
and ebp, ebx
cmp ecx, 0x20
sbb ebx, ebx
and esi, ebx
or esi, ebp
mov ebx, dword [esp + 0x2c]
or esi, ebx
cmp edi, 0x20
sbb ebx, ebx
and edx, ebx
mov ebx, dword [esp + 0x24]
or ebx, edx
movzx edx, byte [esp + 0x84]
mov ebp, dword [esp + 0x8c]
xor ecx, ecx
mov edi, ebx
mov dword [esp + 0x20], esi
mov ebx, dword [esp + 0x88]
mov esi, eax
xor eax, eax
jmp 0x54cf7f
mov ecx, dword [0x95df08]
mov edx, dword [0x95df0c]
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, edx
movzx edx, byte [esp + 0x84]
jmp 0x54cf7f
mov ecx, dword [0x95df10]
mov eax, dword [0x95df14]
xor esi, esi
xor edi, edi
xor esi, esi
mov dword [esp + 0x20], esi
xor esi, esi
test ecx, ecx
je 0x54d031
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
je 0x54cfac
mov ecx, dword [ecx + 4]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [0x95dce0]
test eax, eax
je 0x54cfc1
mov eax, dword [eax + 4]
mov ecx, dword [0x95dce4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
lea eax, [0x714c30]
mov dword [esp], eax
mov dword [esp + 4], 0x18
lea eax, [esp + 0x58]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.0053f820
mov eax, dword [0x967510]
mov ecx, dword [0x967514]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], ebx
sub esp, 0xffffff80
ret
cmp ebp, esi
jne 0x54d0f2
mov eax, dword [esp + 0x20]
cmp eax, 0x7fffffff
sete al
seta cl
cmp edi, 0xffffffff
xchg esi, ebx
seta bl
xchg esi, ebx
and eax, esi
or ecx, eax
test cl, cl
je 0x54d0eb
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov eax, dword [0x95dce0]
test eax, eax
je 0x54d07b
mov eax, dword [eax + 4]
mov ecx, dword [0x95dce4]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
lea eax, [0x71bdb5]
mov dword [esp], eax
mov dword [esp + 4], 0x27
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.0053f820
mov eax, dword [0x967510]
mov ecx, dword [0x967514]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], ebx
sub esp, 0xffffff80
ret
mov eax, ebp
jmp 0x54ca0c
lea edi, [esp + 0x68]
xor eax, eax
call fcn.00468c2a
mov dword [esp], esi
call fcn.00409c20
mov ecx, dword [esp + 4]
lea edx, [0x6bd2e0]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
call fcn.00409c20
mov ecx, dword [esp + 4]
lea edx, [0x6bd2e0]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
mov ecx, dword [0x95dce8]
test ecx, ecx
je 0x54d145
mov ecx, dword [ecx + 4]
mov eax, dword [0x95dcec]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
lea eax, [0x71ce98]
mov dword [esp], eax
mov dword [esp + 4], 0x2a
lea eax, [esp + 0x68]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
call fcn.0053f820
mov eax, dword [0x967510]
mov ecx, dword [0x967514]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], ebx
sub esp, 0xffffff80
ret
call fcn.00467590
jmp fcn.0054c8e0