Function at 0x1001af60
Capabilities:
Encode data using xor

Disassembly:
push 0x64
mov eax, 0x10051840
call fcn.1004fe7e
mov eax, 0x10054eb4
lea ecx, [ebp - 0x1c]
sub eax, 0x63a923c9
push eax
call fcn.1001e33f
xor ebx, ebx
mov edx, 0x100d489e
mov ecx, eax
mov dword [ebp - 4], ebx
call fcn.1002f92e
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
cmp byte [0x100d489e], bl
je 0x1001afe5
call fcn.1004eb60
call esi
push eax
call fcn.1004f040
push 0x10018893
push 0x100d49e0
call fcn.1004e5e0
call fcn.1004ebc0
push 0x3ba887d2
lea ecx, [ebp - 0x20]
call fcn.1001e37d
sub esp, 0xc
mov dword [ebp - 4], 1
mov edx, 0x100d4900
mov ecx, eax
call fcn.100336af
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 0x1001b007
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x12
jl 0x1001afea
mov byte [ebp - 0x12], bl
mov edx, 0x100d4897
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x24]
call fcn.1002f92e
cmp byte [0x100d4897], 0
je 0x1001b095
call fcn.1004eb60
call esi
push eax
call fcn.1004f040
push 0x100189a4
push 0x100d49c4
call fcn.1004e5e0
call fcn.1004ebc0
mov ecx, 0xaa
mov edx, ebx
mov al, byte [edx + 0x10054ee4]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x28], al
and ecx, 0x800000ff
jns 0x1001b072
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x14
jl 0x1001b055
mov byte [ebp - 0x14], bl
sub esp, 0xc
mov dword [ebp - 4], 3
mov edx, 0x100d48fc
lea ecx, [ebp - 0x28]
call fcn.100336af
add esp, 0xc
push 0x6b
pop ecx
mov edx, ebx
mov al, byte [edx + 0x10054efc]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b0b7
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xf
jl 0x1001b09a
mov byte [ebp - 0x15], bl
mov edx, 0x100d4896
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x24]
call fcn.1002f92e
cmp byte [0x100d4896], 0
je 0x1001b145
call fcn.1004eb60
call esi
push eax
call fcn.1004f040
push 0x100189ba
push 0x1005f314
call fcn.1004e5e0
call fcn.1004ebc0
mov ecx, 0xf7
mov edx, ebx
mov al, byte [edx + 0x10054f0c]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b122
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x1001b105
mov byte [ebp - 0x13], bl
sub esp, 0xc
mov dword [ebp - 4], 5
mov edx, 0x100d48f4
lea ecx, [ebp - 0x24]
call fcn.100336af
add esp, 0xc
push 0xa
pop ecx
mov edx, ebx
mov al, byte [edx + 0x10054f20]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b167
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xf
jl 0x1001b14a
mov byte [ebp - 0x15], bl
mov edx, 0x100d4895
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x24]
call fcn.1002f92e
cmp byte [0x100d4895], 0
je 0x1001b1f3
call fcn.1004eb60
call esi
push eax
call fcn.1004f040
push 0x100189d0
push 0x1005f30c
call fcn.1004e5e0
call fcn.1004ebc0
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 0x1001b1d0
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x1001b1b3
mov byte [ebp - 0x13], bl
sub esp, 0xc
mov dword [ebp - 4], 7
mov edx, 0x100d48f8
lea ecx, [ebp - 0x24]
call fcn.100336af
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 0x1001b215
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x1001b1f8
mov byte [ebp - 0x13], bl
mov edx, 0x100d489c
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x24]
call fcn.1002f92e
or dword [ebp - 4], 0xffffffff
cmp byte [0x100d489c], 0
je 0x1001b2a9
call fcn.1004eb60
call esi
push eax
call fcn.1004f040
push 0x100189e6
push 0x100d49ec
call fcn.1004e5e0
call fcn.1004ebc0
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 0x1001b282
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x13
jl 0x1001b265
mov byte [ebp - 0x15], bl
sub esp, 0xc
mov dword [ebp - 4], 9
mov edx, 0x100d4904
lea ecx, [ebp - 0x28]
call fcn.100336af
add esp, 0xc
or dword [ebp - 4], 0xffffffff
movaps xmm0, xmmword [0x1005a580]
mov ecx, ebx
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x18], 0x3f2d3b36
movaps xmm0, xmmword [0x10059e20]
movups xmmword [ebp - 0x38], xmm0
mov word [ebp - 0x14], 0x29
movaps xmm0, xmmword [0x10059e40]
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x12], 1
lea eax, [ecx + 0x47]
xor byte [ebp + ecx - 0x48], al
inc ecx
cmp ecx, 0x35
jb 0x1001b2dd
lea eax, [ebp - 0x48]
mov byte [ebp - 0x12], bl
push eax
call fcn.1002c984
movaps xmm0, xmmword [0x10059d60]
pop ecx
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x20], 0x130e7812
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x1c], 0x177d140f
mov dword [ebp - 0x18], 0x100410b
call fcn.10014573
push eax
call fcn.1002c984
movaps xmm0, xmmword [0x10059bb0]
movups xmmword [ebp - 0x70], xmm0
pop ecx
movaps xmm0, xmmword [0x1005a010]
mov ecx, ebx
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x50], 0x2d272133
mov word [ebp - 0x4c], 0x4a
mov byte [ebp - 0x4a], 1
lea eax, [ecx + 0x47]
xor byte [ebp + ecx - 0x70], al
inc ecx
cmp ecx, 0x25
jb 0x1001b34f
lea eax, [ebp - 0x70]
mov byte [ebp - 0x4a], bl
push eax
call fcn.1002c984
pop ecx
call fcn.1004fe3c
ret