Function at 0x101d8bf4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x380
mov eax, dword [0x102d4a48]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
mov eax, 0x101d8afa
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, esi
mov dword [ebp - 0x358], 0x101d8a3e
sar edi, 5
cmp dword [ebp + 0x14], 0
mov dword [ebp - 0x364], ebx
cmovne eax, dword [ebp - 0x358]
lea ecx, [edi + 6]
mov dword [ebx + 0x114], eax
cmp dword [0x103eefec], 0
mov dword [ebp - 0x35c], edx
mov dword [ebp - 0x36c], ecx
jne 0x101d8d54
xor ecx, ecx
inc ecx
xor edx, edx
lea eax, [ecx + ecx]
mov byte [ebp + edx - 0x225], cl
xor eax, ecx
mov byte [ebp + edx - 0x324], cl
mov byte [ebp + ecx - 0x124], dl
mov ecx, eax
xor ecx, 0x11b
inc edx
cmp eax, 0xff
cmovle ecx, eax
cmp edx, 0xff
jl 0x101d8c5f
xor edx, edx
test edx, edx
je 0x101d8cad
movzx eax, byte [ebp + edx - 0x124]
lea ecx, [ebp - 0x225]
sub ecx, eax
movzx ecx, byte [ecx]
jmp 0x101d8caf
xor ecx, ecx
lea eax, [ecx + ecx]
xor eax, ecx
add eax, eax
xor eax, ecx
add eax, eax
xor eax, ecx
add eax, eax
xor ecx, eax
mov eax, ecx
xor eax, 0x6300
shr eax, 8
xor eax, ecx
movzx eax, al
mov byte [edx + 0x103ee9f0], al
mov byte [eax + 0x103eeaf0], dl
inc edx
cmp edx, 0x100
jl 0x101d8c94
movaps xmm0, xmmword [0x102962e0]
lea eax, [ebp - 0x324]
push 0x103eeaf0
push eax
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x380]
push eax
push 0x103eeff0
movups xmmword [ebp - 0x380], xmm0
call fcn.101d8f54
movaps xmm0, xmmword [0x102962d0]
lea eax, [ebp - 0x324]
push 0x103ee9f0
push eax
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x380]
push eax
push 0x103eebf0
movups xmmword [ebp - 0x380], xmm0
call fcn.101d8f54
mov edx, dword [ebp - 0x35c]
lea ecx, [edi + 6]
add esp, 0x28
cmp esi, 0x80
je 0x101d8d74
cmp esi, 0xc0
je 0x101d8d74
cmp esi, 0x100
je 0x101d8d74
push 0xffffffffffffffea
pop eax
jmp 0x101d8f45
mov esi, edi
mov dword [ebx + 0x110], ecx
shl esi, 2
lea eax, [ebp - 0x24]
push esi
push edx
push eax
call fcn.1008ded0
push esi
push dword [ebp - 0x35c]
push ebx
call fcn.1008ded0
lea eax, [edi + 6]
mov ecx, esi
mov edx, eax
mov dword [ebp - 0x35c], ecx
shl edx, 4
add esp, 0x18
mov dword [ebp - 0x370], edx
lea esi, [edx + 0x10]
mov dword [ebp - 0x368], esi
cmp ecx, esi
lea esi, [edi*4]
jge 0x101d8ea4
xor eax, eax
mov dword [ebp - 0x358], 0x102962c4
inc eax
lea ecx, [ebp - 0x24]
sub eax, ecx
mov dword [ebp - 0x360], eax
mov ebx, dword [ebp - 0x360]
xor edx, edx
lea ecx, [ebp - 0x24]
add ecx, edx
lea eax, [ebx + ecx]
and eax, 3
add eax, esi
movzx eax, byte [ebp + eax - 0x28]
mov al, byte [eax + 0x103ee9f0]
xor byte [ecx], al
inc edx
cmp edx, 4
jl 0x101d8de8
mov ecx, dword [ebp - 0x358]
xor edx, edx
mov ebx, dword [ebp - 0x364]
inc edx
mov al, byte [ecx]
xor byte [ebp - 0x24], al
inc ecx
mov dword [ebp - 0x358], ecx
cmp edi, edx
jle 0x101d8e68
cmp edi, 8
jne 0x101d8e4a
cmp edx, 4
jne 0x101d8e4a
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x18]
mov al, byte [eax + 0x103ee9f0]
xor byte [ebp + ecx - 0x14], al
inc ecx
cmp ecx, 4
jl 0x101d8e33
jmp 0x101d8e5e
lea ecx, [ebp - 0x24]
push 4
lea ecx, [ecx + edx*4]
pop esi
mov al, byte [ecx - 4]
xor byte [ecx], al
inc ecx
sub esi, 1
jne 0x101d8e53
inc edx
cmp edx, edi
jl 0x101d8e27
mov esi, edi
shl esi, 2
push esi
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x35c]
add eax, ebx
push eax
call fcn.1008ded0
mov ecx, dword [ebp - 0x35c]
add esp, 0xc
add ecx, esi
mov dword [ebp - 0x35c], ecx
cmp ecx, dword [ebp - 0x368]
jl 0x101d8de0
mov eax, dword [ebp - 0x36c]
mov edx, dword [ebp - 0x370]
cmp dword [ebp + 0x14], 0
je 0x101d8f0e
cmp eax, 1
jle 0x101d8f43
add ebx, 0x10
dec eax
mov dword [ebp - 0x358], eax
mov esi, ebx
lea edi, [ebp - 0x334]
push 0x103ee9f0
lea eax, [ebp - 0x344]
push 0
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.101d90a6
push 3
push 1
lea eax, [ebp - 0x354]
push 0x103eeff0
push eax
call fcn.101d8fd8
mov edi, ebx
lea esi, [ebp - 0x354]
add esp, 0x1c
add ebx, 0x10
sub dword [ebp - 0x358], 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jne 0x101d8ebd
jmp 0x101d8f43
inc eax
sar eax, 1
test eax, eax
jle 0x101d8f43
lea ecx, [edx + ebx]
mov esi, ecx
lea edi, [ebp - 0x380]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, ebx
mov edi, ecx
sub ecx, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, ebx
lea esi, [ebp - 0x380]
add ebx, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub eax, 1
jne 0x101d8f18
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1008a9cb
leave
ret