Function at 0x1003a720
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10100129
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x250
mov eax, dword [0x1011900c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x1045f9a4]
movss xmm2, dword [0x1010da80]
movss xmm1, dword [0x1010da74]
movss xmm4, dword [0x1010d898]
movss xmm3, dword [eax]
mulss xmm3, dword [0x1010d80c]
mov dword [0x1046556c], 1
mov dword [0x10465524], 1
movss dword [ebp - 0x18], xmm3
movss dword [0x10465570], xmm3
mulss xmm3, dword [0x1010d934]
andps xmm2, xmm3
movaps xmm0, xmm3
xorps xmm0, xmm2
cmpltss xmm0, xmm1
andps xmm1, xmm0
movaps xmm0, xmm3
orps xmm1, xmm2
addss xmm0, xmm1
subss xmm0, xmm1
movaps xmm1, xmm0
subss xmm1, xmm3
cmpnless xmm1, xmm2
andps xmm1, xmm4
subss xmm0, xmm1
call fcn.100fe8c0
movss xmm4, dword [ebp - 0x18]
mov esi, eax
mulss xmm4, dword [0x1010d934]
mov ecx, esi
mov eax, 0xaaaaaaab
shr ecx, 0x1f
movss xmm3, dword [0x1010d898]
movd xmm0, esi
movaps xmm5, xmm3
cvtdq2pd xmm0, xmm0
mov dword [0x1046551c], esi
mov dword [0x10465564], 0
mul esi
addsd xmm0, qword [ecx*8 + 0x1010db40]
cvtpd2ps xmm0, xmm0
shr edx, 2
lea eax, [edx + edx*2]
add eax, eax
subss xmm4, xmm0
sub esi, eax
xorps xmm0, xmm0
movss dword [ebp - 0x18], xmm0
movss dword [0x1046552c], xmm4
subss xmm5, xmm4
movss dword [0x10465534], xmm4
movss dword [0x10465538], xmm5
cmp esi, 5
ja case.default.0x1003a86c
jmp dword [esi*4 + 0x1003b114]
movaps xmm1, xmm3
movaps xmm2, xmm4
jmp 0x1003a8cc
movaps xmm1, xmm5
movaps xmm2, xmm3
jmp 0x1003a8c7
xorps xmm1, xmm1
movaps xmm2, xmm3
movaps xmm0, xmm4
jmp 0x1003a8c7
xorps xmm1, xmm1
movaps xmm2, xmm5
movaps xmm0, xmm3
jmp 0x1003a8c7
movaps xmm1, xmm4
xorps xmm2, xmm2
movaps xmm0, xmm3
jmp 0x1003a8c7
movaps xmm1, xmm3
xorps xmm2, xmm2
movaps xmm0, xmm5
jmp 0x1003a8c7
movss xmm1, dword [0x10465510]
movss xmm2, dword [0x10465540]
movss xmm0, dword [0x10465558]
movss dword [ebp - 0x18], xmm0
mulss xmm1, dword [0x1010da34]
push ecx
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x17c], xmm1
fld dword [ebp - 0x17c]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm0, dword [ebp - 0x1c]
mulss xmm0, dword [0x1010da34]
fstp dword [0x10465510]
movss dword [ebp - 0x17c], xmm0
fld dword [ebp - 0x17c]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm0, dword [ebp - 0x18]
mulss xmm0, dword [0x1010da34]
fstp dword [0x10465540]
movss dword [ebp - 0x17c], xmm0
fld dword [ebp - 0x17c]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
cmp byte [0x104311b4], 0
fstp dword [0x10465558]
je 0x1003b0f6
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
add esp, 4
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0xe0]
mov dword [ebp - 0x2c], edx
push 0x98
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0xe0]
call fcn.10033290
lea eax, [ebp - 0x30]
mov dword [ebp - 4], 0
push eax
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__localtime64]
mov dword [ebp - 0x190], eax
add esp, 4
mov dword [ebp - 0x18c], str._H:_M:_S
mov eax, str._H:_M:_S
mov dword [ebp - 0x188], str._H:_M:_S
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x1003a9c0
lea edx, [ebp - 0x190]
mov dword [ebp - 0x188], eax
lea ecx, [ebp - 0xe0]
call fcn.1003f9d0
lea eax, [ebp - 0x1dc]
push eax
lea ecx, [ebp - 0xdc]
call fcn.100334f0
mov byte [ebp - 4], 1
lea eax, [ebp - 0x1dc]
movaps xmm0, xmmword [0x1010e000]
cmp dword [ebp - 0x1c8], 0x10
movups xmmword [ebp - 0x1c4], xmm0
cmovae eax, dword [ebp - 0x1dc]
movaps xmm0, xmmword [0x1010dd00]
movups xmmword [ebp - 0x1b4], xmm0
mov dword [ebp - 0x17c], eax
xor eax, eax
movaps xmm0, xmmword [0x1010e280]
movups xmmword [ebp - 0x1a4], xmm0
mov word [ebp - 0x194], 0x93c5
mov byte [ebp - 0x192], 0xe0
nop dword [eax]
movups xmm0, xmmword [ebp + eax - 0x1c4]
movaps xmm1, xmmword [0x1010e810]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 0x1c4], xmm1
add eax, 0x10
cmp eax, 0x30
jb 0x1003aa50
cmp eax, 0x33
jae 0x1003aa8e
nop dword [eax + eax]
xor byte [ebp + eax - 0x1c4], 0xe0
inc eax
cmp eax, 0x33
jb 0x1003aa80
lea eax, [ebp - 0x17c]
push eax
lea edx, [ebp - 0x1c4]
lea ecx, [ebp - 0x48]
call fcn.100335e0
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x1c8]
cmp ecx, 0x10
jb 0x1003aae6
mov edx, dword [ebp - 0x1dc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1003aadc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1003aadc
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100fda60
add esp, 8
mov ecx, dword [0x1045f948]
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x1c8], 0xf
mov byte [ebp - 0x1dc], 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1003ae2b
movss xmm0, dword [0x1041d388]
mulss xmm0, dword [0x1010da5c]
push ecx
movss dword [ebp - 0x18], xmm0
fld dword [ebp - 0x18]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm4, dword [0x1010d898]
xor eax, eax
fstp dword [ebp - 0x18]
cvttss2si ecx, dword [ebp - 0x18]
test ecx, ecx
cmovg eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [0x1045f9a4]
divss xmm4, dword [eax + 0x20]
movss dword [ebp - 0x18], xmm4
fld dword [ebp - 0x18]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
fstp dword [ebp - 0x18]
cvttss2si eax, dword [ebp - 0x18]
add esp, 4
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x260]
push eax
call fcn.100334f0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x260]
movaps xmm4, xmmword [0x1010e810]
mov ecx, 0x40
cmp dword [ebp - 0x24c], 0x10
movaps xmm0, xmmword [0x1010e000]
movaps xmm1, xmmword [0x1010dd00]
pxor xmm0, xmm4
movaps xmm2, xmmword [0x1010e0e0]
pxor xmm1, xmm4
movaps xmm3, xmmword [0x1010df50]
pxor xmm2, xmm4
cmovae eax, dword [ebp - 0x260]
pxor xmm3, xmm4
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x208], 0xda859481
mov dword [ebp - 0x204], 0xc089c5c0
mov dword [ebp - 0x200], 0x93c5c09c
mov byte [ebp - 0x1fc], 0xe0
movups xmmword [ebp - 0x248], xmm0
movups xmmword [ebp - 0x238], xmm1
movups xmmword [ebp - 0x228], xmm2
movups xmmword [ebp - 0x218], xmm3
xor byte [ebp + ecx - 0x248], 0xe0
inc ecx
cmp ecx, 0x4d
jb 0x1003ac22
push 0x98
lea eax, [ebp - 0x178]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x178]
call fcn.10033290
lea eax, [ebp - 0x1b8]
mov byte [ebp - 4], 5
mov dword [ebp - 0x1c0], eax
mov esi, eax
mov dword [ebp - 0x1bc], 3
mov edi, 3
mov ecx, esi
call fcn.1001f710
add esi, 0xc
sub edi, 1
jne 0x1003ac72
push dword [ebp - 0x1bc]
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18c], 0x10040590
push dword [ebp - 0x1c0]
mov dword [ebp - 0x190], eax
lea edx, [ebp - 0x248]
movq xmm0, qword [ebp - 0x190]
lea eax, [ebp - 0x18]
mov dword [ebp - 0x190], eax
lea ecx, [ebp - 0x178]
movq qword [ebp - 0x1b8], xmm0
lea eax, [ebp - 0x180]
mov dword [ebp - 0x18c], 0x10040590
movq xmm0, qword [ebp - 0x190]
movq qword [ebp - 0x1ac], xmm0
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], 0x10033900
movq xmm0, qword [ebp - 0x190]
mov dword [ebp - 0x1b0], 0x10040710
mov dword [ebp - 0x1a4], 0x10040710
movq qword [ebp - 0x1a0], xmm0
mov dword [ebp - 0x198], fcn.10033920
call fcn.10030f40
add esp, 8
lea eax, [ebp - 0x1f4]
lea ecx, [ebp - 0x174]
push eax
call fcn.100334f0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x178]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x178], 0x1010b618
mov eax, dword [ebp - 0x178]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x17c], eax
lea ecx, [ebp - 0x174]
call fcn.1002ec40
lea ecx, [ebp - 0x170]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x128]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
lea eax, [ebp - 0x1f4]
push eax
lea ecx, [ebp - 0x48]
call fcn.1003eda0
mov ecx, dword [ebp - 0x1e0]
cmp ecx, 0x10
jb 0x1003add0
mov edx, dword [ebp - 0x1f4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1003adc6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003ae1b
push ecx
push edx
call fcn.100fda60
add esp, 8
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x24c]
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x1e0], 0xf
mov byte [ebp - 0x1f4], 0
cmp ecx, 0x10
jb 0x1003ae2b
mov edx, dword [ebp - 0x260]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1003ae21
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1003ae21
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100fda60
add esp, 8
lea eax, [ebp - 0x48]
mov ecx, 0x1045fc74
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.100ef450
mov edi, dword [0x1041d398]
mov esi, dword [ebp - 0x24]
sub edi, esi
mov ecx, dword [0x1045f954]
sub edi, 0x14
cmp byte [0x104317e0], 0
push 0xff0c0c0c
je 0x1003af69
cvttss2si eax, dword [0x10465558]
mov dword [ebp - 0x180], eax
cvttss2si eax, dword [0x10465540]
mov dword [ebp - 0x1c], eax
cvttss2si eax, dword [0x10465510]
mov dword [ebp - 0x184], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1045f954]
push 0x1e
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
lea eax, [esi + 0xa]
add eax, edi
push eax
push 0xd
push edi
call edx
mov eax, dword [ebp - 0x180]
mov ecx, 0xff
movzx esi, al
mov eax, dword [ebp - 0x1c]
movzx edi, al
mov dword [ebp - 0x180], ecx
lea edx, [esi + 0x32]
mov dword [ebp - 0x18], esi
cmp edx, ecx
lea eax, [edi + 0x32]
cmova edx, ecx
cmp eax, ecx
movzx edx, dl
cmova eax, ecx
mov ecx, dword [ebp - 0x184]
movzx esi, cl
movzx eax, al
lea ecx, [esi + 0x32]
cmp ecx, 0xff
cmova ecx, dword [ebp - 0x180]
or edx, 0xffffff00
shl edx, 8
or edx, eax
movzx eax, cl
mov ecx, dword [0x1041d398]
shl edx, 8
or edx, eax
mov eax, dword [ebp - 0x18]
or eax, 0xffffff00
mov dword [ebp - 0x184], edx
shl eax, 8
or eax, edi
shl eax, 8
or eax, esi
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
sub ecx, eax
mov esi, dword [ebp - 0x18]
sub ecx, 0x14
push edx
cdq
sub eax, edx
push esi
sar eax, 1
push ecx
add eax, 0xe
push eax
call fcn.100eed70
mov eax, dword [ebp - 0x24]
add esp, 0x10
mov ecx, dword [0x1041d398]
cdq
sub eax, edx
sar eax, 1
push esi
push dword [ebp - 0x184]
sub ecx, eax
sub ecx, 0xa
push ecx
push eax
jmp 0x1003b037
mov eax, dword [0x104316e4]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1045f954]
push 0x1e
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
lea eax, [esi + 0xa]
add eax, edi
push eax
push 0xd
push edi
call edx
mov eax, dword [ebp - 0x18]
mov esi, 0xff
mov ecx, eax
movzx edx, al
shr ecx, 0x10
movzx ecx, cl
add ecx, 0x32
cmp ecx, esi
cmova ecx, esi
mov dword [ebp - 0x184], ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add ecx, 0x32
cmp ecx, esi
cmova ecx, esi
add edx, 0x32
cmp edx, esi
mov dword [ebp - 0x180], ecx
mov ecx, dword [ebp - 0x184]
cmova edx, esi
movzx esi, cl
mov ecx, dword [ebp - 0x180]
movzx ecx, cl
shl esi, 8
or esi, ecx
mov ecx, eax
and ecx, 0xff000000
shl esi, 8
or esi, ecx
movzx ecx, dl
or esi, ecx
mov ecx, dword [0x1041d398]
sub ecx, dword [ebp - 0x24]
push esi
push eax
mov eax, dword [ebp - 0x24]
sub ecx, 0x14
cdq
sub eax, edx
sar eax, 1
push ecx
add eax, 0xe
push eax
call fcn.100eed70
mov eax, dword [ebp - 0x24]
add esp, 0x10
mov ecx, dword [0x1041d398]
cdq
sub eax, edx
mov edx, eax
mov eax, dword [ebp - 0x18]
sar edx, 1
push eax
sub ecx, edx
push esi
sub ecx, 0xa
push ecx
push edx
call fcn.100eed70
mov edx, dword [0x1041d398]
lea eax, [ebp - 0x48]
add esp, 0x10
add edx, 0xfffffff2
push 1
push eax
push ecx
mov eax, esp
mov ecx, 0x1045fc74
push 0xf
push edx
mov dword [eax], 0xffffffff
call fcn.100ef200
mov ecx, dword [ebp - 0x34]
cmp ecx, 0x10
jb 0x1003b09a
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1003b090
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1003b090
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100fda60
add esp, 8
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], 0
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xe0], 0x1010b618
mov eax, dword [ebp - 0xe0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0xe4], eax
lea ecx, [ebp - 0xdc]
call fcn.1002ec40
lea ecx, [ebp - 0xd8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x90]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100fd5e5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret