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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x50]
cmp eax, dword [ecx + 8]
jbe 0x517dc6
sub esp, 0xd0
nop
mov ebx, dword [esp + 0xe0]
mov ebp, ebx
and ebx, 0x1f
cmp ebx, 0xa
jbe 0x517a1d
cmp ebx, 0xf
jbe 0x517717
cmp ebx, 0x11
ja 0x5174e0
cmp ebx, 0x10
je 0x5173c5
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.0048db10
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
xor ecx, ecx
jmp 0x5173ba
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call fcn.0048cd60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xd4]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.005172e0
mov eax, dword [esp + 0x58]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x44]
cmp ecx, eax
jl 0x51735b
add esp, 0xd0
ret
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov esi, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 8]
cmp ecx, edx
ja 0x517d65
cmp eax, ecx
ja 0x517d60
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x28]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xd4]
add dword [edx + 0x14], 8
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
movsd xmm0, qword [esp + 0x74]
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 0x14]
lea ebp, [ebx + 8]
cmp ebp, eax
ja 0x517d57
cmp ebx, ebp
ja 0x517d4e
movsd qword [esp + 0x6c], xmm0
mov ebp, dword [edx]
mov esi, dword [edx + 4]
mov ebp, dword [ebp + 0x28]
mov dword [esp], esi
sub eax, ebx
mov esi, eax
neg eax
sar eax, 0x1f
and ebx, eax
lea eax, [ecx + ebx]
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], esi
call ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xd4]
add dword [edx + 0x14], 8
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
movsd xmm0, qword [esp + 0x7c]
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movsd xmm1, qword [esp + 0x6c]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 0x14], xmm0
call fcn.0048f950
jmp 0x5173be
cmp ebx, 0x17
je 0x517685
cmp ebx, 0x19
jne 0x5173be
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00490af0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
mov ebx, dword [esp + 0xdc]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0xe0]
mov dword [esp + 8], ebp
call fcn.0048e960
lea eax, [esp + 8]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x48], ecx
xor edx, edx
jmp 0x517571
mov ebx, dword [esp + 0x50]
lea edx, [ebx + 1]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x48]
cmp edx, ecx
jge 0x5173be
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call fcn.0048c640
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, eax
and eax, 0x160
cmp eax, 0x100
jne 0x517610
mov eax, 1
test al, al
je 0x5175e9
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call fcn.005172e0
jmp 0x51755f
nop
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00516e80
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x14]
add ecx, dword [esp + 0xc]
mov dword [eax + 0x14], ecx
jmp 0x51755f
mov dword [esp + 0x68], ebx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x8c]
mov dword [esp], edx
mov ebx, dword [esp + 0x50]
mov dword [esp + 4], ebx
call ecx
lea edi, [esp + 0x9c]
mov esi, dword [esp + 0x98]
call fcn.0045720e
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xa0], 1
je 0x51767d
mov eax, 1
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x68]
jmp 0x5175c5
cmp byte [eax], 0x5f
setne al
jmp 0x517666
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.0048db10
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
xor ecx, ecx
jmp 0x51770e
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call fcn.0048cd60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xd4]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.005172e0
mov eax, dword [esp + 0x54]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x4c]
cmp ecx, eax
jl 0x5176af
jmp 0x5173be
cmp ebx, 0xd
ja 0x51785e
cmp ebx, 0xb
jne 0x5177bb
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov esi, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 8]
cmp ecx, edx
ja 0x517d9d
cmp eax, ecx
ja 0x517d98
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x28]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xd4]
add dword [edx + 0x14], 8
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.004900d0
jmp 0x5173be
cmp ebx, 0xd
jne 0x5173be
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov esi, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 4]
cmp ecx, edx
ja 0x517d93
cmp eax, ecx
ja 0x517d8e
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x24]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 4
mov dword [esp + 0x5c], eax
movss xmm0, dword [esp + 0x5c]
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
cvtss2sd xmm0, xmm0
movsd qword [esp + 0xc], xmm0
call fcn.0048fa50
jmp 0x5173be
cmp ebx, 0xe
jne 0x51790e
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov esi, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 8]
cmp ecx, edx
ja 0x517d89
cmp eax, ecx
ja 0x517d84
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x28]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xd4]
add dword [edx + 0x14], 8
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
movsd xmm0, qword [esp + 0x84]
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movsd qword [esp + 0xc], xmm0
call fcn.0048fa50
jmp 0x5173be
mov ebx, dword [esp + 0xd4]
mov esi, dword [ebx + 8]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 4]
cmp ecx, edx
ja 0x517d7f
cmp eax, ecx
ja 0x517d7a
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x24]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 4
mov dword [esp + 0x64], eax
movss xmm0, dword [esp + 0x64]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x14]
lea ebp, [ebx + 4]
cmp ebp, edx
ja 0x517d73
cmp ebx, ebp
ja 0x517d6a
movss dword [esp + 0x3c], xmm0
mov ebp, dword [ecx]
mov esi, dword [ecx + 4]
mov ebp, dword [ebp + 0x24]
mov dword [esp], esi
sub edx, ebx
mov esi, edx
neg edx
sar edx, 0x1f
and ebx, edx
add eax, ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 4
mov dword [esp + 0x60], eax
movss xmm0, dword [esp + 0x60]
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movss xmm1, dword [esp + 0x3c]
cvtss2sd xmm1, xmm1
movsd qword [esp + 0xc], xmm1
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x14], xmm0
call fcn.0048f950
jmp 0x5173be
cmp ebx, 5
ja 0x517b71
cmp ebx, 3
ja 0x517adb
cmp ebx, 1
jne 0x517a80
mov edx, dword [esp + 0xd4]
mov ebx, dword [edx + 8]
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x14]
cmp eax, ecx
jae 0x517dc0
movzx ecx, byte [ebx + eax]
inc eax
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
test cl, cl
setne al
mov byte [esp + 0xc], al
call fcn.0048f620
jmp 0x5173be
cmp ebx, 3
jne 0x5173be
nop
mov edx, dword [esp + 0xd4]
mov ecx, dword [edx + 0xc]
mov ebx, dword [edx + 8]
mov eax, dword [edx + 0x14]
cmp eax, ecx
jae 0x517dbb
movzx ecx, byte [ebx + eax]
inc eax
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
movsx eax, cl
mov dword [esp + 0xc], eax
sar eax, 0x1f
mov dword [esp + 0x10], eax
call fcn.0048fb30
jmp 0x5173be
cmp ebx, 4
jne 0x517b29
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call fcn.00517150
movsx eax, word [esp + 4]
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
sar eax, 0x1f
mov dword [esp + 0x10], eax
call fcn.0048fb30
jmp 0x5173be
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call fcn.005171d0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
sar eax, 0x1f
mov dword [esp + 0x10], eax
call fcn.0048fb30
jmp 0x5173be
cmp ebx, 8
ja 0x517c20
cmp ebx, 6
je 0x517bd7
cmp ebx, 8
jne 0x5173be
mov edx, dword [esp + 0xd4]
mov ecx, dword [edx + 0xc]
mov ebx, dword [edx + 8]
mov eax, dword [edx + 0x14]
cmp eax, ecx
jae 0x517db6
movzx ecx, byte [ebx + eax]
inc eax
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
call fcn.004900d0
jmp 0x5173be
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call fcn.00517250
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0048fb30
jmp 0x5173be
cmp ebx, 9
jne 0x517cbc
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov esi, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 2]
cmp ecx, edx
ja 0x517db1
cmp eax, ecx
ja 0x517dac
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x20]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov dword [esp + 0xc], ebp
call ecx
movzx eax, word [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 2
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.004900d0
jmp 0x5173be
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov esi, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 4]
cmp ecx, edx
ja 0x517da7
cmp eax, ecx
ja 0x517da2
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x24]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 4
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.004900d0
jmp 0x5173be
mov eax, ebx
mov ecx, ebp
call fcn.00456b90
mov ecx, ebp
mov edx, eax
call fcn.00456b70
call fcn.00456b90
call fcn.00456b70
mov eax, ebx
mov ecx, ebp
call fcn.00456b90
mov ecx, ebp
call fcn.00456b70
call fcn.00456b90
call fcn.00456b70
call fcn.00456b90
call fcn.00456b70
call fcn.00456b90
call fcn.00456b70
call fcn.00456b90
call fcn.00456b70
call fcn.00456b90
call fcn.00456b70
call fcn.00456b90
call fcn.00456b70
call fcn.00456b30
call fcn.00456b30
call fcn.00456b30
nop
call fcn.00455270
jmp fcn.005172e0