Function at 0x1001ae8f
Capabilities:
Encode data using xor

Disassembly:
push 0x64
mov eax, 0x100513f4
call fcn.1004fa5e
mov eax, 0x10053eb4
lea ecx, [ebp - 0x1c]
sub eax, 0x63a923c9
push eax
call fcn.1001e261
xor ebx, ebx
mov edx, 0x100d389e
mov ecx, eax
mov dword [ebp - 4], ebx
call fcn.1002f440
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
cmp byte [0x100d389e], bl
je 0x1001af14
call fcn.1004e740
call esi
push eax
call fcn.1004ec20
push 0x100187af
push 0x100d39e0
call fcn.1004e1c0
call fcn.1004e7a0
push 0x3ba877d2
lea ecx, [ebp - 0x20]
call fcn.1001e29f
sub esp, 0xc
mov dword [ebp - 4], 1
mov edx, 0x100d3900
mov ecx, eax
call fcn.1003328c
add esp, 0xc
push 6
pop ecx
mov edx, ebx
mov al, byte [edx + str.Ehdo]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001af36
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x12
jl 0x1001af19
mov byte [ebp - 0x12], bl
mov edx, 0x100d3897
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x24]
call fcn.1002f440
cmp byte [0x100d3897], 0
je 0x1001afc4
call fcn.1004e740
call esi
push eax
call fcn.1004ec20
push 0x100188c0
push 0x100d39c4
call fcn.1004e1c0
call fcn.1004e7a0
mov ecx, 0xaa
mov edx, ebx
mov al, byte [edx + 0x10053ee4]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x28], al
and ecx, 0x800000ff
jns 0x1001afa1
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x14
jl 0x1001af84
mov byte [ebp - 0x14], bl
sub esp, 0xc
mov dword [ebp - 4], 3
mov edx, 0x100d38fc
lea ecx, [ebp - 0x28]
call fcn.1003328c
add esp, 0xc
push 0x6b
pop ecx
mov edx, ebx
mov al, byte [edx + 0x10053efc]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001afe6
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xf
jl 0x1001afc9
mov byte [ebp - 0x15], bl
mov edx, 0x100d3896
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x24]
call fcn.1002f440
cmp byte [0x100d3896], 0
je 0x1001b074
call fcn.1004e740
call esi
push eax
call fcn.1004ec20
push 0x100188d6
push 0x1005e314
call fcn.1004e1c0
call fcn.1004e7a0
mov ecx, 0xf7
mov edx, ebx
mov al, byte [edx + 0x10053f0c]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b051
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x1001b034
mov byte [ebp - 0x13], bl
sub esp, 0xc
mov dword [ebp - 4], 5
mov edx, 0x100d38f4
lea ecx, [ebp - 0x24]
call fcn.1003328c
add esp, 0xc
push 0xa
pop ecx
mov edx, ebx
mov al, byte [edx + 0x10053f20]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b096
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xf
jl 0x1001b079
mov byte [ebp - 0x15], bl
mov edx, 0x100d3895
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x24]
call fcn.1002f440
cmp byte [0x100d3895], 0
je 0x1001b122
call fcn.1004e740
call esi
push eax
call fcn.1004ec20
push 0x100188ec
push 0x1005e30c
call fcn.1004e1c0
call fcn.1004e7a0
push 0x14
pop ecx
mov edx, ebx
mov al, byte [edx + str.76Uxkt]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b0ff
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x1001b0e2
mov byte [ebp - 0x13], bl
sub esp, 0xc
mov dword [ebp - 4], 7
mov edx, 0x100d38f8
lea ecx, [ebp - 0x24]
call fcn.1003328c
add esp, 0xc
push 0x2e
pop ecx
mov edx, ebx
mov al, byte [edx + str.m_CWG_V]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b144
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x1001b127
mov byte [ebp - 0x13], bl
mov edx, 0x100d389c
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x24]
call fcn.1002f440
or dword [ebp - 4], 0xffffffff
cmp byte [0x100d389c], 0
je 0x1001b1d8
call fcn.1004e740
call esi
push eax
call fcn.1004ec20
push 0x10018902
push 0x100d39ec
call fcn.1004e1c0
call fcn.1004e7a0
push 0x29
pop ecx
mov edx, ebx
mov al, byte [edx + str._n_thCCJDXQ]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x28], al
and ecx, 0x800000ff
jns 0x1001b1b1
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x13
jl 0x1001b194
mov byte [ebp - 0x15], bl
sub esp, 0xc
mov dword [ebp - 4], 9
mov edx, 0x100d3904
lea ecx, [ebp - 0x28]
call fcn.1003328c
add esp, 0xc
or dword [ebp - 4], 0xffffffff
movaps xmm0, xmmword [0x10059520]
mov ecx, ebx
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x18], 0x31273130
movaps xmm0, xmmword [0x10058f50]
movups xmmword [ebp - 0x38], xmm0
mov word [ebp - 0x14], 0x27
movaps xmm0, xmmword [0x10058e50]
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x12], 1
lea eax, [ecx + 0x41]
xor byte [ebp + ecx - 0x48], al
inc ecx
cmp ecx, 0x35
jb 0x1001b20c
lea eax, [ebp - 0x48]
mov byte [ebp - 0x12], bl
push eax
call fcn.1002c8c1
movaps xmm0, xmmword [0x10058db0]
pop ecx
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x20], 0x1d047214
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x1c], 0x11771e01
mov dword [ebp - 0x18], 0x1007b0d
call fcn.1001448c
push eax
call fcn.1002c8c1
movaps xmm0, xmmword [0x10058c60]
movups xmmword [ebp - 0x70], xmm0
pop ecx
movaps xmm0, xmmword [0x10059080]
mov ecx, ebx
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x50], 0x232d2b35
mov word [ebp - 0x4c], 0x44
mov byte [ebp - 0x4a], 1
lea eax, [ecx + 0x41]
xor byte [ebp + ecx - 0x70], al
inc ecx
cmp ecx, 0x25
jb 0x1001b27e
lea eax, [ebp - 0x70]
mov byte [ebp - 0x4a], bl
push eax
call fcn.1002c8c1
pop ecx
call fcn.1004fa1c
ret