Function at 0x100298d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x1007d00c]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
push edi
mov edi, ecx
mov ebx, dword [ebp + 8]
xor edx, edx
movss xmm3, dword [0x10075630]
mov dword [esp + 0x1c], ebx
xorps xmm2, xmm2
mov esi, dword [edi + 0x2c]
mov eax, dword [edi + 0xbc]
shl esi, 4
inc eax
sub esi, dword [edi + 0x2c]
shl esi, 2
div esi
mov esi, dword [edi + 0xe4]
mov dword [edi + 0xbc], edx
test esi, esi
je 0x100299ed
cmp dword [esi + 0x10], 0
je 0x100299e8
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
call fcn.10035f40
divsd xmm0, qword [0x10075698]
lea eax, [esp + 0x38]
push eax
movsd qword [esp + 0x2c], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [esp + 0x38]
sub ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x3c]
sbb edx, dword [esi + 0x24]
call fcn.10035f40
movaps xmm1, xmm0
movsd xmm0, qword [0x10075668]
divsd xmm1, qword [esp + 0x28]
comisd xmm0, xmm1
ja 0x100299e0
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x34]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x34], 0
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
movss xmm0, dword [esi + 0x28]
movss xmm1, dword [esp + 0x34]
movss xmm3, dword [0x10075630]
mulss xmm0, dword [0x1007561c]
mulss xmm1, xmm3
addss xmm1, xmm0
movss xmm0, dword [0x10075610]
comiss xmm0, xmm1
movss dword [esi + 0x28], xmm1
jbe 0x100299e8
mov dword [esi + 0x28], 0
jmp 0x100299e8
movss xmm3, dword [0x10075630]
movss xmm2, dword [esi + 0x28]
cmp dword [edi + 0xc4], 0
je 0x10029a74
movss xmm0, dword [edi + 0xd0]
movaps xmm1, xmm2
mulss xmm1, dword [0x1007561c]
mulss xmm0, xmm3
addss xmm1, xmm0
movss xmm0, dword [0x10075618]
comiss xmm0, xmm1
movss dword [edi + 0xd0], xmm1
jbe 0x10029a3c
mov dword [edi + 0xcc], 0
mov dword [edi + 0xc8], 0x3f800000
jmp 0x10029a74
comiss xmm1, dword [edi + 0xcc]
jbe 0x10029a74
movss xmm0, dword [0x10075634]
divss xmm0, xmm1
movss dword [edi + 0xcc], xmm1
comiss xmm0, dword [0x10075690]
movss dword [edi + 0xc8], xmm0
jbe 0x10029a74
mov dword [edi + 0xc8], 0x40800000
mov esi, dword [edi + 0xd4]
mov eax, esi
mulss xmm2, dword [edi + 0xc8]
shr eax, 0x1f
movd xmm1, esi
cvtdq2pd xmm1, xmm1
addsd xmm1, qword [eax*8 + 0x10075730]
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x28], xmm0
mulss xmm0, xmm2
call fcn.10035e20
cmp eax, esi
cmovb esi, eax
mov eax, dword [edi + 0xb4]
mov dword [esp + 0x34], eax
cmp esi, eax
lea eax, [edi + 0xb8]
ja 0x10029ad2
mov ecx, dword [eax]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
cmp esi, ecx
jbe 0x10029ae8
mov ecx, esi
mov dword [esp + 0x10], eax
mov dword [edi + 0xb4], esi
mov dword [eax], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], esi
test esi, esi
jne 0x10029af4
test ecx, ecx
je 0x1002a59a
mov esi, dword [edi + 0x10]
mov eax, esi
mov ecx, dword [edi + 0xc]
cmp ecx, esi
cdq
cmovbe ecx, esi
sub eax, edx
shr ecx, 1
mov dword [esp + 0x24], ecx
mov ecx, eax
mov eax, dword [esp + 0x24]
sar ecx, 1
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0xc]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x24]
sar ecx, 1
sub eax, ecx
mov ecx, dword [edi + 0x88]
cdq
and ecx, 0xf0000
xor eax, edx
sub eax, edx
mov dword [esp + 0x20], eax
cmp ecx, 0x50000
ja 0x1002a159
je 0x10029fe8
cmp ecx, 0x30000
ja 0x10029ec3
je 0x10029db2
cmp ecx, 0x10000
je 0x10029c8a
cmp ecx, 0x20000
jne 0x1002a179
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp dword [edi + 0xc], ecx
jle 0x1002a55b
movss xmm3, dword [0x10075634]
movd xmm0, esi
mov eax, esi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
xor edx, edx
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, dword [edi + 0xb8]
cvtpd2ps xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, dword [edi + 0xb4]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x10075730]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
subss xmm2, xmm1
cvttss2si eax, xmm2
test eax, eax
cmovns edx, eax
cmp edx, esi
jge 0x10029c77
movd xmm0, esi
mov eax, esi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movd xmm1, edx
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, dword [edi + 0xb4]
cvtdq2ps xmm1, xmm1
cvtpd2ps xmm0, xmm0
imul esi, dword [esp + 0x18]
divss xmm1, xmm0
add esi, edx
inc edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
subss xmm2, xmm1
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, dword [edi + 0xdc]
cvtpd2ps xmm0, xmm0
mulss xmm2, xmm0
cvttss2si ecx, xmm2
mov eax, dword [eax + ecx*4]
mov dword [ebx + esi*4], eax
mov esi, dword [edi + 0x10]
cmp edx, esi
jl 0x10029c06
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, dword [edi + 0xc]
jl 0x10029b95
jmp 0x1002a55b
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp dword [edi + 0xc], ecx
jle 0x10029da5
movss xmm3, dword [0x10075634]
mov edx, dword [esp + 0x14]
movd xmm0, esi
mov eax, esi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, edx
shr eax, 0x1f
cvtpd2ps xmm1, xmm0
movd xmm0, edx
mov edx, esi
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, dword [edi + 0xd4]
cvtpd2ps xmm0, xmm0
mulss xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075730]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
addss xmm1, xmm3
cvttss2si eax, xmm1
cmp esi, eax
cmovge edx, eax
mov eax, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], eax
test edx, edx
jle 0x10029d93
mov esi, dword [esp + 0x18]
movd xmm2, edx
cvtdq2ps xmm2, xmm2
nop dword [eax + eax]
mov eax, dword [edi + 0xb4]
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
mov ecx, dword [edi + 0x10]
movd xmm0, eax
divss xmm1, xmm2
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
imul ecx, esi
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, dword [edi + 0xdc]
add ecx, ebx
inc ebx
cvtpd2ps xmm0, xmm0
mulss xmm1, xmm0
cvttss2si edx, xmm1
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x1c]
mov dword [edx + ecx*4], eax
cmp ebx, dword [esp + 0x34]
jl 0x10029d30
mov edx, dword [edi + 0xb8]
mov esi, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
jmp 0x10029d97
mov edx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, dword [edi + 0xc]
jl 0x10029ca5
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x1002a55f
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x34]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, edx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
mulss xmm1, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x10075730]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
addss xmm1, dword [0x10075634]
cvttss2si eax, xmm1
cmp ecx, eax
cmovl eax, ecx
mov dword [esp + 0x34], eax
xor eax, eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], eax
test ecx, ecx
jle 0x10029da5
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
nop
movd xmm1, eax
xor ecx, ecx
cvtdq2ps xmm1, xmm1
mov eax, edx
shr eax, 0x1f
movd xmm0, edx
divss xmm1, xmm2
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x10075730]
cvtpd2ps xmm0, xmm0
mulss xmm1, xmm0
test esi, esi
jle 0x10029ea7
mov edx, dword [esp + 0x18]
cvttss2si eax, xmm1
shl eax, 2
mov dword [esp + 0x20], eax
nop
mov eax, dword [edi + 0xdc]
mov ebx, dword [esp + 0x20]
imul esi, edx
mov eax, dword [ebx + eax]
mov ebx, dword [esp + 0x1c]
add esi, ecx
inc ecx
mov dword [ebx + esi*4], eax
mov esi, dword [edi + 0x10]
cmp ecx, esi
jl 0x10029e80
mov edx, dword [edi + 0xb4]
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x34]
jl 0x10029e40
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x1002a55f
cmp ecx, 0x40000
jne 0x1002a179
mov eax, dword [edi + 0xc]
xor ecx, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, dword [esp + 0x14]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075730]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
divss xmm0, dword [esp + 0x28]
subss xmm1, xmm0
cvttss2si eax, xmm1
test eax, eax
cmovns ecx, eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x18], ecx
cmp ecx, eax
jge 0x10029da5
movss xmm3, dword [0x10075634]
mov edx, dword [esp + 0x34]
nop word [eax + eax]
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm0, eax
shr eax, 0x1f
movaps xmm2, xmm3
cvtsi2ss xmm1, ecx
xor ecx, ecx
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, edx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
xorps xmm0, xmm0
subss xmm2, xmm1
cvtsi2sd xmm0, edx
addsd xmm0, qword [eax*8 + 0x10075730]
cvtpd2ps xmm0, xmm0
mulss xmm2, xmm0
test esi, esi
jle 0x10029fc7
mov edx, dword [esp + 0x18]
cvttss2si eax, xmm2
shl eax, 2
mov dword [esp + 0x28], eax
nop dword [eax + eax]
mov eax, dword [edi + 0xdc]
mov ebx, dword [esp + 0x28]
imul esi, edx
mov eax, dword [ebx + eax]
mov ebx, dword [esp + 0x1c]
add esi, ecx
inc ecx
mov dword [ebx + esi*4], eax
mov esi, dword [edi + 0x10]
cmp ecx, esi
jl 0x10029fa0
mov edx, dword [edi + 0xb4]
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0xc]
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, eax
jl 0x10029f40
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x1002a55f
xor eax, eax
mov dword [esp + 0x34], eax
cmp dword [edi + 0xc], eax
jle 0x10029da5
mov ecx, dword [esp + 0x24]
mov edx, ecx
sub edx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
nop word [eax + eax]
mov dword [esp + 0x1c], 0
test esi, esi
jle 0x1002a139
mov eax, edx
movd xmm1, ecx
cdq
xor eax, edx
sub eax, edx
sub ecx, eax
cvtdq2ps xmm1, xmm1
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10075638]
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
mov ecx, dword [esp + 0x24]
mov edx, ecx
sub edx, dword [esp + 0x18]
cvtsd2ss xmm0, xmm0
mov dword [esp + 0x20], edx
movss dword [esp + 0x28], xmm0
nop dword [eax]
nop word [eax + eax]
mov eax, dword [edi + 0xb8]
movd xmm1, dword [esp + 0x24]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, edx
cdq
xor eax, edx
sub eax, edx
cvtpd2ps xmm0, xmm0
sub ecx, eax
movss dword [esp + 0x38], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10075638]
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movss xmm2, dword [esp + 0x38]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mov eax, dword [edi + 0xdc]
mov edx, dword [esp + 0x20]
dec edx
mov dword [esp + 0x20], edx
imul esi, dword [esp + 0x34]
movaps xmm0, xmm2
addss xmm1, dword [esp + 0x28]
mulss xmm0, dword [0x1007562c]
mulss xmm2, dword [0x10075620]
add esi, dword [esp + 0x1c]
mulss xmm1, xmm0
mulss xmm1, dword [0x10075624]
addss xmm1, xmm2
cvttss2si ecx, xmm1
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov dword [ebx + esi*4], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [edi + 0x10]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, esi
jl 0x1002a070
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
inc eax
dec edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], edx
cmp eax, dword [edi + 0xc]
jl 0x1002a010
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x1002a55f
cmp ecx, 0x60000
je 0x1002a3f8
cmp ecx, 0x70000
je 0x1002a2d8
cmp ecx, 0x80000
je 0x1002a1c3
imul esi, dword [edi + 0xc]
xor edx, edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
test esi, esi
je 0x1002a55f
lea eax, [edi + 0xb8]
mov dword [esp + 0x10], eax
nop dword [eax]
mov ecx, dword [eax]
mov eax, dword [edi + 0xdc]
mov eax, dword [eax + ecx*4]
mov dword [ebx + edx*4], eax
inc edx
mov eax, dword [edi + 0x10]
imul eax, dword [edi + 0xc]
cmp edx, eax
mov eax, dword [esp + 0x10]
jb 0x1002a1a0
jmp 0x1002a55f
xor eax, eax
mov dword [esp + 0x1c], eax
cmp dword [edi + 0xc], eax
jle 0x10029da5
mov ecx, dword [esp + 0x24]
mov edx, ecx
sub edx, dword [esp + 0x20]
movss xmm5, dword [0x1007562c]
movss xmm6, dword [0x10075624]
movss xmm7, dword [0x10075620]
mov dword [esp + 0x14], edx
nop dword [eax + eax]
mov dword [esp + 0x34], 0
test esi, esi
jle 0x1002a2b8
mov eax, edx
movd xmm4, ecx
cdq
xor eax, edx
sub eax, edx
sub ecx, dword [esp + 0x18]
cvtdq2ps xmm4, xmm4
mov dword [esp + 0x20], ecx
movd xmm3, eax
cvtdq2ps xmm3, xmm3
divss xmm3, xmm4
mov eax, dword [edi + 0xb8]
imul esi, dword [esp + 0x1c]
movd xmm0, eax
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x34]
cvtpd2ps xmm2, xmm0
add esi, edx
inc edx
mov dword [esp + 0x34], edx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [edi + 0xdc]
movaps xmm0, xmm2
mulss xmm2, xmm7
divss xmm1, xmm4
mulss xmm0, xmm5
addss xmm1, xmm3
mulss xmm1, xmm0
mulss xmm1, xmm6
addss xmm1, xmm2
cvttss2si ecx, xmm1
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x20]
mov dword [ebx + esi*4], eax
dec ecx
mov esi, dword [edi + 0x10]
mov dword [esp + 0x20], ecx
cmp edx, esi
jl 0x1002a231
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
inc eax
dec edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
cmp eax, dword [edi + 0xc]
jl 0x1002a200
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x1002a55f
xor eax, eax
mov dword [esp + 0x34], eax
cmp dword [edi + 0xc], eax
jle 0x10029da5
mov ecx, dword [esp + 0x24]
mov edx, ecx
sub edx, dword [esp + 0x20]
movss xmm5, dword [0x1007562c]
movss xmm6, dword [0x10075624]
movss xmm7, dword [0x10075620]
mov dword [esp + 0x14], edx
nop dword [eax]
mov dword [esp + 0x20], 0
test esi, esi
jle 0x1002a3d8
mov eax, edx
movd xmm4, ecx
cdq
xor eax, edx
sub eax, edx
sub ecx, eax
cvtdq2ps xmm4, xmm4
movd xmm3, ecx
mov ecx, dword [esp + 0x24]
mov edx, ecx
sub edx, dword [esp + 0x18]
cvtdq2ps xmm3, xmm3
mov dword [esp + 0x1c], edx
divss xmm3, xmm4
nop dword [eax]
mov eax, dword [edi + 0xb8]
imul esi, dword [esp + 0x34]
dec dword [esp + 0x1c]
movd xmm0, eax
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x20]
sub ecx, eax
add esi, edx
cvtpd2ps xmm2, xmm0
mov eax, dword [edi + 0xdc]
inc edx
mov dword [esp + 0x20], edx
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm2
mulss xmm2, xmm7
divss xmm1, xmm4
mulss xmm0, xmm5
addss xmm1, xmm3
mulss xmm1, xmm0
mulss xmm1, xmm6
addss xmm1, xmm2
cvttss2si ecx, xmm1
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov dword [ebx + esi*4], eax
mov esi, dword [edi + 0x10]
cmp edx, esi
mov edx, dword [esp + 0x1c]
jl 0x1002a350
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
inc eax
dec edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], edx
cmp eax, dword [edi + 0xc]
jl 0x1002a310
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x1002a55f
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], eax
cmp dword [edi + 0xc], ecx
jle 0x1002a55f
lea eax, [edi + 0xb8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov edx, eax
sub edx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
nop word [eax + eax]
mov dword [esp + 0x1c], 0
test esi, esi
jle 0x1002a548
movd xmm1, eax
mov eax, edx
cdq
xor eax, edx
sub eax, edx
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10075638]
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
mov ecx, dword [esp + 0x24]
mov edx, ecx
sub edx, dword [esp + 0x18]
cvtsd2ss xmm0, xmm0
mov dword [esp + 0x20], edx
movss dword [esp + 0x38], xmm0
mov eax, dword [esp + 0x10]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mov eax, dword [eax]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075730]
mov eax, edx
cdq
xor eax, edx
sub eax, edx
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x28], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10075638]
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movss xmm2, dword [esp + 0x28]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mov eax, dword [edi + 0xdc]
mov edx, dword [esp + 0x20]
dec edx
mov dword [esp + 0x20], edx
imul esi, dword [esp + 0x34]
movaps xmm0, xmm2
addss xmm1, dword [esp + 0x38]
mulss xmm0, dword [0x1007562c]
mulss xmm2, dword [0x10075620]
add esi, dword [esp + 0x1c]
mulss xmm1, xmm0
mulss xmm1, dword [0x10075624]
addss xmm1, xmm2
cvttss2si ecx, xmm1
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov dword [ebx + esi*4], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [edi + 0x10]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, esi
jl 0x1002a481
mov edx, dword [esp + 0x14]
mov eax, ecx
mov ecx, dword [esp + 0x34]
inc ecx
dec edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], edx
cmp ecx, dword [edi + 0xc]
jl 0x1002a430
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
movss xmm1, dword [edi + 0xc0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10075730]
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x1002a58c
subss xmm0, xmm1
jmp 0x1002a58f
xorps xmm0, xmm0
call fcn.10035e20
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov ecx, dword [esp + 0x44]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10034b1d
mov esp, ebp
pop ebp
ret 4