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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x471b61
sub esp, 0x6c
mov edx, dword [esp + 0x70]
test edx, edx
sete bl
mov ebp, dword [esp + 0x74]
test ebp, ebp
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x471652
movzx eax, byte [esp + 0x7c]
test al, al
je 0x47163a
movsd xmm0, qword [0x539cb8]
jmp 0x47163d
xorps xmm0, xmm0
movsd qword [esp + 0x80], xmm0
mov byte [esp + 0x88], 1
add esp, 0x6c
ret
mov ebx, dword [esp + 0x78]
lea edi, [ebx + 0x15c]
cmp edi, 0x2b7
ja 0x471b2e
cmp ebp, 1
mov eax, edi
xchg edi, ebx
sete bl
xchg edi, ebx
mov ecx, ebx
seta bl
nop
and edi, 1
or ebx, edi
test bl, bl
je 0x47168e
mov ebx, ebp
xor esi, esi
mov edi, 0x20
jmp 0x471696
mov ebx, ebp
mov esi, ebx
mov ebp, edx
xor edi, edi
mov dword [esp + 0x3c], edi
cmp ebp, 0x10000
setae dl
test esi, esi
sete bl
xchg edi, ebx
seta bl
xchg edi, ebx
and ebx, edx
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4716cf
shr ebp, 0x10
mov edx, esi
shl esi, 0x10
or ebp, esi
shr edx, 0x10
mov ebx, dword [esp + 0x3c]
lea edi, [ebx + 0x10]
jmp 0x4716d5
mov edx, esi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x34], edx
test edx, edx
seta bl
mov esi, edi
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ebp, 0x100
setae dl
and edx, edi
or edx, ebx
test dl, dl
je 0x47170e
shr ebp, 8
mov edx, dword [esp + 0x34]
mov ebx, edx
shl edx, 0x18
or ebp, edx
shr ebx, 8
lea edi, [esi + 8]
jmp 0x471714
mov edi, esi
mov ebx, dword [esp + 0x34]
test ebx, ebx
jne 0x471b52
cmp ebp, 0x100
jae 0x471b46
imul edx, ecx, 0x3526a
sar edx, 0x10
add edx, 0x43f
mov dword [esp + 0x60], edx
lea ebx, [0x51872a]
movzx ebx, byte [ebx + ebp]
lea ecx, [ebx + edi - 0x40]
neg ecx
mov dword [esp + 0x24], ecx
sub edx, ecx
mov dword [esp + 0x38], edx
cmp ecx, 0x20
sbb ebp, ebp
mov dword [esp + 0x5c], ebp
lea esi, [ecx - 0x20]
mov dword [esp + 0x58], esi
cmp esi, 0x20
sbb edi, edi
xchg esi, ebx
neg ebx
xchg esi, ebx
cmp esi, 0x20
sbb edx, edx
mov ebx, dword [esp + 0x74]
shl ebx, cl
and ebx, ebp
mov ecx, esi
mov ebp, dword [esp + 0x70]
mov esi, ebp
shr ebp, cl
and ebp, edx
or ebp, ebx
mov ecx, dword [esp + 0x58]
mov edx, esi
shl esi, cl
and esi, edi
or ebp, esi
mov dword [esp + 0x58], ebp
shl eax, 4
mov dword [esp + 0x54], eax
lea ebx, [0x5dcc20]
mov esi, dword [ebx + eax + 8]
mov edi, dword [ebx + eax + 0xc]
mov dword [esp + 4], ebp
mov ecx, dword [esp + 0x24]
shl edx, cl
mov eax, dword [esp + 0x5c]
and edx, eax
mov dword [esp + 0x5c], edx
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
call fcn.0046d1c0
mov eax, dword [esp + 0x60]
mov edx, eax
sar eax, 0x1f
mov ebx, dword [esp + 0x24]
mov ebp, ebx
sar ebx, 0x1f
sub edx, ebp
sbb eax, ebx
mov edx, dword [esp + 0x10]
mov ebx, edx
and edx, 0x1ff
cmp edx, 0x1ff
sete dl
mov ebp, dword [esp + 0x14]
and edx, 1
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
test dl, dl
je 0x471955
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ebx
mov edx, dword [esp + 0x5c]
mov ecx, edx
add edx, esi
mov eax, dword [esp + 0x58]
adc eax, edi
mov ebx, dword [esp + 0x58]
cmp ebx, eax
seta al
sete bl
cmp edx, ecx
setb dl
and edx, ebx
or edx, eax
test dl, dl
jne 0x471852
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x4c]
jmp 0x471955
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 0x54]
lea edx, [0x5dcc20]
mov ebx, dword [edx + eax]
mov eax, dword [edx + eax + 4]
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
mov dword [esp], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
call fcn.0046d1c0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
add eax, ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
adc edx, ebx
cmp ebx, edx
seta bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp eax, ecx
setb cl
and ecx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
test bl, bl
je 0x4718cc
mov ebx, dword [esp + 0x4c]
add ebx, 1
mov esi, dword [esp + 0x30]
adc esi, 0
jmp 0x4718d4
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x30]
mov edi, ebx
and ebx, 0x1ff
cmp ebx, 0x1ff
sete bl
and ebx, 1
test bl, bl
je 0x471949
mov dword [esp + 0x48], eax
cmp edx, 0xffffffff
sete bl
cmp eax, 0xffffffff
sete al
and eax, ebx
test al, al
je 0x471945
mov eax, dword [esp + 0x5c]
add ecx, eax
mov ebx, dword [esp + 0x58]
adc ebp, ebx
cmp ebx, ebp
seta bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp ecx, eax
setb al
and eax, ebp
or eax, ebx
test al, al
jne 0x47192d
mov eax, dword [esp + 0x48]
jmp 0x471949
xorps xmm0, xmm0
movsd qword [esp + 0x80], xmm0
mov byte [esp + 0x88], 0
add esp, 0x6c
ret
mov eax, dword [esp + 0x48]
mov ebp, esi
mov ebx, edi
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x30], ebp
shr ebp, 0x1f
mov dword [esp + 0x5c], ebp
mov ecx, ebp
add ebp, 9
xor ecx, 1
mov edx, dword [esp + 0x38]
sub edx, ecx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x5c]
add edx, 9
mov edx, 0
adc edx, 0
cmp edx, 1
sbb edx, edx
xor edx, 0xffffffff
or edx, ebp
mov dword [esp + 0x5c], edx
cmp edx, 0x20
sbb ebp, ebp
mov dword [esp + 0x4c], ebp
lea ebp, [edx - 0x20]
mov dword [esp + 0x48], ebp
cmp ebp, 0x20
sbb edx, edx
mov dword [esp + 0x44], edx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edx, edx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x38]
sub edx, ecx
sbb eax, 0
mov dword [esp + 0x50], eax
test edi, edi
sete dl
mov byte [esp + 0x23], dl
test esi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
mov ecx, dword [esp + 0x5c]
mov edi, ebx
shr ebx, cl
mov ecx, ebp
mov eax, dword [esp + 0x30]
mov ebp, eax
shl eax, cl
mov ecx, dword [esp + 0x48]
shr ebp, cl
mov ecx, edi
mov edi, dword [esp + 0x4c]
and ebx, edi
mov edx, dword [esp + 0x40]
and eax, edx
or eax, ebx
mov edx, dword [esp + 0x44]
and edx, ebp
or eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x30]
shr ebx, cl
and ebx, edi
movzx ebp, byte [esp + 0x23]
and ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x471a5f
test edx, 0x1ff
sete cl
and ecx, 1
test cl, cl
je 0x471a5b
mov ecx, eax
and eax, 3
cmp eax, 1
sete al
and eax, 1
test al, al
je 0x471a61
xorps xmm0, xmm0
movsd qword [esp + 0x80], xmm0
mov byte [esp + 0x88], 0
add esp, 0x6c
ret
mov ecx, eax
jmp 0x471a61
mov ecx, eax
mov eax, ecx
and ecx, 1
add ecx, eax
adc ebx, 0
mov eax, ebx
shr ebx, 0x16
test ebx, ebx
seta dl
mov ebx, ecx
shr ecx, 1
mov ebp, eax
shl eax, 0x1f
or eax, ecx
mov ecx, ebp
shr ebp, 1
and edx, 1
test dl, dl
je 0x471aa8
mov esi, dword [esp + 0x58]
add esi, 1
mov eax, dword [esp + 0x50]
adc eax, 0
shr ebx, 2
mov ebp, ecx
shl ecx, 0x1e
or ecx, ebx
shr ebp, 2
jmp 0x471ab2
mov esi, dword [esp + 0x58]
mov ecx, eax
mov eax, dword [esp + 0x50]
mov edx, esi
add esi, 0xffffffff
adc eax, 0xffffffff
test eax, eax
seta al
sete bl
cmp esi, 0x7fe
xchg esi, ebx
setae bl
xchg esi, ebx
and esi, ebx
or esi, eax
xchg esi, eax
test al, al
xchg esi, eax
jne 0x471b16
shl edx, 0x14
and ebp, 0xfffff
or edx, ebp
movzx eax, byte [esp + 0x7c]
test al, al
je 0x471af3
or edx, 0x80000000
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
movsd xmm0, qword [esp + 0x64]
movsd qword [esp + 0x80], xmm0
mov byte [esp + 0x88], 1
add esp, 0x6c
ret
xorps xmm0, xmm0
movsd qword [esp + 0x80], xmm0
mov byte [esp + 0x88], 0
add esp, 0x6c
ret
xorps xmm0, xmm0
movsd qword [esp + 0x80], xmm0
mov byte [esp + 0x88], 0
add esp, 0x6c
ret
mov eax, ebp
mov ecx, 0x100
call fcn.0045dc40
mov esi, ebx
mov eax, ebp
mov ecx, 0x100
call fcn.0045dcf0
nop
call fcn.0045c7a0
jmp fcn.004715f0