Function at 0x10111980
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 0x101229e1
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1b0
push esi
push edi
mov eax, dword [0x10135364]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [0x10142740]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0
test ecx, ecx
je 0x10111a11
cmp byte [0x1014bd38], 0
je 0x10111a11
cmp byte [0x10142744], 0
jne 0x10111a25
mov eax, dword [0x101fe754]
cmp eax, dword [0x101fe758]
je 0x10111a11
mov dword [0x101fe758], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov esi, dword [0x101fe758]
sub esi, dword [0x101fe754]
sar esi, 5
mov dword [ebp - 0x50], esi
test esi, esi
je 0x10111a11
mov eax, dword [0x101fdc5c]
movss xmm0, dword [ebp - 0x154]
add eax, 0xffffffbf
xor eax, 0x9a5f6e3b
movss dword [ebp - 0x70], xmm0
movss xmm0, dword [ebp - 0x158]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [ebp - 0x15c]
movd xmm2, dword [eax + ecx]
mov eax, dword [0x101fda48]
cvtdq2ps xmm2, xmm2
movss dword [ebp - 0x68], xmm0
mulss xmm2, dword [eax + 0x20]
mov eax, esi
movss dword [ebp - 0x74], xmm2
mov edx, eax
dec eax
mov edi, eax
mov dword [ebp - 0xa4], eax
shl edi, 5
add edi, dword [0x101fe754]
mov dword [ebp - 0x54], edi
je 0x101124d8
mov ecx, dword [edi + 0x18]
movaps xmm0, xmm2
mov eax, dword [0x101fda48]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [eax + 0x20]
subss xmm0, xmm1
call fcn.10055010
comiss xmm0, dword [0x1014bf3c]
jbe 0x10111b37
mov eax, dword [0x101fe758]
lea esi, [edi + 0x20]
mov dword [ebp - 0x58], eax
cmp esi, eax
je 0x10111b2b
lea ecx, [edi + 0x14]
lea edx, [edi + 0x34]
mov eax, dword [esi]
lea edi, [edi + 0x20]
mov dword [edi - 0x20], eax
lea ecx, [ecx + 0x20]
mov eax, dword [edx - 0x10]
lea edx, [edx + 0x20]
mov dword [ecx - 0x30], eax
add esi, 0x20
mov eax, dword [edx - 0x2c]
mov dword [ecx - 0x2c], eax
mov eax, dword [edx - 0x28]
mov dword [ecx - 0x28], eax
mov eax, dword [edx - 0x24]
mov dword [ecx - 0x24], eax
mov eax, dword [edx - 0x20]
mov dword [ecx - 0x20], eax
mov eax, dword [edx - 0x1c]
mov dword [ecx - 0x1c], eax
movzx eax, byte [edx - 0x18]
mov byte [ecx - 0x18], al
movzx eax, byte [edx - 0x17]
mov byte [ecx - 0x17], al
cmp esi, dword [ebp - 0x58]
jne 0x10111ae3
sub dword [0x101fe758], 0x20
jmp 0x101124d5
cmp byte [edi + 0x1c], 0
jne 0x101124d8
lea eax, [esi - 1]
cmp dword [ebp - 0xa4], eax
je 0x10111b5d
cmp edx, esi
jae 0x101124d8
cmp ecx, dword [edi + 0x38]
je 0x101124d8
movss xmm0, dword [edi + 0xc]
movss xmm1, dword [edi + 0x10]
movss xmm4, dword [edi]
movss xmm3, dword [edi + 4]
movaps xmm6, xmm4
movss xmm2, dword [edi + 0x14]
subss xmm6, xmm0
movaps xmm7, xmm3
movss dword [ebp - 0xa0], xmm0
subss xmm7, xmm1
movss dword [ebp - 0x98], xmm0
movss dword [ebp - 0x64], xmm2
subss xmm4, xmm0
movss dword [ebp - 0x58], xmm1
subss xmm3, xmm1
movss dword [ebp - 0x94], xmm1
movaps xmm0, xmm6
movss dword [ebp - 0x90], xmm2
movss xmm2, dword [edi + 8]
movaps xmm1, xmm7
movaps xmm5, xmm2
mulss xmm0, xmm6
subss xmm5, dword [ebp - 0x64]
subss xmm2, dword [ebp - 0x64]
mulss xmm1, xmm7
addss xmm0, xmm1
movaps xmm1, xmm5
mulss xmm1, xmm5
addss xmm0, xmm1
call fcn.10048900
addss xmm0, dword [0x101283c4]
mulss xmm4, xmm4
mulss xmm3, xmm3
mulss xmm2, xmm2
addss xmm4, xmm3
divss xmm6, xmm0
addss xmm4, xmm2
divss xmm7, xmm0
divss xmm5, xmm0
movaps xmm0, xmm4
call fcn.10048900
movaps xmm3, xmm0
movaps xmm1, xmm7
movaps xmm0, xmm6
mulss xmm1, xmm7
mulss xmm0, xmm6
movss dword [ebp - 0x14], xmm3
addss xmm0, xmm1
call fcn.10048900
movaps xmm1, xmm0
xorps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x10111c72
movaps xmm0, xmm5
xorps xmm0, xmmword [0x10129a80]
call fcn.100488b0
movaps xmm2, xmm0
movaps xmm1, xmm6
mulss xmm2, dword [0x101285c0]
movaps xmm0, xmm7
call fcn.100488b0
mulss xmm0, dword [0x101285c0]
jmp 0x10111c89
comiss xmm5, xmm0
jbe 0x10111c81
movss xmm2, dword [0x101286e4]
jmp 0x10111c89
movss xmm2, dword [0x101285e4]
movss dword [ebp - 0xb0], xmm0
mov eax, 0x10
movss xmm0, dword [ebp - 0xa0]
mulss xmm6, xmm3
mov dword [ebp - 0xac], 0
mulss xmm7, xmm3
mov dword [ebp - 0x24], 0x11524553
addss xmm0, xmm6
mulss xmm5, xmm3
mov dword [ebp - 0x20], 0x544d560e
movss dword [ebp - 0xb4], xmm2
movss dword [ebp - 0xd4], xmm6
movss dword [ebp - 0xb8], xmm7
movss dword [ebp - 0xc8], xmm0
movss xmm0, dword [ebp - 0x58]
addss xmm0, xmm7
movss dword [ebp - 0xbc], xmm5
mov byte [ebp - 0x1c], 0x20
movss dword [ebp - 0xcc], xmm0
movss xmm0, dword [ebp - 0x64]
addss xmm0, xmm5
movss dword [ebp - 0xd0], xmm0
movaps xmm0, xmmword [0x10129170]
xorps xmm0, xmmword [0x10128ed0]
movups xmmword [ebp - 0x34], xmm0
xor byte [ebp + eax - 0x34], 0x20
inc eax
cmp eax, 0x19
jb 0x10111d26
mov ecx, dword [0x101fda20]
lea edx, [ebp - 0x34]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
movaps xmm0, xmmword [0x10129170]
movaps xmm1, xmmword [0x10128ed0]
xorps xmm0, xmm1
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x24], 0x11524553
mov eax, 0x10
mov dword [ebp - 0x20], 0x544d560e
mov byte [ebp - 0x1c], 0x20
movups xmmword [ebp - 0x34], xmm0
xor byte [ebp + eax - 0x34], 0x20
inc eax
cmp eax, 0x19
jb 0x10111d74
movss xmm0, dword [0x1014bf3c]
mov eax, dword [0x1014c020]
movss dword [ebp - 0x60], xmm0
mov byte [ebp - 0x150], 1
test eax, eax
jne 0x10111e21
cmp byte [edi + 0x1d], al
jne 0x10111de3
mov eax, dword [0x1014bddc]
movzx ecx, al
shr eax, 8
movzx eax, al
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x68], xmm0
movd xmm0, eax
movzx eax, byte [0x1014bdde]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x6c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x70], xmm0
jmp 0x101122e2
mov eax, dword [0x1014be98]
movzx ecx, al
shr eax, 8
movzx eax, al
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x68], xmm0
movd xmm0, eax
movzx eax, byte [0x1014be9a]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x6c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x70], xmm0
jmp 0x101122e2
cmp eax, 1
jne 0x101122e2
cmp byte [edi + 0x1d], 0
movss xmm0, dword [ebp - 0x14]
mov eax, dword [0x101fda58]
jne 0x10112066
mov esi, dword [0x1014bddc]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x1020373c]
movss dword [ebp - 0x108], xmm0
mov dword [ebp - 0x104], 0x3e99999a
mov dword [ebp - 0x100], 0x3e99999a
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0xbe99999a
mov dword [ebp - 0x110], 0xbe99999a
test al, 1
jne 0x1011201e
or eax, 1
mov dword [0x1020373c], eax
mov dword [ebp - 4], 0
mov eax, 0x10
movaps xmm0, xmmword [0x10128d90]
xorps xmm0, xmm1
mov dword [ebp - 0x7c], 0x19150064
mov byte [ebp - 0x78], 0x20
movups xmmword [ebp - 0x8c], xmm0
nop
xor byte [ebp + eax - 0x8c], 0x20
inc eax
cmp eax, 0x15
jb 0x10111ec0
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10111ef0
sub ecx, edx
lea eax, [ebp - 0x8c]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.10050420
mov byte [ebp - 4], 1
xor eax, eax
mov dword [ebp - 0x40], 0x45494c43
mov dword [ebp - 0x3c], 0x440e544e
mov word [ebp - 0x38], 0x4c4c
mov byte [ebp - 0x36], 0x20
xor byte [ebp + eax - 0x40], 0x20
inc eax
cmp eax, 0xb
jb 0x10111f27
sub esp, 0x18
lea ecx, [ebp - 0x40]
mov edx, esp
lea edi, [ecx + 1]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10111f51
sub ecx, edi
lea eax, [ebp - 0x40]
push ecx
push eax
mov ecx, edx
call fcn.10050420
lea ecx, [ebp - 0x124]
call fcn.1010a790
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x10111f83
mov ecx, dword [ecx + 0x50]
mov dword [ebp - 0x14], ecx
jmp 0x10111f8a
mov dword [ebp - 0x14], 0
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
test eax, eax
je 0x10111f9b
mov eax, dword [eax + 0x18]
or edx, 1
jmp 0x10111fa0
or edx, 2
xor eax, eax
mov edi, edx
and edi, 0xfffffffd
test dl, 2
cmove edi, edx
mov ecx, edi
mov edx, edi
and edx, 0xfffffffe
test cl, 1
lea ecx, [ebp - 0x34]
cmove edx, edi
push ecx
mov dword [ebp - 0x18], edx
lea ecx, [ebp - 0xc0]
mov edx, dword [ebp - 0x14]
push eax
call fcn.10048b50
mov eax, dword [ebp - 0xc0]
add esp, 8
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x20]
mov dword [0x10203734], eax
cmp ecx, 0x10
jb 0x10112014
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1011200a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x101124fa
push ecx
push edx
call fcn.10116adb
add esp, 8
mov edi, dword [ebp - 0x54]
mov dword [ebp - 4], 0xffffffff
movss xmm0, dword [ebp - 0x60]
mov eax, dword [ebp - 0x100]
push ecx
movss dword [esp], xmm0
movq xmm0, qword [ebp - 0x108]
push esi
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x118]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x110]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0x5c]
jmp 0x1011229d
mov esi, dword [0x1014be98]
mov dword [ebp - 0xa8], eax
mov eax, dword [0x1020373c]
movss dword [ebp - 0xe8], xmm0
mov dword [ebp - 0xe4], 0x3e99999a
mov dword [ebp - 0xe0], 0x3e99999a
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xbe99999a
mov dword [ebp - 0xf0], 0xbe99999a
test al, 1
jne 0x10112257
or eax, 1
mov dword [0x1020373c], eax
mov dword [ebp - 4], 2
mov eax, 0x10
movaps xmm0, xmmword [0x10128d90]
xorps xmm0, xmm1
mov dword [ebp - 0x7c], 0x19150064
mov byte [ebp - 0x78], 0x20
movups xmmword [ebp - 0x8c], xmm0
nop dword [eax]
xor byte [ebp + eax - 0x8c], 0x20
inc eax
cmp eax, 0x15
jb 0x101120f0
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10112120
sub ecx, edx
lea eax, [ebp - 0x8c]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.10050420
mov byte [ebp - 4], 3
xor eax, eax
mov dword [ebp - 0x4c], 0x45494c43
mov dword [ebp - 0x48], 0x440e544e
mov word [ebp - 0x44], 0x4c4c
mov byte [ebp - 0x42], 0x20
xor byte [ebp + eax - 0x4c], 0x20
inc eax
cmp eax, 0xb
jb 0x10112157
sub esp, 0x18
lea ecx, [ebp - 0x4c]
mov edx, esp
lea eax, [ecx + 1]
xorps xmm0, xmm0
mov dword [ebp - 0x5c], eax
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10112184
sub ecx, dword [ebp - 0x5c]
lea eax, [ebp - 0x4c]
push ecx
push eax
mov ecx, edx
call fcn.10050420
lea ecx, [ebp - 0x130]
call fcn.1010a790
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x101121b7
mov ecx, dword [ecx + 0x50]
mov dword [ebp - 0x54], ecx
jmp 0x101121be
mov dword [ebp - 0x54], 0
mov eax, dword [eax]
mov edx, dword [ebp - 0x18]
test eax, eax
je 0x101121d2
mov eax, dword [eax + 0x18]
or edx, 4
mov dword [ebp - 0x14], eax
jmp 0x101121dc
or edx, 8
mov dword [ebp - 0x14], 0
mov ecx, edx
lea eax, [ebp - 0x34]
and ecx, 0xfffffff7
test dl, 8
push eax
push dword [ebp - 0x14]
cmove ecx, edx
mov edx, ecx
and edx, 0xfffffffb
test cl, 4
cmove edx, ecx
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x54]
call fcn.10048b50
mov eax, dword [ebp - 0xc4]
add esp, 8
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x20]
mov dword [0x10203734], eax
cmp ecx, 0x10
jb 0x10112250
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10112246
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x101124fa
push ecx
push edx
call fcn.10116adb
add esp, 8
mov dword [ebp - 4], 0xffffffff
movss xmm0, dword [ebp - 0x60]
mov eax, dword [ebp - 0xe0]
push ecx
movss dword [esp], xmm0
movq xmm0, qword [ebp - 0xe8]
push esi
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0xf8]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0xf0]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0xa8]
movq xmm0, qword [ebp - 0xb4]
sub esp, 0xc
mov eax, dword [ebp - 0xac]
mov edx, esp
sub esp, 0xc
movq qword [edx], xmm0
movq xmm0, qword [ebp - 0x98]
mov dword [edx + 8], eax
mov edx, esp
mov eax, dword [ebp - 0x90]
movq qword [edx], xmm0
mov dword [edx + 8], eax
call dword [0x10203734]
mov byte [edi + 0x1c], 0
mov byte [ebp - 0x150], 0
push dword [ebp - 0x150]
mov ecx, dword [0x101fda78]
call dword [0x101fdb68]
mov esi, eax
test esi, esi
je 0x101124d0
mov ecx, dword [0x101fda48]
mov edx, dword [ebp - 0x9c]
mov ecx, dword [ecx + 0x10]
mov dword [esi + 0xc8], ecx
test edx, edx
js 0x101124d0
mov ecx, dword [0x101fda20]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov edx, eax
test edx, edx
je 0x10112483
mov eax, dword [ebp - 0x9c]
mov dword [esi + 0x30], 0
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], 0xffffffff
mov dword [esi + 0x158], 0
mov dword [esi + 0xf8], 0
mov dword [esi + 0xf4], 0
mov ecx, dword [0x101fda20]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
movss xmm1, dword [ebp - 0x60]
mov dword [esi + 0x15c], eax
mov eax, dword [0x101fda48]
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [0x1012848c]
movss dword [esi + 0xc4], xmm0
movaps xmm0, xmm1
mov eax, dword [0x101fda48]
addss xmm0, dword [eax + 0x10]
mov dword [esi + 0xd8], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0xcc], 0x40000000
mov dword [esi + 0xd0], 0x40000000
movss dword [esi + 0xc8], xmm0
movss xmm0, dword [ebp - 0xa0]
movss dword [esi + 0x3c], xmm0
movss xmm0, dword [ebp - 0x58]
movss dword [esi + 0x40], xmm0
movss xmm0, dword [ebp - 0x64]
movss dword [esi + 0x44], xmm0
movss xmm0, dword [ebp - 0xc8]
movss dword [esi + 0x48], xmm0
movss xmm0, dword [ebp - 0xcc]
movss dword [esi + 0x4c], xmm0
movss xmm0, dword [ebp - 0xd0]
movss dword [esi + 0x50], xmm0
movss xmm0, dword [ebp - 0xd4]
movss dword [esi + 0xb4], xmm0
movss xmm0, dword [ebp - 0xb8]
movss dword [esi + 0xb8], xmm0
movss xmm0, dword [ebp - 0xbc]
movss dword [esi + 0xbc], xmm0
mov dword [esi + 0xd4], 0
mov dword [esi + 0xec], 0x437f0000
mov dword [esi + 0xf0], 0x3f000000
movss dword [esi + 0xdc], xmm1
mov dword [esi + 0xfc], 2
movss xmm0, dword [ebp - 0x68]
movss dword [esi + 0xe0], xmm0
movss xmm0, dword [ebp - 0x6c]
movss dword [esi + 0xe4], xmm0
movss xmm0, dword [ebp - 0x70]
mov dword [esi + 0xf8], 0
mov dword [esi + 0xf4], 0
movss dword [esi + 0xe8], xmm0
mov ecx, dword [0x101fda78]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov byte [edi + 0x1c], 1
movss xmm2, dword [ebp - 0x74]
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0xa4]
test eax, eax
jne 0x10111a88
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3