Function at 0x670992c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
pxor xmm0, xmm0
pxor xmm1, xmm1
mov ebp, esp
push edi
mov edi, edx
push esi
push ebx
mov ebx, eax
and esp, 0xfffffff0
add esp, 0xffffff80
mov eax, dword [edx + 4]
movaps xmm2, xmmword [0x670ad1d0]
mov ecx, dword [ebx + 4]
movaps xmm3, xmmword [0x670ad1d0]
movzx edx, ax
shr eax, 0x10
cvtsi2ss xmm1, edx
xor edx, edx
cvtsi2ss xmm0, eax
mov eax, dword [ebx + 0x10]
mulss xmm0, dword [0x670ad1c4]
add eax, ecx
addss xmm0, xmm1
pxor xmm1, xmm1
cvtsi2ss xmm1, dword [ebx]
mulss xmm0, xmm1
pxor xmm1, xmm1
divss xmm0, dword [0x670ad1c8]
movss xmm1, xmm0
movaps xmm0, xmm2
cmpleps xmm2, xmm1
andps xmm0, xmm2
subps xmm1, xmm0
pxor xmm0, xmm0
pslld xmm2, 0x1f
cvttps2dq xmm1, xmm1
pxor xmm1, xmm2
movd esi, xmm1
movss xmm2, dword [0x670ad1e8]
sub eax, esi
div ecx
mov ecx, dword [ebx + 0x1c]
movd xmm7, edx
xor edx, edx
punpckldq xmm1, xmm7
movq qword [ebx + 8], xmm1
movzx eax, byte [edi + 0xe]
pxor xmm1, xmm1
cvtsi2ss xmm0, eax
mov eax, dword [ebx + 0x28]
divss xmm0, dword [0x670ad1e0]
mulss xmm0, dword [0x670ad1e4]
add eax, ecx
subss xmm2, xmm0
pxor xmm0, xmm0
cvtsi2ss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x670ad1ec]
divss xmm0, dword [0x670ad1c8]
movss xmm1, xmm0
movaps xmm0, xmm3
cmpleps xmm3, xmm1
movss dword [ebx + 0x30], xmm2
andps xmm0, xmm3
subps xmm1, xmm0
pslld xmm3, 0x1f
cvttps2dq xmm1, xmm1
pxor xmm1, xmm3
movd esi, xmm1
sub eax, esi
div ecx
mov eax, dword [ebx + 0x3c]
test eax, eax
mov dword [esp + 0x30], eax
movd xmm5, edx
punpckldq xmm1, xmm5
movq qword [ebx + 0x20], xmm1
jle 0x67099d51
movss xmm6, dword [0x670ad1f0]
lea eax, [ebx + 0x58]
mov dword [esp + 0x20], ebx
movss xmm4, dword [0x670ad298]
mov dword [esp + 0x24], eax
mov eax, dword [sym.imp.ucrtbase.dll_pow]
movss dword [esp + 0x68], xmm6
movsd xmm5, qword [0x670ad1f8]
movss dword [esp + 0x2c], xmm4
movss xmm6, dword [0x670ad210]
mov dword [esp + 0x28], 0
movss xmm7, dword [0x670ad218]
movsd qword [esp + 0x70], xmm5
movss xmm5, dword [0x670ad220]
movss xmm4, dword [0x670ad234]
mov dword [esp + 0x6c], eax
mov eax, dword [sym.imp.ucrtbase.dll_tan]
movss dword [esp + 0x64], xmm6
movss xmm1, dword [0x670ad294]
movss dword [esp + 0x78], xmm7
movaps xmmword [esp + 0x50], xmm5
movss dword [esp + 0x34], xmm4
mov dword [esp + 0x60], eax
lea esi, [esi]
mov edx, dword [esp + 0x28]
pxor xmm2, xmm2
mov eax, dword [esp + 0x30]
call fcn.67098680
mov ecx, eax
test al, 8
je 0x670994a3
movzx eax, byte [edi + 9]
pxor xmm2, xmm2
cvtsi2ss xmm2, eax
movzx eax, byte [edi + 8]
pxor xmm0, xmm0
mov dword [esp + 0x40], 0
mov esi, dword [esp + 0x24]
movaps xmm3, xmmword [0x670ad1d0]
cvtsi2ss xmm0, eax
mov ebx, dword [esi - 0x14]
mov eax, dword [esi - 8]
addss xmm0, xmm2
pxor xmm2, xmm2
cvtsi2ss xmm2, dword [esi - 0x18]
add eax, ebx
mulss xmm0, xmm2
pxor xmm2, xmm2
divss xmm0, dword [0x670ad1c8]
movss xmm2, xmm0
movaps xmm0, xmm3
cmpleps xmm3, xmm2
andps xmm0, xmm3
subps xmm2, xmm0
pslld xmm3, 0x1f
cvttps2dq xmm2, xmm2
pxor xmm2, xmm3
movd edx, xmm2
sub eax, edx
xor edx, edx
div ebx
and ecx, 2
movd xmm5, edx
punpckldq xmm2, xmm5
movq qword [esi - 0x10], xmm2
je 0x6709952f
movss xmm5, dword [0x670ad200]
movss dword [esp + 0x40], xmm5
mov ebx, dword [esp + 0x24]
xor esi, esi
jmp 0x670997fd
mulss xmm2, dword [0x670ad1c8]
mov eax, dword [ebx + 8]
pxor xmm0, xmm0
pxor xmm3, xmm3
add esi, 1
movsd xmm7, qword [esp + 0x70]
movss dword [esp + 0x38], xmm1
add ebx, 0x6c
movzx edx, ax
shr eax, 0x10
cvtsi2ss xmm3, edx
cvtsi2ss xmm0, eax
mov eax, dword [esp + 0x6c]
mulss xmm0, dword [0x670ad1c4]
addss xmm0, xmm3
pxor xmm3, xmm3
mulss xmm0, dword [0x670ad208]
mulss xmm0, dword [0x670ad1c8]
cvtsi2ss xmm3, dword [ebx - 0x6c]
movsd qword [esp], xmm7
mulss xmm2, xmm3
divss xmm0, xmm2
cvtss2sd xmm0, xmm0
movsd qword [esp + 8], xmm0
call eax
pxor xmm0, xmm0
pxor xmm2, xmm2
cvtsi2ss xmm2, dword [ebx - 0x50]
fstp qword [esp + 0x48]
movsd xmm7, qword [esp + 0x70]
cvtsd2ss xmm0, qword [esp + 0x48]
movss dword [ebx - 0x54], xmm0
movzx eax, byte [edi + 0x11]
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
movzx eax, byte [edi + 0x10]
movsd qword [esp], xmm7
mulss xmm0, dword [0x670ad20c]
addss xmm0, dword [0x670ad20c]
mulss xmm0, dword [esp + 0x64]
divss xmm0, xmm2
pxor xmm2, xmm2
cvtsi2ss xmm2, eax
mov eax, dword [esp + 0x6c]
subss xmm2, dword [0x670ad214]
divss xmm2, dword [esp + 0x68]
cvtss2sd xmm2, xmm2
movsd qword [esp + 8], xmm2
movss dword [esp + 0x44], xmm0
call eax
movss xmm0, dword [esp + 0x44]
pxor xmm2, xmm2
mulss xmm0, dword [esp + 0x78]
fstp qword [esp + 0x48]
cvtsd2ss xmm2, qword [esp + 0x48]
mov edx, dword [esp + 0x60]
movss dword [esp + 0x48], xmm2
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call edx
movss xmm2, dword [esp + 0x48]
mov dword [ebx - 0x44], 0
movss xmm1, dword [esp + 0x38]
fstp qword [esp + 0x48]
movaps xmm0, xmm2
mov dword [ebx - 0x3c], 0
movss xmm3, dword [0x670ad21c]
addss xmm0, xmm1
movss dword [ebx - 0x34], xmm1
movsd xmm7, qword [esp + 0x70]
subss xmm2, xmm1
divss xmm3, xmm0
pxor xmm0, xmm0
cvtsd2ss xmm0, qword [esp + 0x48]
movss dword [ebx - 0x38], xmm2
pxor xmm2, xmm2
cvtsi2ss xmm2, dword [ebx - 0x28]
mulss xmm3, xmm0
movaps xmm0, xmm1
subss xmm0, xmm3
addss xmm3, xmm1
divss xmm0, xmm3
movaps xmm3, xmm1
subss xmm3, xmm0
mulss xmm3, dword [esp + 0x78]
xorps xmm0, xmmword [esp + 0x50]
movss dword [ebx - 0x40], xmm0
pxor xmm0, xmm0
movss dword [ebx - 0x4c], xmm3
movss dword [ebx - 0x48], xmm3
movzx eax, byte [edi + 0x13]
cvtsi2ss xmm0, eax
movzx eax, byte [edi + 0x12]
movsd qword [esp], xmm7
mulss xmm0, dword [0x670ad230]
addss xmm0, dword [0x670ad1c8]
mulss xmm0, dword [esp + 0x64]
divss xmm0, xmm2
pxor xmm2, xmm2
cvtsi2ss xmm2, eax
subss xmm2, dword [0x670ad214]
divss xmm2, dword [esp + 0x68]
cvtss2sd xmm2, xmm2
movsd qword [esp + 8], xmm2
movss dword [esp + 0x44], xmm0
mov eax, dword [esp + 0x6c]
call eax
movss xmm0, dword [esp + 0x44]
pxor xmm2, xmm2
mulss xmm0, dword [esp + 0x78]
fstp qword [esp + 0x48]
cvtsd2ss xmm2, qword [esp + 0x48]
mov edx, dword [esp + 0x60]
movss dword [esp + 0x48], xmm2
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call edx
movss xmm2, dword [esp + 0x48]
pxor xmm3, xmm3
mov dword [ebx - 0x1c], 0
movss xmm1, dword [esp + 0x38]
fstp qword [esp + 0x48]
movaps xmm0, xmm2
cvtsd2ss xmm3, qword [esp + 0x48]
movaps xmm5, xmmword [esp + 0x50]
mov dword [ebx - 0x14], 0
addss xmm0, xmm1
mulss xmm0, dword [esp + 0x34]
movss dword [ebx - 0xc], xmm1
subss xmm2, xmm1
mulss xmm0, xmm3
movaps xmm3, xmm1
movss dword [ebx - 0x10], xmm2
subss xmm3, xmm0
addss xmm0, xmm1
divss xmm3, xmm0
movaps xmm0, xmm3
xorps xmm3, xmm5
movss dword [ebx - 0x18], xmm3
addss xmm0, xmm1
mulss xmm0, dword [esp + 0x78]
movss dword [ebx - 0x24], xmm0
xorps xmm0, xmm5
movss dword [ebx - 0x20], xmm0
cmp esi, 8
je 0x67099888
pxor xmm2, xmm2
cvtsi2ss xmm2, dword [ebx]
movss xmm0, dword [esp + 0x40]
addss xmm0, dword [esi*4 + 0x670ad1a0]
movaps xmm3, xmmword [0x670ad1d0]
mov ecx, dword [ebx + 4]
mulss xmm0, xmm2
pxor xmm2, xmm2
mov eax, dword [ebx + 0x10]
divss xmm0, dword [0x670ad1c8]
movss xmm2, xmm0
movaps xmm0, xmm3
cmpleps xmm3, xmm2
add eax, ecx
andps xmm0, xmm3
subps xmm2, xmm0
pslld xmm3, 0x1f
cvttps2dq xmm2, xmm2
pxor xmm2, xmm3
movd edx, xmm2
sub eax, edx
xor edx, edx
div ecx
movd xmm7, edx
punpckldq xmm2, xmm7
movq qword [ebx + 8], xmm2
movss xmm2, dword [edi + 0x28]
comiss xmm2, dword [0x670ad204]
ja 0x67099540
movss xmm2, dword [esp + 0x2c]
jmp 0x67099548
add dword [esp + 0x28], 1
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
add dword [esp + 0x24], 0x418
cmp eax, esi
jne 0x67099480
mov ebx, dword [esp + 0x20]
movsd xmm5, qword [esp + 0x70]
movss dword [esp + 0x50], xmm1
mov esi, dword [esp + 0x6c]
movss xmm0, dword [edi + 0x20]
movsd qword [esp], xmm5
divss xmm0, dword [esp + 0x68]
cvtss2sd xmm0, xmm0
movsd qword [esp + 8], xmm0
call esi
movsd xmm5, qword [esp + 0x70]
pxor xmm6, xmm6
fstp qword [esp + 0x78]
cvtsd2ss xmm6, qword [esp + 0x78]
movss dword [ebx + 0x14b8], xmm6
movss xmm0, dword [edi + 0x24]
divss xmm0, dword [esp + 0x68]
movss dword [esp + 0x24], xmm6
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm5
movsd qword [esp + 8], xmm0
call esi
movsd xmm5, qword [esp + 0x70]
pxor xmm0, xmm0
fstp qword [esp + 0x78]
cvtsd2ss xmm0, qword [esp + 0x78]
movss dword [ebx + 0x14bc], xmm0
movss xmm0, dword [edi + 0x18]
divss xmm0, dword [esp + 0x68]
movsd qword [esp], xmm5
cvtss2sd xmm0, xmm0
movsd qword [esp + 8], xmm0
call esi
pxor xmm0, xmm0
mov esi, dword [esp + 0x30]
fstp qword [esp + 0x78]
movss xmm1, dword [esp + 0x50]
movss xmm4, dword [0x670ad1e8]
cvtsd2ss xmm0, qword [esp + 0x78]
movss dword [ebx + 0x14c0], xmm0
pxor xmm0, xmm0
movzx eax, byte [edi + 0xf]
test esi, esi
cvtsi2ss xmm0, eax
divss xmm0, dword [0x670ad1e0]
mulss xmm0, dword [0x670ad1e4]
subss xmm4, xmm0
jle 0x67099c63
movss xmm6, dword [0x670ad210]
mov esi, edi
mov edi, ebx
movss xmm5, dword [0x670ad220]
mov eax, dword [sym.imp.ucrtbase.dll_tan]
mov dword [esp + 0x48], 0
movss xmm7, dword [0x670ad218]
movss dword [esp + 0x64], xmm6
movss xmm6, dword [0x670ad234]
movaps xmmword [esp + 0x50], xmm5
movss dword [esp + 0x78], xmm7
mov dword [esp + 0x60], eax
movss dword [esp + 0x34], xmm6
movss dword [esp + 0x20], xmm4
mov dword [esp + 0x1c], ebx
lea esi, [esi]
mov edx, dword [esp + 0x48]
pxor xmm3, xmm3
mov eax, dword [esp + 0x30]
call fcn.67098680
mov dword [esp + 0x44], eax
and eax, 2
mov dword [esp + 0x28], eax
je 0x67099a1e
movss xmm3, dword [0x670ad200]
movss xmm4, dword [esp + 0x20]
mov ecx, edi
xor ebx, ebx
movss xmm0, dword [ebx*4 + 0x670ad190]
pxor xmm2, xmm2
cvtsi2ss xmm2, dword [ecx + 0x3b8]
add ebx, 1
movaps xmm5, xmmword [0x670ad1d0]
movss dword [ecx + 0x3d0], xmm4
addss xmm0, xmm3
mov eax, dword [ecx + 0x3bc]
add eax, dword [ecx + 0x3c8]
mulss xmm0, xmm2
pxor xmm2, xmm2
divss xmm0, dword [0x670ad1c8]
movss xmm2, xmm0
movaps xmm0, xmm5
cmpleps xmm5, xmm2
andps xmm0, xmm5
subps xmm2, xmm0
pslld xmm5, 0x1f
cvttps2dq xmm2, xmm2
pxor xmm2, xmm5
movd edx, xmm2
sub eax, edx
xor edx, edx
div dword [ecx + 0x3bc]
add ecx, 0x1c
movd xmm7, edx
punpckldq xmm2, xmm7
movq qword [ecx + 0x3a4], xmm2
cmp ebx, 4
jne 0x67099a28
movss xmm0, dword [esp + 0x64]
pxor xmm2, xmm2
movss dword [esp + 0x40], xmm1
cvtsi2ss xmm2, dword [edi + 0x428]
mulss xmm0, dword [esi + 0x14]
movsd xmm5, qword [esp + 0x70]
mov eax, dword [esp + 0x6c]
divss xmm0, xmm2
movd ebx, xmm0
movss xmm0, dword [esi + 0x18]
addss xmm0, dword [esi + 0x1c]
movsd qword [esp], xmm5
divss xmm0, dword [esp + 0x68]
cvtss2sd xmm0, xmm0
movsd qword [esp + 8], xmm0
call eax
movd xmm0, ebx
mov eax, dword [esp + 0x60]
pxor xmm2, xmm2
mulss xmm0, dword [esp + 0x78]
fstp qword [esp + 0x38]
cvtsd2ss xmm2, qword [esp + 0x38]
movss dword [esp + 0x38], xmm2
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call eax
movss xmm2, dword [esp + 0x38]
pxor xmm3, xmm3
mov dword [edi + 0x434], 0
movss xmm1, dword [esp + 0x40]
fstp qword [esp + 0x38]
movaps xmm0, xmm2
cvtsd2ss xmm3, qword [esp + 0x38]
movss xmm4, dword [esp + 0x78]
mov dword [edi + 0x43c], 0
addss xmm0, xmm1
mulss xmm0, dword [esp + 0x34]
movss dword [edi + 0x444], xmm1
mov eax, dword [esp + 0x44]
subss xmm2, xmm1
movaps xmm7, xmmword [esp + 0x50]
mulss xmm0, xmm3
movaps xmm3, xmm1
movss dword [edi + 0x440], xmm2
mov edx, eax
and edx, 8
subss xmm3, xmm0
addss xmm0, xmm1
divss xmm3, xmm0
movaps xmm0, xmm3
xorps xmm3, xmm7
movss dword [edi + 0x438], xmm3
addss xmm0, xmm1
mulss xmm0, xmm4
movss dword [edi + 0x42c], xmm0
xorps xmm0, xmm7
movss dword [edi + 0x430], xmm0
test al, 1
je 0x67099c90
movzx eax, byte [esi + 0xc]
pxor xmm0, xmm0
movss xmm2, dword [0x670ad23c]
cvtsi2ss xmm0, eax
divss xmm0, dword [0x670ad238]
mulss xmm0, xmm4
subss xmm2, xmm0
test edx, edx
jne 0x67099cf0
movss dword [edi + 0x454], xmm2
movzx eax, byte [esi + 0xa]
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
divss xmm0, dword [0x670ad240]
add dword [esp + 0x48], 1
add edi, 0x418
movss xmm2, dword [0x670ad244]
mulss xmm0, dword [0x670ad1e4]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
subss xmm2, xmm0
mulss xmm2, dword [esp + 0x24]
movss dword [edi + 0x38], xmm2
cmp eax, ecx
jne 0x670999f8
mov ebx, dword [esp + 0x1c]
mov edi, esi
movss xmm0, dword [edi]
divss xmm0, dword [esp + 0x2c]
subss xmm1, xmm0
movss dword [ebx + 0x14c4], xmm0
movss dword [ebx + 0x14c8], xmm1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x28]
movzx eax, byte [esi + 0xd]
test ecx, ecx
je 0x67099d38
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
divss xmm0, dword [0x670ad238]
mulss xmm0, dword [esp + 0x78]
movss xmm2, dword [0x670ad23c]
subss xmm2, xmm0
test edx, edx
je 0x67099d28
mulss xmm2, dword [0x670ad248]
movss dword [edi + 0x454], xmm2
mov edx, dword [esp + 0x28]
movzx eax, byte [esi + 0xb]
test edx, edx
je 0x67099d08
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
jmp 0x67099c1b
mulss xmm2, dword [0x670ad248]
movss dword [edi + 0x454], xmm2
jmp 0x67099c0f
movzx edx, byte [esi + 0xa]
pxor xmm0, xmm0
add edx, eax
cvtsi2ss xmm0, edx
mulss xmm0, dword [esp + 0x78]
jmp 0x67099c1b
movss dword [edi + 0x454], xmm2
jmp 0x67099cd6
movzx ecx, byte [esi + 0xc]
pxor xmm0, xmm0
add eax, ecx
cvtsi2ss xmm0, eax
mulss xmm0, dword [esp + 0x78]
jmp 0x67099ca8
movss xmm4, dword [0x670ad1f0]
mov eax, dword [sym.imp.ucrtbase.dll_pow]
movss xmm1, dword [0x670ad294]
movss dword [esp + 0x68], xmm4
movsd xmm4, qword [0x670ad1f8]
movsd qword [esp + 0x70], xmm4
movss xmm4, dword [0x670ad298]
mov dword [esp + 0x6c], eax
movss dword [esp + 0x2c], xmm4
jmp 0x670998a9