Function at 0x10146044
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
inc dword [0x101c6528]
lea eax, [ebp - 0x100]
push ebx
push esi
push edi
push ecx
push eax
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x118], 0x101ad90c
mov dword [ebp - 0x108], 0x101ad8c4
mov dword [ebp - 0xb0], 0x10175540
call fcn.1000ef00
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x118], 0x101ad908
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x11c], eax
lea ecx, [ebp - 0x100]
call fcn.1000f8e0
movaps xmm0, xmmword [str.X_095_a59_194_an8]
xor ecx, ecx
mov dword [ebp - 0x100], 0x101ad8cc
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0
movups xmmword [ebp - 0x1d], xmm0
mov byte [ebp - 0xd], 0
mov al, byte [ebp - 0x1d]
xor byte [ebp + ecx - 0x1c], al
inc ecx
cmp ecx, 0xf
jb 0x10145d84
lea edx, [ebp - 0x1c]
mov byte [ebp - 0xd], 0
lea ecx, [ebp - 0x108]
call fcn.10035130
push dword [0x101c6528]
mov ecx, eax
call fcn.10032c00
mov dh, 0x23
mov byte [ebp - 7], 0
mov cl, 0xd
mov byte [ebp - 0xc], dh
mov dl, 0x55
mov byte [ebp - 7], 0
mov ch, 0x57
xor cl, dh
xor ch, dh
mov byte [ebp - 0xb], cl
xor dl, dh
mov byte [ebp - 8], ch
mov bl, 0x4e
mov byte [ebp - 0xa], dl
xor bl, dh
mov ecx, eax
lea edx, [ebp - 0xb]
mov byte [ebp - 9], bl
call fcn.10035130
push 0x2c
call fcn.100775d3
add esp, 4
lea ecx, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
cmovae ecx, dword [ebp + 8]
push ecx
mov ecx, eax
call fcn.1014cff0
cmp dword [ebp + 0x34], 0x10
mov edi, eax
mov ecx, dword [ebp - 0xc4]
lea eax, [ebp + 0x20]
cmovae eax, dword [ebp + 0x20]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
test cl, 2
jne 0x10145e52
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax]
test edx, edx
je 0x10145e52
mov eax, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xc8]
cmovb edx, dword [ebp - 0xc8]
mov ecx, dword [eax]
sub edx, ecx
jmp 0x10145e75
test cl, 4
jne 0x10145e7f
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax]
test edx, edx
je 0x10145e7f
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax]
sub edx, ecx
mov eax, dword [ebp - 0xd4]
add edx, dword [eax]
push edx
push ecx
lea ecx, [ebp - 0x3c]
call fcn.1000f300
cmp dword [ebp - 0x28], 0x10
lea esi, [ebp - 0x3c]
mov eax, dword [0x101c6598]
cmovae esi, dword [ebp - 0x3c]
test eax, eax
jne 0x10145f42
movaps xmm0, xmmword [0x101b0300]
xor ecx, ecx
movups xmmword [ebp - 0x61], xmm0
mov dword [ebp - 0x41], 0x44442243
movaps xmm0, xmmword [0x101b04f0]
movups xmmword [ebp - 0x51], xmm0
mov byte [ebp - 0x3d], al
nop dword [eax]
mov al, byte [ebp - 0x61]
xor byte [ebp + ecx - 0x60], al
inc ecx
cmp ecx, 0x23
jb 0x10145ec0
mov cl, 8
mov byte [ebp - 0x18], 0x64
mov byte [ebp - 1], cl
mov al, 7
xor al, byte [ebp - 0x18]
mov ah, 0xa
mov byte [ebp - 2], cl
mov dl, 0xd
xor cl, byte [ebp - 0x18]
mov ch, 0x10
mov byte [ebp - 0x17], al
mov dh, 0x4a
mov al, byte [ebp - 1]
mov bl, 1
mov byte [ebp - 0x16], cl
xor bh, bh
mov cl, byte [ebp - 0x18]
xor al, cl
mov byte [ebp - 0x3d], 0
mov byte [ebp - 0xf], al
xor ah, cl
mov al, byte [ebp - 2]
xor dl, cl
xor al, cl
mov byte [ebp - 0x13], ah
mov byte [ebp - 0xe], al
xor bl, cl
lea eax, [ebp - 0x60]
mov byte [ebp - 0x15], dl
push eax
lea eax, [ebp - 0x17]
mov byte [ebp - 0x14], bl
xor ch, cl
mov byte [ebp - 0xd], 0
xor dh, cl
mov byte [ebp - 0x12], ch
xor bh, cl
mov byte [ebp - 0x11], dh
push eax
mov byte [ebp - 0x10], bh
call fcn.1015ebf0
mov dword [0x101c6598], eax
test eax, eax
je 0x10145f4e
push 0
push 0
push dword [ebp - 0xc]
mov ecx, edi
push esi
call eax
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x10145f82
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10145f78
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x101460e5
push edx
push ecx
call fcn.1007739f
add esp, 8
mov eax, dword [0x101be6c0]
mov ecx, dword [ebp - 0xc4]
mov esi, dword [eax + 0x3c]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0xf
mov byte [ebp - 0x24], 0
test cl, 2
jne 0x10145fcd
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax]
test edx, edx
je 0x10145fcd
mov eax, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xc8]
cmovb edx, dword [ebp - 0xc8]
mov ecx, dword [eax]
sub edx, ecx
push edx
jmp 0x10145ff3
test cl, 4
jne 0x10145ffc
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax]
test edx, edx
je 0x10145ffc
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax]
sub eax, ecx
add eax, edx
push eax
push ecx
lea ecx, [ebp - 0x24]
call fcn.1000f300
cmp dword [ebp - 0x10], 0x10
lea edx, [ebp - 0x24]
mov eax, dword [esi]
mov ecx, esi
cmovae edx, dword [ebp - 0x24]
push edi
push edx
mov eax, dword [eax + 0x1ec]
call eax
mov edx, dword [ebp - 0x10]
mov esi, eax
cmp edx, 0x10
jb 0x1014604b
mov ecx, dword [ebp - 0x24]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10146041
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x101460ea
push edx
push ecx
call fcn.1007739f
add esp, 8
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0xf
mov byte [ebp - 0x24], 0
call fcn.10032370
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x10146098
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1014608e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x101460ea
push edx
push ecx
call fcn.1007739f
add esp, 8
mov edx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp edx, 0x10
jb 0x101460da
mov ecx, dword [ebp + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x101460d0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x101460ea
push edx
push ecx
call fcn.1007739f
add esp, 8
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x30
call fcn.10084c47
call fcn.10084c47
int3