Function at 0x100d2840
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x102ca538
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xc8
mov eax, dword [0x1066bbc0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 4], 0
mov eax, 0x106d6bf0
cmp dword [0x106d6c04], 0xf
push 0
cmova eax, dword [0x106d6bf0]
push 0x10344992
push dword [0x106d6c00]
push eax
call fcn.10055890
add esp, 0x10
test al, al
je 0x100d2ba5
movups xmm0, xmmword [str.Cbvc]
mov al, byte [0x106509a8]
xor edx, edx
cmp dword [0x106d5adc], 2
movups xmmword [ebp - 0xc0], xmm0
mov byte [ebp - 0x78], al
movups xmm0, xmmword [0x10650970]
mov dword [ebp - 0x30], edx
movups xmmword [ebp - 0xb0], xmm0
movups xmm0, xmmword [0x10650980]
movups xmmword [ebp - 0xa0], xmm0
movups xmm0, xmmword [0x10650990]
movups xmmword [ebp - 0x90], xmm0
movq xmm0, qword [0x106509a0]
movq qword [ebp - 0x80], xmm0
jl 0x100d2a60
movaps xmm0, xmmword [0x10654620]
lea edi, [ebp - 0xbc]
movaps xmm4, xmmword [0x106544f0]
movaps xmm3, xmmword [0x10654a40]
movaps xmm5, xmmword [0x10654530]
movaps xmmword [ebp - 0xd0], xmm0
mov ecx, dword [ebp - 0xd0]
nop
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x106545f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xc0]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0xc0], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x106545f0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [edi + edx]
xorps xmm1, xmm0
movd dword [edi + edx], xmm1
add edx, 8
cmp edx, 0x48
jl 0x100d2950
mov dword [ebp - 0x30], edx
cmp edx, 0x49
jge 0x100d2a94
nop dword [eax + eax]
mov eax, 0xa0a0a0a1
imul edx
add edx, dword [ebp - 0x30]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x30]
movsx eax, al
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x30
xor byte [ebp + edx - 0xc0], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0x49
jl 0x100d2a60
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d2ab2
sub ecx, edx
lea eax, [ebp - 0xc0]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.10053700
mov byte [ebp - 4], 1
lea edx, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0xf
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x50]
sub esp, 0x18
mov edi, esp
mov ecx, edx
movups xmmword [edi], xmm0
lea eax, [ecx + 1]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov dword [ebp - 0x30], eax
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d2b00
sub ecx, dword [ebp - 0x30]
push ecx
push edx
mov ecx, edi
call fcn.10053700
lea ecx, [ebp - 0x6c]
call fcn.100d1ce0
add esp, 0x18
mov ecx, 0x106d6bf0
push eax
call fcn.10096c00
mov ecx, dword [ebp - 0x58]
cmp ecx, 0xf
jbe 0x100d2b59
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d2b4f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d2b95
push ecx
push edx
call fcn.102c1b57
add esp, 8
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0xf
mov byte [ebp - 0x6c], 0
cmp ecx, 0xf
jbe 0x100d2ba5
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d2b9b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100d2b9b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.102c1b57
add esp, 8
call fcn.1018cee0
mov edi, eax
test edi, edi
jne 0x100d2cea
mov eax, dword [str.D_4]
xor edx, edx
mov dword [ebp - 0x38], eax
mov al, byte [0x10651144]
mov byte [ebp - 0x34], al
mov dword [ebp - 0x30], edx
nop dword [eax]
mov eax, 0xa0a0a0a1
mul edx
shr edx, 5
movsx eax, dl
mov edx, dword [ebp - 0x30]
mov cl, dl
imul eax, eax, 0x33
sub cl, al
add cl, 0x30
xor byte [ebp + edx - 0x38], cl
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 5
jl 0x100d2bd0
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d2c12
sub ecx, edx
lea eax, [ebp - 0x38]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.10053700
mov byte [ebp - 4], 2
lea edx, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0xf
xorps xmm0, xmm0
movups xmmword [esi], xmm0
cmova edx, dword [ebp - 0x50]
mov ecx, edx
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d2c50
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.10053700
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0xf
jbe 0x100d2c96
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d2c8c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d2dfa
push ecx
push edx
call fcn.102c1b57
add esp, 8
mov ecx, dword [ebx + 0x1c]
cmp ecx, 0xf
jbe 0x100d2cca
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d2cc0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d2dfa
push ecx
push edx
call fcn.102c1b57
add esp, 8
mov eax, esi
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.102c15f2
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 3
sub esp, 0x18
movups xmm0, xmmword [0x106d6bf0]
mov eax, esp
push 0x2712
push edi
movups xmmword [eax], xmm0
movq xmm0, qword [0x106d6c00]
movq qword [eax + 0x10], xmm0
call fcn.10190ca0
push 0
push 0x40
push edi
call fcn.10190ca0
push 0
push 0x51
push edi
call fcn.10190ca0
cmp dword [ebx + 0x1c], 0xf
lea eax, [ebx + 8]
cmova eax, dword [ebx + 8]
push eax
push 0x271f
push edi
call fcn.10190ca0
add esp, 0x44
push 0x100c5d20
push 0x4e2b
push edi
call fcn.10190ca0
lea eax, [ebp - 0x2c]
push eax
push 0x2711
push edi
call fcn.10190ca0
push edi
call fcn.1018cf80
add esp, 0x1c
test eax, eax
jne 0x100d2e00
push edi
call fcn.1018cec0
mov ecx, dword [ebx + 0x1c]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
add esp, 4
mov dword [esi + 0x14], 0
movups xmm0, xmmword [ebp - 0x2c]
mov byte [ebp - 0x2c], 0
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x1c]
movq qword [esi + 0x10], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
cmp ecx, 0xf
jbe 0x100d2cca
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d2cc0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100d2cc0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
sub esp, 0x18
mov esi, esp
push eax
call fcn.1018d940
add esp, 4
mov ecx, esi
push eax
call fcn.10052420
call fcn.100d13d0
int3