Function at 0x1018b400
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x1026e004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x58], eax
push ebx
push esi
mov esi, dword [ebp + 0x24]
mov dword [ebp - 0x50], esi
push edi
mov edi, dword [ebp + 0x28]
cmp ecx, 2
je 0x1018b895
cmp ecx, 0x10
ja 0x1018b895
test cl, 1
jne 0x1018b895
cmp edx, 7
jb 0x1018b895
cmp edx, 0xd
ja 0x1018b895
mov ebx, dword [ebp + 0x20]
cmp ebx, 0xff00
jae 0x1018b895
sub cl, 2
mov dword [ebp - 0x3c], 0
mov al, 0xf
and cl, 0xfe
sub al, dl
shl cl, 2
mov ah, al
mov byte [ebp - 0x35], al
dec ah
cmp dword [ebp - 0x3c], ebx
push edx
push dword [ebp - 0x54]
sbb al, al
mov byte [ebp - 0x3d], ah
and al, 0x40
or cl, al
or cl, ah
lea eax, [ebp - 0x13]
push eax
mov byte [ebp - 0x14], cl
call fcn.100e1b00
mov dl, byte [ebp - 0x35]
add esp, 0xc
mov eax, dword [ebp + 0x10]
test dl, dl
je 0x1018b4d2
lea ecx, [ebp - 5]
movzx edx, dl
mov byte [ecx], al
lea ecx, [ecx - 1]
shr eax, 8
sub edx, 1
jne 0x1018b4c5
test eax, eax
jne 0x1018b895
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [ebp - 0x24], xmm0
mov edx, 0x10
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x14]
lea ecx, [ecx + 1]
xor byte [ebp + ecx - 0x25], al
sub edx, 1
jne 0x1018b4f0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x10
push eax
push dword [ebp - 0x44]
call fcn.10180070
add esp, 0x14
test eax, eax
jne 0x1018b89a
test ebx, ebx
je 0x1018b5fd
mov eax, ebx
mov esi, 0xe
shr eax, 8
xorps xmm0, xmm0
cmp ebx, esi
movups xmmword [ebp - 0x14], xmm0
cmovb esi, ebx
mov byte [ebp - 0x14], al
push esi
push dword [ebp - 0x48]
lea eax, [ebp - 0x12]
mov byte [ebp - 0x13], bl
push eax
call fcn.100e1b00
add dword [ebp - 0x48], esi
add esp, 0xc
sub ebx, esi
mov edx, 0x10
xor ecx, ecx
nop
mov al, byte [ebp + ecx - 0x14]
lea ecx, [ecx + 1]
xor byte [ebp + ecx - 0x25], al
sub edx, 1
jne 0x1018b560
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x10
push eax
push dword [ebp - 0x44]
call fcn.10180070
add esp, 0x14
test eax, eax
jne 0x1018b89a
test ebx, ebx
je 0x1018b5fa
mov eax, dword [ebp - 0x48]
cmp ebx, 0x10
mov ecx, 0x10
mov esi, ebx
xorps xmm0, xmm0
cmova esi, ecx
push esi
push eax
lea eax, [ebp - 0x14]
push eax
movups xmmword [ebp - 0x14], xmm0
call fcn.100e1b00
add esp, 0xc
mov edx, 0x10
xor ecx, ecx
nop
mov al, byte [ebp + ecx - 0x14]
lea ecx, [ecx + 1]
xor byte [ebp + ecx - 0x25], al
sub edx, 1
jne 0x1018b5c0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x10
push eax
push dword [ebp - 0x44]
call fcn.10180070
add esp, 0x14
test eax, eax
jne 0x1018b89a
mov eax, dword [ebp - 0x48]
add eax, esi
mov dword [ebp - 0x48], eax
sub ebx, esi
jne 0x1018b595
mov esi, dword [ebp - 0x50]
push dword [ebp - 0x4c]
mov al, byte [ebp - 0x3d]
push dword [ebp - 0x54]
mov byte [ebp - 0x34], al
lea eax, [ebp - 0x33]
push eax
call fcn.100e1b00
mov bl, byte [ebp - 0x35]
lea ecx, [ebp - 0x33]
movzx eax, bl
push eax
mov eax, dword [ebp - 0x4c]
add eax, ecx
push 0
push eax
call fcn.100e19a0
mov eax, dword [ebp + 0x10]
add esp, 0x18
mov byte [ebp - 0x25], 1
test eax, eax
je 0x1018b816
nop dword [eax + eax]
cmp eax, 0x10
mov ebx, eax
mov eax, 0x10
cmova ebx, eax
cmp dword [ebp + 0xc], 0
jne 0x1018b69e
push ebx
lea eax, [ebp - 0x14]
xorps xmm0, xmm0
push esi
push eax
movups xmmword [ebp - 0x14], xmm0
call fcn.100e1b00
add esp, 0xc
mov edx, 0x10
xor ecx, ecx
nop
mov al, byte [ebp + ecx - 0x14]
lea ecx, [ecx + 1]
xor byte [ebp + ecx - 0x25], al
sub edx, 1
jne 0x1018b670
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x10
push eax
push dword [ebp - 0x44]
call fcn.10180070
add esp, 0x14
test eax, eax
jne 0x1018b89a
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x14]
push eax
push 0x10
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x44]
call fcn.10180070
add esp, 0x14
test eax, eax
jne 0x1018b89a
xor dl, dl
test ebx, ebx
je 0x1018b773
cmp ebx, 0x40
jb 0x1018b773
mov al, bl
dec al
movzx ecx, al
lea eax, [ebp - 0x14]
add eax, ecx
cmp edi, eax
ja 0x1018b6f4
lea eax, [ebp - 0x14]
mov dword [ebp - 0x4c], eax
lea eax, [ecx + edi]
cmp eax, dword [ebp - 0x4c]
jae 0x1018b773
lea eax, [ecx + esi]
cmp edi, eax
ja 0x1018b702
lea eax, [ecx + edi]
cmp eax, esi
jae 0x1018b773
mov eax, ebx
mov cl, 0x20
and eax, 0xffffffc0
mov dword [ebp - 0x4c], eax
xor eax, eax
nop
movups xmm0, xmmword [ebp + eax - 0x14]
add dl, 0x40
movups xmm1, xmmword [eax + esi]
pxor xmm1, xmm0
movups xmmword [eax + edi], xmm1
mov al, cl
sub al, 0x10
movzx eax, al
movups xmm0, xmmword [ebp + eax - 0x14]
movups xmm1, xmmword [eax + esi]
pxor xmm1, xmm0
movups xmmword [eax + edi], xmm1
movzx eax, cl
movups xmm0, xmmword [ebp + eax - 0x14]
movups xmm1, xmmword [eax + esi]
pxor xmm1, xmm0
movups xmmword [eax + edi], xmm1
mov al, cl
add cl, 0x40
add al, 0x10
movzx eax, al
movups xmm1, xmmword [eax + esi]
movups xmm0, xmmword [ebp + eax - 0x14]
pxor xmm1, xmm0
movups xmmword [eax + edi], xmm1
movzx eax, dl
cmp eax, dword [ebp - 0x4c]
jb 0x1018b710
movzx eax, dl
cmp eax, ebx
jae 0x1018b793
nop word [eax + eax]
mov cl, byte [eax + esi]
inc dl
xor cl, byte [ebp + eax - 0x14]
mov byte [eax + edi], cl
movzx eax, dl
cmp eax, ebx
jb 0x1018b780
cmp dword [ebp + 0xc], 1
jne 0x1018b7e3
push ebx
lea eax, [ebp - 0x14]
xorps xmm0, xmm0
push edi
push eax
movups xmmword [ebp - 0x14], xmm0
call fcn.100e1b00
add esp, 0xc
mov edx, 0x10
xor ecx, ecx
mov al, byte [ebp + ecx - 0x14]
lea ecx, [ecx + 1]
xor byte [ebp + ecx - 0x25], al
sub edx, 1
jne 0x1018b7b5
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x10
push eax
push dword [ebp - 0x44]
call fcn.10180070
add esp, 0x14
test eax, eax
jne 0x1018b89a
mov eax, dword [ebp + 0x10]
add edi, ebx
sub eax, ebx
add esi, ebx
mov bl, byte [ebp - 0x35]
xor dl, dl
mov dword [ebp + 0x10], eax
test bl, bl
je 0x1018b80e
movzx eax, dl
lea ecx, [ebp - 0x25]
sub ecx, eax
add byte [ecx], 1
jne 0x1018b80b
inc dl
cmp dl, bl
jb 0x1018b7f8
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x1018b640
xor dl, dl
test bl, bl
je 0x1018b83a
nop dword [eax]
movzx eax, dl
mov ecx, 0xf
sub ecx, eax
cmp ecx, 0x10
jae 0x1018b8ab
inc dl
mov byte [ebp + ecx - 0x34], 0
cmp dl, bl
jb 0x1018b820
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x14]
push eax
push 0x10
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x44]
call fcn.10180070
add esp, 0x14
test eax, eax
jne 0x1018b89a
xor ecx, ecx
mov edx, 0x10
nop
mov al, byte [ebp + ecx - 0x14]
lea ecx, [ecx + 1]
xor byte [ebp + ecx - 0x25], al
sub edx, 1
jne 0x1018b860
push dword [ebp + 0x30]
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x58]
call fcn.100e1b00
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e04a9
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffff3
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100e04a9
mov esp, ebp
pop ebp
ret
call fcn.100e097f
int3