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

Disassembly:
sub esp, 0xd8
push ebx
push esi
push edi
xor edi, edi
lea eax, [esp + 0xa4]
push 0x40
mov ebx, ecx
mov dword [esp + 0x60], edi
push edi
xor esi, esi
mov dword [esp + 0x2c], ebx
push eax
mov dword [esp + 0x64], esi
call fcn.1026c8e0
movss xmm0, dword [ebx + 0x250fc]
add esp, 0xc
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x103efa18]
cvttsd2si ecx, xmm0
cmp ecx, 0xa
jge 0x1012e024
mov dword [esp + 0x18], 0x96
jmp 0x1012e044
cmp ecx, 0xc
jle 0x1012e033
mov dword [esp + 0x18], 0x14
jmp 0x1012e044
mov eax, 0xe
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 2
mov dword [esp + 0x18], ecx
mov ecx, ebx
xorps xmm2, xmm2
movss xmm3, dword [ecx + 0x250f8]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x1012e062
mov dword [esp + 0x18], 0x50
movzx eax, word [ecx + 0x14]
sub eax, 0xe
mov dword [esp + 0x88], eax
cmp eax, 0xe
jle 0x1012e532
movzx eax, word [ecx + 0x16]
mov edx, 0x10
push ebp
mov ebp, 0x40
mov dword [esp + 0x88], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ebp
nop word [eax + eax]
mov ebx, 0xa
mov dword [esp + 0x4c], ebx
cmp eax, ebx
jbe 0x1012e507
mov eax, dword [ecx + 8]
lea esi, [edx - 2]
movzx edi, word [ecx + 0x5483c]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x194]
mov dword [esp + 0x10], eax
lea eax, [ebp - 8]
and eax, 0x1c
mov dword [esp + 0x50], edi
mov dword [esp + 0x2c], eax
movzx eax, word [ecx + 0x1e]
mov ecx, edi
sar esi, cl
lea ecx, [ebp - 4]
imul esi, eax
and ecx, 0x1c
mov dword [esp + 0x34], ecx
mov ecx, edi
mov dword [esp + 0x20], 0x14
mov dword [esp + 0x30], esi
lea esi, [edx - 1]
sar esi, cl
mov ecx, ebp
imul esi, eax
and ecx, 0x1c
mov dword [esp + 0x3c], ecx
mov ecx, edi
mov dword [esp + 0x38], esi
mov esi, edx
sar esi, cl
inc edx
lea ecx, [ebp + 4]
imul esi, eax
and ecx, 0x1c
mov dword [esp + 0x44], ecx
mov ecx, edi
sar edx, cl
imul edx, eax
mov eax, 0xffffffec
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x84], edx
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov edx, dword [esp + 0x10]
and esi, 2
mov eax, dword [esp + 0x30]
or ecx, esi
shr edx, cl
mov ebp, ebx
and edx, 3
mov dword [esp + 0x18], esi
mov ecx, edi
inc ebx
sar ebp, cl
mov edi, 0xfffffffe
mov ecx, dword [esp + 0x14]
add eax, ebp
sub edi, dword [esp + 0x20]
and edi, 2
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov dword [esp + edx*4 + 0x64], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
or ecx, edi
mov eax, dword [esp + 0x30]
shr edx, cl
mov ecx, dword [esp + 0x50]
and edx, 3
sar ebx, cl
mov ecx, dword [esp + 0x14]
add eax, ebx
or edi, dword [esp + 0x3c]
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov ecx, esi
or ecx, dword [esp + 0x34]
mov dword [esp + edx*4 + 0x64], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
add eax, ebp
shr edx, cl
add esi, 0xfffffffe
mov ecx, dword [esp + 0x14]
and edx, 3
and esi, 2
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov ecx, esi
or ecx, dword [esp + 0x34]
mov dword [esp + edx*4 + 0x64], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
shr edx, cl
add eax, ebx
mov ecx, dword [esp + 0x14]
and edx, 3
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x3c]
mov dword [esp + edx*4 + 0x64], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
shr edx, cl
add eax, ebp
mov ecx, dword [esp + 0x14]
and edx, 3
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov ecx, edi
mov dword [esp + edx*4 + 0x74], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
shr edx, cl
mov ecx, dword [esp + 0x14]
and edx, 3
add eax, ebx
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov dword [esp + edx*4 + 0x74], eax
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x84]
mov edx, dword [esp + 0x10]
or esi, dword [esp + 0x44]
shr edx, cl
mov ecx, esi
and edx, 3
lea eax, [edi + ebp]
mov ebp, dword [esp + 0x14]
lea eax, [edx + eax*4]
movzx eax, word [ebp + eax*2]
mov dword [esp + edx*4 + 0x74], eax
lea eax, [edi + ebx]
mov edx, dword [esp + 0x10]
shr edx, cl
and edx, 3
xor ecx, ecx
lea eax, [edx + eax*4]
movzx eax, word [ebp + eax*2]
mov dword [esp + edx*4 + 0x74], eax
mov eax, dword [esp + ecx*4 + 0x64]
sub eax, 0x96
cmp eax, 0x546
ja 0x1012e4cf
inc ecx
cmp ecx, 8
jl 0x1012e292
xor ecx, ecx
nop
mov eax, dword [esp + ecx*4 + 0x64]
sub eax, dword [esp + ecx*4 + 0x74]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x32
jg 0x1012e4cf
inc ecx
cmp ecx, 4
jl 0x1012e2b0
xor ebx, ebx
lea eax, [esp + 0x90]
mov dword [esp + 0x18], ebx
lea edi, [esp + 0x64]
mov dword [esp + 0x48], eax
lea ebp, [esp + 0x9c]
xor esi, esi
nop word [eax + eax]
mov eax, dword [edi + 4]
mov ecx, esi
sub eax, dword [edi]
add esi, 2
shl eax, 0xa
cdq
idiv dword [edi]
sar ecx, 1
add edi, 8
add ecx, ebx
mov dword [esp + ecx*4 + 0x98], eax
cmp esi, 4
jl 0x1012e2f0
mov ecx, dword [ebp]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x1012e345
cmp ecx, 0xffffff98
jge 0x1012e332
mov dword [ebp], 0xffffff98
mov ecx, 0xffffff98
jmp 0x1012e382
xor edx, edx
cmp ecx, 0xc
jle 0x1012e387
mov dword [ebp], 0xc
lea ecx, [edx + 0xc]
jmp 0x1012e382
lea eax, [ecx + 0x108]
cmp eax, 0x2d5
ja 0x1012e3f4
mov eax, ecx
cmp ecx, 0xffffffce
jge 0x1012e36b
mov dword [ebp], 0xffffffce
mov ecx, 0xffffffce
jmp 0x1012e382
xor edx, edx
mov ecx, eax
cmp eax, 0x133
jle 0x1012e387
mov dword [ebp], 0x133
mov ecx, 0x133
mov edx, 1
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jp 0x1012e3a6
cmp ecx, 0xc5
jl 0x1012e3a6
lea esi, [ecx + ecx*2]
shl esi, 4
sar esi, 0xa
sub esi, 0x7b
jmp 0x1012e3b6
imul eax, ecx, 0x18e
mov esi, 0xffffffda
sar eax, 0xa
sub esi, eax
mov ecx, dword [ebp - 4]
mov eax, esi
sub eax, dword [esp + 0x1c]
cmp eax, ecx
jg 0x1012e3d2
lea eax, [esi + 0x14]
cmp eax, ecx
jl 0x1012e3d2
test edx, edx
jne 0x1012e3d2
xor eax, eax
jmp 0x1012e3f9
mov ebx, esi
sub ebx, ecx
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x1c]
lea ecx, [edx*4]
cmp eax, ecx
jl 0x1012e605
mov ebx, dword [esp + 0x18]
mov eax, 2
mov ecx, dword [esp + 0x48]
add ebx, 2
add ebp, 8
mov dword [esp + 0x18], ebx
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x48], ecx
cmp ebx, 4
jl 0x1012e2e8
mov eax, dword [esp + 0x90]
mov edx, eax
mov ecx, dword [esp + 0x94]
or edx, ecx
cmp edx, 1
jg 0x1012e4cf
test eax, eax
je 0x1012e468
mov eax, dword [esp + 0x98]
add eax, 0x400
imul eax, dword [esp + 0x64]
sar eax, 0xa
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x9c]
add eax, 0x400
imul eax, dword [esp + 0x6c]
sar eax, 0xa
mov dword [esp + 0x70], eax
test ecx, ecx
je 0x1012e49f
mov eax, dword [esp + 0xa0]
add eax, 0x400
imul eax, dword [esp + 0x74]
sar eax, 0xa
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xa4]
add eax, 0x400
imul eax, dword [esp + 0x7c]
sar eax, 0xa
mov dword [esp + 0x80], eax
mov eax, edx
xor ecx, ecx
shl eax, 5
lea eax, [esp + eax + 0xa8]
nop dword [eax]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x10]
movups xmm1, xmmword [esp + ecx*4 + 0x64]
add ecx, 4
paddd xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp ecx, 8
jl 0x1012e4b0
inc dword [esp + edx*4 + 0x5c]
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x24]
add ebx, 2
add dword [esp + 0x20], 4
sub eax, 4
mov edi, dword [esp + 0x50]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x24], eax
cmp ebx, dword [esp + 0x88]
jl 0x1012e141
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x28]
add edx, 4
add ebp, 0x10
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], edx
lea eax, [edx - 2]
cmp eax, dword [esp + 0x8c]
movzx eax, word [ecx + 0x16]
jl 0x1012e0a0
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
pop ebp
mov eax, edi
or eax, esi
je 0x1012e5fb
movsd xmm2, qword [0x103efa68]
xor ecx, ecx
imul eax, esi, 0xc8
mov edx, 0x20
movaps xmm0, xmm2
mov ebx, dword [esp + 0x24]
cmp eax, edi
cmovl ecx, edx
mov eax, dword [esp + ecx + 0xb4]
add eax, dword [esp + ecx + 0xa4]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mov eax, dword [esp + ecx + 0xa8]
add eax, dword [esp + ecx + 0xb8]
divsd xmm0, xmm1
movaps xmm1, xmm2
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0x25004], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, dword [esp + ecx + 0xac]
add eax, dword [esp + ecx + 0xbc]
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movaps xmm1, xmm2
movss dword [ebx + 0x25008], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, dword [esp + ecx + 0xb0]
add eax, dword [esp + ecx + 0xc0]
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [ebx + 0x2500c], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm2, xmm0
cvtpd2ps xmm0, xmm2
movss dword [ebx + 0x25010], xmm0
pop edi
pop esi
pop ebx
add esp, 0xd8
ret
cmp ebx, 0xffffffec
mov eax, 0xffffffec
cmovl ebx, eax
mov eax, edx
cmp ebx, edx
cmovle eax, ebx
mov ebx, dword [esp + 0x18]
sub esi, eax
mov eax, 1
mov dword [ebp - 4], esi
jmp 0x1012e3f9