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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x54f17a
sub esp, 0xb4
mov ecx, dword [esp + 0xc0]
test ecx, ecx
jbe 0x54f172
mov edx, dword [esp + 0xbc]
movzx ebx, byte [edx]
cmp ecx, 5
jb 0x54f168
mov byte [esp + 0x4b], bl
mov eax, dword [esp + 0xc4]
lea ebp, [eax - 5]
mov dword [esp + 0x6c], ebp
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 5
add ebp, edx
mov dword [esp + 0x9c], ebp
add ecx, 0xfffffffb
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0xb8]
cmp word [edi + 0x10], 0x304
jne 0x54e72a
cmp bl, 0x14
je 0x54f0e1
mov dword [esp], edi
call fcn.0054e440
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x18]
test edx, edx
je 0x54f0b5
je 0x54f150
mov dword [esp + 0x68], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0xb0], ebx
lea eax, [0x64a360]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.0040a3f0
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x10]
test cl, cl
je 0x54ebfc
mov eax, dword [eax + 0x10]
mov dword [esp], edx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
call eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x9c]
xor ebx, ebx
mov ebp, 0xffffffff
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x98], edx
xchg ebp, eax
mov byte [esp + 0x4a], al
xchg ebp, eax
mov dword [esp + 0x64], ebx
mov edx, dword [esp + 0xb8]
cmp word [edx + 0x10], 0x304
jne 0x54ebf0
movzx edx, byte [esp + 0x4b]
cmp dl, 0x17
jne 0x54eb9e
cmp esi, 0x4001
jg 0x54eb4c
lea ebx, [esi - 1]
jmp 0x54e82a
dec ebx
movzx ebp, byte [esp + 0x4a]
test ebx, ebx
jl 0x54eb43
cmp ebx, esi
jae 0x54f12f
movzx ebp, byte [edi + ebx]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x54e89a
test ebx, ebx
jne 0x54e824
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov byte [esp + 0xd4], 0
lea eax, [0x6cb3b0]
mov dword [esp + 0xd8], eax
mov eax, 0xa
lea ecx, [0x5f8be0]
lea eax, [ecx + eax*8]
mov dword [esp + 0xdc], eax
add esp, 0xb4
ret
mov edx, dword [esp + 0x98]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x98], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], esi
xchg ebp, eax
mov byte [esp + 0x49], al
xchg ebp, eax
mov edx, dword [esp + 0xb8]
mov eax, dword [edx + 0x1c]
mov esi, dword [edx + 0x20]
test eax, eax
jne 0x54e933
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x94], edi
mov dword [esp], edx
call fcn.0054e3d0
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xd0], eax
movzx eax, byte [esp + 0x49]
mov byte [esp + 0xd4], al
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
add esp, 0xb4
ret
mov dword [esp + 0x5c], ecx
mov eax, dword [eax + 0x14]
mov dword [esp], esi
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
cmp ecx, eax
jl 0x54eaf1
mov ebx, ecx
sub ecx, eax
mov ebp, dword [esp + 0x64]
sub ecx, ebp
mov ebp, ecx
shr ecx, 0x1f
lea esi, [ecx - 1]
and esi, ebp
mov ebp, esi
sar esi, 8
mov edi, dword [esp + 0xbc]
xchg esi, eax
mov byte [edi + 3], al
xchg esi, eax
xchg ebp, eax
mov byte [edi + 4], al
xchg ebp, eax
lea ecx, [ebp + eax]
mov edx, dword [esp + 0x60]
cmp edx, ecx
jb 0x54f12a
cmp ebp, ecx
ja 0x54f123
sub edx, ebp
mov dword [esp + 0x50], edx
neg edx
sar edx, 0x1f
and edx, ebp
mov esi, dword [esp + 0x98]
add edx, esi
cmp ebx, ecx
jb 0x54f11a
mov dword [esp + 0x4c], eax
mov dword [esp + 0x80], ebp
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0xb8]
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x20]
mov edx, dword [edx + 0x10]
mov dword [esp], ebx
lea ebx, [eax + 0x24]
mov dword [esp + 4], ebx
mov dword [esp + 8], 8
mov dword [esp + 0xc], 8
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 5
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebp
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x24], ebx
sub ebx, ecx
mov dword [esp + 0x7c], ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
add ebx, esi
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x5c]
sub ebx, ecx
mov dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x30], ecx
call edx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
call fcn.004d9560
movzx eax, byte [esp + 0x4a]
movzx eax, al
and eax, dword [esp + 0x18]
cmp eax, 1
jne 0x54ea9f
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x98]
jmp 0x54e8cf
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov byte [esp + 0xd4], 0
lea eax, [0x6cb3b0]
mov dword [esp + 0xd8], eax
mov eax, 0x14
lea ecx, [0x5f8be0]
lea eax, [ecx + eax*8]
mov dword [esp + 0xdc], eax
add esp, 0xb4
ret
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov byte [esp + 0xd4], 0
lea eax, [0x6cb3b0]
mov dword [esp + 0xd8], eax
mov eax, 0x14
lea ecx, [0x5f8be0]
lea eax, [ecx + eax*8]
mov dword [esp + 0xdc], eax
add esp, 0xb4
ret
mov ebp, edx
mov ebx, esi
jmp 0x54e89a
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov byte [esp + 0xd4], 0
lea eax, [0x6cb3b0]
mov dword [esp + 0xd8], eax
mov eax, 0x16
lea ecx, [0x5f8be0]
lea eax, [ecx + eax*8]
mov dword [esp + 0xdc], eax
add esp, 0xb4
ret
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov byte [esp + 0xd4], 0
lea eax, [0x6cb3b0]
mov dword [esp + 0xd8], eax
mov eax, 0xa
lea ecx, [0x5f8be0]
lea eax, [ecx + eax*8]
mov dword [esp + 0xdc], eax
add esp, 0xb4
ret
movzx ebp, byte [esp + 0x4b]
mov ebx, esi
jmp 0x54e89a
lea eax, [0x65ba40]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 8], ecx
call fcn.0040a3f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x14]
test dl, dl
jne 0x54ee44
lea eax, [0x6526e0]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
call fcn.0040a3f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x14]
test dl, dl
je 0x54f150
mov dword [esp + 0x70], eax
mov dword [esp + 0xa4], ecx
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 4]
mov dword [esp + 0x78], edx
mov ebx, dword [eax + 0x20]
mov ecx, dword [ecx + 0x14]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x54f144
lea ebx, [eax + 1]
mov edx, eax
mov eax, ebx
mov ebx, edx
cmp ecx, 0xffffffff
je 0x54ecc1
cdq
idiv ecx
jmp 0x54ecc3
xor edx, edx
mov eax, ecx
sub eax, edx
cmp ecx, 0xffffffff
je 0x54ecd1
cdq
idiv ecx
jmp 0x54ecd3
xor edx, edx
add ebx, edx
mov ebp, dword [esp + 0x68]
lea ebx, [ebx + ebp + 1]
mov eax, dword [esp + 0x5c]
cdq
idiv ecx
test edx, edx
jne 0x54edf2
mov eax, dword [esp + 0x5c]
cmp eax, ebx
jl 0x54edf2
test ebp, ebp
jle 0x54ede0
mov edx, dword [esp + 0x6c]
cmp edx, ebp
jb 0x54f13d
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [esp], ebx
mov esi, dword [esp + 0x9c]
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
call ecx
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x68]
cmp ecx, eax
jb 0x54f138
mov edx, dword [esp + 0x6c]
sub edx, eax
sub ecx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x9c]
add eax, edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x70]
mov edx, dword [edx + 0x14]
mov ebp, dword [esp + 0xa4]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
call edx
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x60]
mov dword [esp + 8], edx
call fcn.0054e580
mov ebx, dword [esp + 0xc]
movzx ebp, byte [esp + 0x10]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x98]
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
jmp 0x54e7e1
mov ebx, dword [esp + 0x6c]
mov ecx, eax
mov eax, dword [esp + 0x9c]
jmp 0x54ed5c
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov byte [esp + 0xd4], 0
lea eax, [0x6cb3b0]
mov dword [esp + 0xd8], eax
mov eax, 0x14
lea ecx, [0x5f8be0]
lea eax, [ecx + eax*8]
mov dword [esp + 0xdc], eax
add esp, 0xb4
ret
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x68]
cmp ebx, ebp
jl 0x54f063
mov edx, dword [esp + 0x6c]
cmp edx, ebp
jb 0x54f149
test ebp, ebp
jne 0x54f050
mov esi, dword [esp + 0xb8]
lea edi, [esi + 0x24]
mov dword [esp + 0x88], eax
mov eax, 8
mov dword [esp + 0x6c], eax
mov eax, 8
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xac], edi
sub edx, ebp
mov dword [esp + 0x60], edx
neg edx
sar edx, 0x1f
and edx, ebp
mov edi, dword [esp + 0x9c]
add edx, edi
mov dword [esp + 0x98], edx
sub ebx, ebp
mov dword [esp + 0x5c], ebx
cmp word [esi + 0x10], 0x304
jne 0x54efc8
mov ebp, dword [esp + 0xc4]
mov edi, 5
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0xa8], ebp
mov ebp, dword [esp + 0xc4]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0xac]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
call eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
test ebx, ebx
jne 0x54ef76
xor ebx, ebx
mov ebp, 0xffffffff
mov esi, ecx
mov edi, eax
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x98]
jmp 0x54e7e1
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov byte [esp + 0xd4], 0
lea eax, [0x6cb3b0]
mov dword [esp + 0xd8], eax
mov eax, 0x14
lea ecx, [0x5f8be0]
lea eax, [ecx + eax*8]
mov dword [esp + 0xdc], eax
add esp, 0xb4
ret
mov ebp, dword [esi + 0x28]
mov edi, dword [esi + 0x24]
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], ebp
lea ebp, [esi + 0x34]
mov edi, dword [esp + 0xbc]
cmp ebp, edi
je 0x54eff2
movzx ebp, word [edi]
movzx edi, byte [edi + 2]
mov word [esi + 0x34], bp
xchg edi, eax
mov byte [esi + 0x36], al
xchg edi, eax
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x74], eax
mov edx, dword [eax + 0x18]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x5c]
sub ebx, eax
mov eax, ebx
sar ebx, 8
mov edx, dword [esp + 0xb8]
mov byte [edx + 0x37], bl
mov byte [edx + 0x38], al
lea eax, [edx + 0x2c]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x5c]
mov ebp, 0xd
mov edi, 0xd
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x74]
jmp 0x54eee9
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0x9c]
jmp 0x54ee92
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov byte [esp + 0xd4], 0
lea eax, [0x6cb3b0]
mov dword [esp + 0xd8], eax
mov eax, 0x14
lea ecx, [0x5f8be0]
lea eax, [ecx + eax*8]
mov dword [esp + 0xdc], eax
add esp, 0xb4
ret
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x9c]
xor esi, esi
mov ebx, 0xffffffff
mov byte [esp + 0x4a], bl
movzx ebp, byte [esp + 0x4b]
mov ebx, ecx
mov dword [esp + 0x58], eax
mov edi, edx
jmp 0x54e8a5
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], esi
mov byte [esp + 0xd4], bl
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
add esp, 0xb4
ret
mov eax, ecx
mov ecx, ebx
call fcn.0045ca00
mov eax, ebp
call fcn.0045ca00
call fcn.0045c9e0
mov eax, ebx
mov ecx, esi
call fcn.0045c9a0
call fcn.0045ca00
mov ecx, ebp
call fcn.0045c9e0
call fcn.004309e0
mov ecx, ebp
call fcn.0045c9e0
lea eax, [0x643700]
mov dword [esp], eax
lea eax, [0x6c7828]
mov dword [esp + 4], eax
call fcn.00431bb0
mov eax, 5
call fcn.0045ca00
xor eax, eax
call fcn.0045c9a0
nop
call fcn.0045b380
jmp fcn.0054e6a0