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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x20094
call fcn.1012bcf0
mov eax, dword [0x1019c020]
xor eax, esp
mov dword [esp + 0x20090], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x1c], 0x7fffffff
mov dword [esp + 0x50], edi
mov dword [esp + 0xc], 0
cmp dword [edi + 0xb4], 0
jne 0x100ae389
cmp dword [edi + 0x65d4], 0
je 0x100ae389
cmp dword [edi + 0xbc], 0
je 0x100ad6d2
push str.Phase_One_correction..._n
push 2
call fcn.10139778
add esp, 4
push eax
call fcn.10001240
add esp, 8
mov eax, dword [edi]
push 0
push dword [edi + 0x65c8]
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
mov ecx, edi
call fcn.100a88b0
mov word [edi + 0x6274], ax
mov eax, dword [edi]
push 1
push 6
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
mov esi, dword [edi]
add esp, 0xc
mov ecx, edi
push 0
call fcn.100a8910
add eax, dword [edi + 0x65c8]
push eax
push dword [edi + 4]
mov eax, dword [esi + 8]
call eax
add esp, 0xc
mov ecx, edi
call fcn.100a8910
mov ecx, edi
mov esi, eax
call fcn.100a8910
test esi, esi
je 0x100ae389
nop dword [eax + eax]
dec esi
mov ecx, edi
mov dword [esp + 0x20], esi
call fcn.100a8910
mov ecx, edi
mov ebx, eax
call fcn.100a8910
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.100a8910
push dword [edi + 4]
mov esi, eax
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi + 0x65c8]
add esp, 4
mov dword [esp + 0x3c], eax
add ecx, esi
mov eax, dword [edi]
push 0
push ecx
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
cmp ebx, 0x419
jne 0x100ad844
mov ecx, edi
call fcn.100a8910
xor esi, esi
mov ecx, edi
call fcn.100a8910
mov dword [esp + 0x14], eax
movss xmm0, dword [esp + 0x14]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm0, xmm0
movss dword [esp + esi*4 + 0x54], xmm0
inc esi
cmp esi, 8
jl 0x100ad7a0
movss xmm2, dword [edi + 0x6270]
xor ecx, ecx
subss xmm2, dword [esp + 0x70]
movss xmm3, dword [esp + 0x68]
xorps xmm5, xmm5
movss xmm4, dword [esp + 0x58]
mulss xmm2, dword [esp + 0x6c]
addss xmm2, dword [0x10191ea8]
addss xmm2, dword [esp + 0x60]
movss dword [esp + 0x60], xmm2
nop dword [eax]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm0
mulss xmm1, xmm3
addss xmm1, xmm2
mulss xmm1, xmm0
addss xmm1, xmm4
minss xmm1, dword [0x10192278]
comiss xmm5, xmm1
jbe 0x100ad82a
movaps xmm1, xmm5
cvttss2si eax, xmm1
mov word [esp + ecx*2 + 0x98], ax
inc ecx
cmp ecx, 0x10000
jl 0x100ad800
jmp 0x100ad8cb
cmp ebx, 0x41a
jne 0x100ad983
xor esi, esi
mov ecx, edi
call fcn.100a8910
mov dword [esp + 0x14], eax
movss xmm0, dword [esp + 0x14]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm0, xmm0
movss dword [esp + esi*4 + 0x54], xmm0
inc esi
cmp esi, 4
jl 0x100ad852
xor ecx, ecx
xorps xmm5, xmm5
nop dword [eax + eax]
movd xmm1, ecx
movaps xmm2, xmm5
mov eax, 4
cvtdq2ps xmm1, xmm1
nop
movaps xmm0, xmm1
sub eax, 1
mulss xmm2, xmm0
addss xmm2, dword [esp + eax*4 + 0x54]
jne 0x100ad890
addss xmm1, xmm2
minss xmm1, dword [0x10192278]
comiss xmm5, xmm1
jbe 0x100ad8b6
movaps xmm1, xmm5
cvttss2si eax, xmm1
mov word [esp + ecx*2 + 0x98], ax
inc ecx
cmp ecx, 0x10000
jl 0x100ad880
xor edx, edx
xor eax, eax
mov dword [esp + 0x10], edx
cmp ax, word [edi + 0x66b4]
jae 0x100adf00
and ebx, 1
mov dword [esp + 0x14], ebx
nop word [eax + eax]
mov esi, dword [edi + 0x6268]
movzx eax, word [edi + 0x66b6]
imul esi, ebx
cmp esi, eax
jae 0x100ad96a
mov ebx, edx
and ebx, 7
add ebx, ebx
nop dword [eax + eax]
movzx ecx, word [edi + 0x66bc]
movzx eax, word [edi + 0x66c0]
shr edx, cl
imul edx, eax
mov eax, esi
shr eax, cl
mov ecx, esi
and ecx, 1
inc esi
add ecx, ebx
add ecx, ecx
add edx, eax
mov eax, dword [edi + 0x65b0]
shr eax, cl
mov ecx, dword [edi + 0x66e0]
and eax, 3
lea edx, [eax + edx*4]
movzx eax, word [ecx + edx*2]
mov ax, word [esp + eax*2 + 0x98]
mov word [ecx + edx*2], ax
movzx eax, word [edi + 0x66b6]
mov edx, dword [esp + 0x10]
cmp esi, eax
jb 0x100ad910
mov ebx, dword [esp + 0x14]
movzx eax, word [edi + 0x66b4]
inc edx
mov dword [esp + 0x10], edx
cmp edx, eax
jb 0x100ad8f0
jmp 0x100adf00
cmp ebx, 0x400
jne 0x100ade74
mov eax, dword [esp + 0x14]
sub eax, 8
js 0x100adf00
add eax, 8
shr eax, 3
mov dword [esp + 0x14], eax
mov ecx, edi
call fcn.100a88b0
movzx ebx, ax
mov ecx, edi
movzx eax, word [edi + 0x66ba]
sub ebx, eax
mov dword [esp + 0x18], ebx
call fcn.100a88b0
movzx esi, ax
mov ecx, edi
movzx eax, word [edi + 0x66b8]
sub esi, eax
mov dword [esp + 0x40], esi
call fcn.100a88b0
movzx eax, ax
mov ecx, edi
mov dword [esp + 0x2c], eax
call fcn.100a88b0
movzx eax, word [edi + 0x66b6]
cmp ebx, eax
jae 0x100ade64
mov eax, dword [esp + 0x2c]
cmp eax, 0x83
jne 0x100addac
xor esi, esi
xor eax, eax
mov dword [esp + 0x10], esi
cmp ax, word [edi + 0x66b4]
jae 0x100ade64
mov ecx, ebx
and ecx, 1
mov dword [esp + 0x38], ecx
mov edx, dword [edi + 0x65b0]
mov eax, esi
and eax, 7
mov dword [esp + 0x40], edx
add eax, eax
add ecx, eax
mov dword [esp + 0x34], eax
add ecx, ecx
mov eax, edx
shr eax, cl
movzx ecx, word [edi + 0x66b4]
and eax, 3
mov dword [esp + 0x2c], eax
cmp eax, 1
jne 0x100adbba
lea eax, [esp + 0x88]
mov dword [esp + 0x24], 0
mov dword [esp + 0x34], eax
mov eax, 0x10164760
mov dword [esp + 0x28], eax
movsx edx, byte [eax + 1]
add edx, ebx
movsx ebx, byte [eax]
add ebx, esi
mov dword [esp + 0x40], edx
cmp ebx, ecx
jae 0x100adae3
movzx eax, word [edi + 0x66b6]
cmp edx, eax
jae 0x100adadf
movzx esi, word [edi + 0x66bc]
mov ecx, ebx
movzx eax, word [edi + 0x66c0]
and ecx, 7
and edx, 1
lea ecx, [edx + ecx*2]
mov edx, dword [edi + 0x65b0]
add ecx, ecx
shr edx, cl
mov ecx, esi
mov esi, dword [esp + 0x10]
and edx, 3
shr ebx, cl
imul ebx, eax
mov eax, dword [esp + 0x40]
shr eax, cl
add ebx, eax
mov eax, dword [edi + 0x66e0]
lea ecx, [edx + ebx*4]
movzx ecx, word [eax + ecx*2]
mov eax, dword [esp + 0x28]
jmp 0x100adae5
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [esp + 0x34]
add eax, 2
add dword [esp + 0x24], ecx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov dword [edx], ecx
add edx, 4
movzx ecx, word [edi + 0x66b4]
mov dword [esp + 0x34], edx
cmp eax, 0x10164768
jl 0x100ada75
mov esi, dword [esp + 0x24]
xor ebx, ebx
mov eax, dword [esp + 0x88]
shl eax, 2
sub eax, esi
cdq
mov ecx, eax
mov eax, dword [esp + 0x8c]
shl eax, 2
xor ecx, edx
sub eax, esi
sub ecx, edx
cdq
xor eax, edx
mov dword [esp + 0x78], ecx
sub eax, edx
cmp ecx, eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x90]
setl bl
shl eax, 2
sub eax, esi
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x80], eax
cmp dword [esp + ebx*4 + 0x78], eax
mov eax, 2
cmovl ebx, eax
mov eax, dword [esp + 0x94]
shl eax, 2
sub eax, esi
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x84], eax
cmp dword [esp + ebx*4 + 0x78], eax
mov eax, 3
cmovl ebx, eax
sub esi, dword [esp + ebx*4 + 0x88]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x101920d8]
addsd xmm0, qword [0x10191fb0]
cvttsd2si esi, xmm0
jmp 0x100add59
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, 0x10164770
mov dword [esp + 0x24], eax
nop dword [eax]
movsx edx, byte [eax + 1]
add edx, ebx
movsx ebx, byte [eax]
add ebx, esi
mov dword [esp + 0x48], edx
cmp ebx, ecx
jae 0x100adc3e
movzx eax, word [edi + 0x66b6]
cmp edx, eax
jae 0x100adc3a
movzx esi, word [edi + 0x66bc]
mov ecx, ebx
movzx eax, word [edi + 0x66c0]
and ecx, 7
and edx, 1
lea ecx, [edx + ecx*2]
mov edx, dword [edi + 0x65b0]
add ecx, ecx
shr edx, cl
mov ecx, esi
mov esi, dword [esp + 0x10]
and edx, 3
shr ebx, cl
imul ebx, eax
mov eax, dword [esp + 0x48]
shr eax, cl
add ebx, eax
mov eax, dword [edi + 0x66e0]
lea ecx, [edx + ebx*4]
movzx ecx, word [eax + ecx*2]
mov eax, dword [esp + 0x24]
jmp 0x100adc40
mov eax, dword [esp + 0x24]
xor ecx, ecx
add dword [esp + 0x28], ecx
add eax, 2
mov ebx, dword [esp + 0x18]
movzx ecx, word [edi + 0x66b4]
mov dword [esp + 0x24], eax
cmp eax, 0x10164778
jl 0x100adbd0
movzx eax, word [edi + 0x66b4]
add ebx, 0xfffffffe
cmp esi, eax
jae 0x100adcbc
movzx eax, word [edi + 0x66b6]
cmp ebx, eax
jae 0x100adcbc
movzx ecx, word [edi + 0x66bc]
mov edx, esi
movzx eax, word [edi + 0x66c0]
shr edx, cl
imul edx, eax
mov eax, ebx
shr eax, cl
and ebx, 1
add ebx, dword [esp + 0x34]
add ebx, ebx
mov ecx, ebx
add edx, eax
mov eax, dword [esp + 0x40]
shr eax, cl
and eax, 3
lea ecx, [eax + edx*4]
mov eax, dword [edi + 0x66e0]
movzx ecx, word [eax + ecx*2]
mov dword [esp + 0x24], ecx
jmp 0x100adcc4
mov dword [esp + 0x24], 0
mov ebx, dword [esp + 0x18]
movzx eax, word [edi + 0x66b4]
add ebx, 2
cmp esi, eax
jae 0x100add1f
movzx eax, word [edi + 0x66b6]
cmp ebx, eax
jae 0x100add1f
movzx ecx, word [edi + 0x66bc]
mov edx, esi
movzx eax, word [edi + 0x66c0]
shr edx, cl
imul edx, eax
mov eax, ebx
shr eax, cl
and ebx, 1
add ebx, dword [esp + 0x34]
add ebx, ebx
mov ecx, ebx
add edx, eax
mov eax, dword [esp + 0x40]
shr eax, cl
and eax, 3
lea ecx, [eax + edx*4]
mov eax, dword [edi + 0x66e0]
movzx eax, word [eax + ecx*2]
jmp 0x100add21
xor eax, eax
add eax, dword [esp + 0x24]
movd xmm1, eax
mov eax, dword [esp + 0x28]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mulsd xmm1, qword [0x10191f80]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x10191f20]
addsd xmm0, qword [0x10191fb0]
addsd xmm1, xmm0
cvttsd2si esi, xmm1
movzx ecx, word [edi + 0x66bc]
mov edx, dword [esp + 0x10]
movzx eax, word [edi + 0x66c0]
mov ebx, dword [esp + 0x18]
shr edx, cl
imul edx, eax
mov eax, ebx
shr eax, cl
add edx, eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + edx*4]
mov eax, dword [edi + 0x66e0]
mov word [eax + ecx*2], si
mov esi, dword [esp + 0x10]
movzx eax, word [edi + 0x66b4]
inc esi
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x10], esi
cmp esi, eax
jb 0x100ada25
jmp 0x100ade64
cmp eax, 0x81
jne 0x100ade64
movzx eax, word [edi + 0x66b4]
cmp esi, eax
jae 0x100ade64
and esi, 7
mov dword [esp + 0x2c], 0
mov eax, ebx
and eax, 1
lea ecx, [eax + esi*2]
mov eax, dword [edi + 0x65b0]
add ecx, ecx
shr eax, cl
and eax, 3
mov dword [esp + 0x48], eax
lea esi, [eax - 1]
neg esi
sbb esi, esi
and esi, 4
lea eax, [esi + 8]
mov dword [esp + 0x38], eax
nop dword [eax + eax]
movsx eax, byte [esi*2 + 0x10164761]
mov ecx, edi
movsx edx, byte [esi*2 + 0x10164760]
add eax, ebx
add edx, dword [esp + 0x40]
push eax
call fcn.100ad150
mov edx, dword [esp + 0x30]
inc esi
add edx, eax
add esp, 4
mov dword [esp + 0x2c], edx
cmp esi, dword [esp + 0x38]
jl 0x100ade00
movzx ecx, word [edi + 0x66bc]
add edx, 4
mov esi, dword [esp + 0x40]
movzx eax, word [edi + 0x66c0]
shr esi, cl
imul esi, eax
mov eax, dword [esp + 0x48]
shr ebx, cl
sar edx, 3
add esi, ebx
lea ecx, [eax + esi*4]
mov eax, dword [edi + 0x66e0]
mov word [eax + ecx*2], dx
sub dword [esp + 0x14], 1
jne 0x100ad9a6
jmp 0x100adf00
cmp ebx, 0x401
jne 0x100ade86
mov edx, 1
jmp 0x100adef4
cmp ebx, 0x416
je 0x100adef2
cmp ebx, 0x410
je 0x100adef2
cmp ebx, 0x40b
jne 0x100adea4
push 4
xor edx, edx
jmp 0x100adef6
cmp ebx, 0x412
jne 0x100adf00
mov eax, dword [edi]
push 1
push 0x24
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
mov ecx, edi
call fcn.100a88b0
movzx eax, ax
sub eax, dword [edi + 0x626c]
cdq
xor eax, edx
sub eax, edx
cmp dword [esp + 0x1c], eax
jle 0x100adf00
push dword [edi + 4]
mov dword [esp + 0x20], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call eax
add esp, 4
lea ebx, [eax - 0x26]
mov dword [esp + 0xc], ebx
jmp 0x100adf04
xor edx, edx
push 2
mov ecx, edi
call fcn.100ad1c0
add esp, 4
mov ebx, dword [esp + 0xc]
mov eax, dword [edi]
push 0
push dword [esp + 0x40]
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
mov esi, dword [esp + 0x2c]
add esp, 0xc
test esi, esi
jne 0x100ad740
test ebx, ebx
je 0x100ae389
mov eax, dword [edi]
push esi
push ebx
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
nop word [eax + eax]
mov ecx, edi
call fcn.100a8910
and eax, 0x7fff
mov dword [esp + esi*4 + 0x54], eax
inc esi
cmp esi, 9
jl 0x100adf40
mov eax, dword [esp + 0x58]
imul eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
imul ecx, dword [esp + 0x64]
push 6
mov dword [esp + 0x24], eax
add eax, ecx
mov dword [esp + 0x40], ecx
push eax
call fcn.101373f7
mov esi, eax
add esp, 8
mov dword [esp + 0x48], esi
test esi, esi
je 0x100ae39e
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
push 2
push 1
lea ecx, [esi + edx*4]
mov word [esp + 0x14], 0xffff
lea eax, [ecx + eax*4]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x14]
lea eax, [eax + edx*2]
mov dword [esp + 0x38], eax
mov eax, dword [edi]
push ecx
push dword [edi + 4]
mov eax, dword [eax]
call eax
add esp, 0x10
xor ecx, ecx
mov dword [esp + 0x1c], ecx
nop word [eax + eax]
mov eax, dword [esp + ecx + 0x58]
imul eax, dword [esp + ecx + 0x60]
mov dword [esp + 0x20], eax
test eax, eax
jle 0x100ae083
mov esi, dword [esp + ecx + 0x48]
mov ebx, eax
nop dword [eax + eax]
mov eax, dword [edi]
lea ecx, [esp + 0xc]
push 4
push 1
push ecx
push dword [edi + 4]
mov dword [esp + 0x1c], 0xffffffff
mov eax, dword [eax]
call eax
mov eax, 0x4949
add esp, 0x10
cmp word [edi + 0x6274], ax
jne 0x100ae03b
movzx ecx, byte [esp + 0xf]
movzx eax, byte [esp + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0xc]
jmp 0x100ae059
movzx ecx, byte [esp + 0xc]
movzx eax, byte [esp + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0xf]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x20], ecx
movss xmm0, dword [esp + 0x20]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm0, xmm0
movss dword [esi], xmm0
add esi, 4
sub ebx, 1
jne 0x100adff0
mov ecx, dword [esp + 0x1c]
add ecx, 4
mov dword [esp + 0x1c], ecx
cmp ecx, 8
jl 0x100adfd0
mov esi, dword [esp + 0x48]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
nop dword [eax]
mov eax, dword [esp + ecx + 0x58]
imul eax, dword [esp + ecx + 0x60]
mov dword [esp + 0x20], eax
test eax, eax
jle 0x100ae114
mov ebx, dword [esp + ecx + 0x2c]
mov esi, eax
mov eax, dword [edi]
lea ecx, [esp + 0xc]
push 2
push 1
push ecx
push dword [edi + 4]
mov word [esp + 0x1c], 0xffff
mov eax, dword [eax]
call eax
mov eax, 0x4949
add esp, 0x10
cmp word [edi + 0x6274], ax
jne 0x100ae0ed
movzx ecx, byte [esp + 0xd]
movzx eax, byte [esp + 0xc]
jmp 0x100ae0f7
movzx ecx, byte [esp + 0xc]
movzx eax, byte [esp + 0xd]
shl cx, 8
or cx, ax
movzx eax, cx
mov word [ebx], ax
add ebx, 2
sub esi, 1
jne 0x100ae0b7
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
add ecx, 4
mov dword [esp + 0x1c], ecx
cmp ecx, 8
jl 0x100ae0a0
mov ebx, dword [esp + 0x58]
xor edx, edx
xor eax, eax
mov dword [esp + 0x14], edx
cmp ax, word [edi + 0x66b4]
jae 0x100ae380
xorps xmm6, xmm6
nop dword [eax]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0xc], ecx
cmp ax, word [edi + 0x66b6]
jae 0x100ae368
movd xmm5, dword [esp + 0x60]
mov eax, edx
and eax, 7
add eax, eax
cvtdq2ps xmm5, xmm5
mov dword [esp + 0x20], eax
nop dword [eax]
movd xmm0, ecx
mov eax, ecx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movzx ecx, word [edi + 0x66bc]
shr edx, cl
addsd xmm0, qword [eax*8 + 0x101923d0]
movzx eax, word [edi + 0x66b2]
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, word [edi + 0x66c0]
mulss xmm4, xmm5
imul edx, eax
mov eax, dword [esp + 0xc]
divss xmm4, xmm0
shr eax, cl
mov ecx, dword [esp + 0xc]
and ecx, 1
add edx, eax
add ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x65b0]
add ecx, ecx
shr eax, cl
mov ecx, dword [edi + 0x66e0]
and eax, 3
mov dword [esp + 0x38], ecx
lea eax, [eax + edx*4]
mov dword [esp + 0x3c], eax
movzx eax, word [ecx + eax*2]
cvttss2si esi, xmm4
movd xmm0, esi
lea ecx, [esi + 2]
cvtdq2ps xmm0, xmm0
subss xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x10191fb0]
cvtpd2ps xmm3, xmm0
cmp esi, ecx
jge 0x100ae2de
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x40]
mov edi, ebx
mov dword [esp + 0x10], edx
imul edi, esi
sub ecx, esi
mov dword [esp + 0x1c], ecx
lea eax, [eax + edi*2]
mov dword [esp + 0x18], eax
xor ecx, ecx
xor esi, esi
test ebx, ebx
jle 0x100ae295
mov edx, eax
nop
movzx eax, word [edx]
lea esi, [edi + ecx]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
ja 0x100ae25a
inc ecx
add edx, 2
cmp ecx, ebx
jl 0x100ae240
mov edx, dword [esp + 0x10]
test ecx, ecx
je 0x100ae291
cmp ecx, ebx
je 0x100ae291
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax + esi*2]
movzx eax, word [eax + esi*2 - 2]
movd xmm2, ecx
sub ecx, eax
mov eax, dword [esp + 0x18]
cvtdq2ps xmm2, xmm2
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
subss xmm2, xmm3
divss xmm2, xmm0
jmp 0x100ae298
mov eax, dword [esp + 0x18]
movaps xmm2, xmm6
movss xmm1, dword [0x10191ea8]
lea eax, [eax + ebx*2]
mov ecx, dword [esp + 0x48]
subss xmm1, xmm2
add edi, ebx
mov dword [esp + 0x18], eax
movss xmm0, dword [ecx + esi*4 - 4]
mulss xmm1, dword [ecx + esi*4]
mulss xmm0, xmm2
addss xmm1, xmm0
movss dword [edx], xmm1
add edx, 4
sub dword [esp + 0x1c], 1
mov dword [esp + 0x10], edx
jne 0x100ae234
mov edi, dword [esp + 0x50]
movss xmm1, dword [0x10191ea8]
mov ecx, 0xffff
movss xmm0, dword [esp + 0x44]
subss xmm1, xmm4
movzx eax, word [edi + 0x66b8]
mov edx, dword [esp + 0x14]
add eax, edx
mulss xmm0, xmm4
mov esi, dword [esp + 0x38]
mulss xmm1, dword [esp + 0x40]
addss xmm1, xmm0
movd xmm0, eax
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x101923d0]
cvtpd2ps xmm0, xmm0
mulss xmm1, xmm0
addss xmm1, xmm3
addss xmm1, xmm1
cvttss2si eax, xmm1
cmp eax, ecx
cmovl ecx, eax
xor eax, eax
test ecx, ecx
cmovs ecx, eax
mov eax, dword [esp + 0x3c]
mov word [esi + eax*2], cx
mov ecx, dword [esp + 0xc]
movzx eax, word [edi + 0x66b6]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, eax
jb 0x100ae170
movzx eax, word [edi + 0x66b4]
inc edx
mov dword [esp + 0x14], edx
cmp edx, eax
jb 0x100ae140
mov esi, dword [esp + 0x48]
push esi
call fcn.1012f84b
add esp, 4
mov ecx, dword [esp + 0x2009c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x2e844]
push str.phase_one_correct__
push dword [edi + 0x6278]
push str._s:_Out_of_memory_in__s_n
test eax, eax
je 0x100ae3c0
push eax
call fcn.10004160
jmp 0x100ae3d0
push 2
call fcn.10139778
add esp, 4
push eax
call fcn.10001240
add esp, 0x10
lea eax, [edi + 0x2e804]
push 1
push eax
call fcn.1012e0aa
int3