Function at 0x1001afb5
Capabilities:
Encode data using xor

Disassembly:
push 0x64
mov eax, 0x100523a4
call fcn.10050a0e
mov eax, 0x10054eb4
lea ecx, [ebp - 0x1c]
sub eax, 0x63a923c9
push eax
call fcn.1001ef27
and dword [ebp - 4], 0
mov edx, 0x100d48ae
mov ecx, eax
call fcn.1003051c
cmp byte [0x100d48ae], 0
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
je 0x1001b03a
call fcn.1004f6f0
call esi
push eax
call fcn.1004fbd0
push 0x100188e7
push 0x100d49fc
call fcn.1004f170
call fcn.1004f750
push 0x3ba887d2
lea ecx, [ebp - 0x20]
call fcn.1001ef65
sub esp, 0xc
mov dword [ebp - 4], 1
mov edx, 0x100d4910
mov ecx, eax
call fcn.1003429b
add esp, 0xc
push 6
pop ecx
xor edx, edx
mov al, byte [edx + str.Ehdo]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b05c
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x12
jl 0x1001b03f
mov byte [ebp - 0x12], 0
mov edx, 0x100d48a7
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x24]
call fcn.1003051c
cmp byte [0x100d48a7], 0
push 0x14
pop ebx
je 0x1001b0ee
call fcn.1004f6f0
call esi
push eax
call fcn.1004fbd0
push 0x100189f8
push 0x100d49dc
call fcn.1004f170
call fcn.1004f750
mov ecx, 0xaa
xor edx, edx
mov al, byte [edx + 0x10054ee4]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x28], al
and ecx, 0x800000ff
jns 0x1001b0cb
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, ebx
jl 0x1001b0ae
mov byte [ebp - 0x14], 0
sub esp, 0xc
mov dword [ebp - 4], 3
mov edx, 0x100d490c
lea ecx, [ebp - 0x28]
call fcn.1003429b
add esp, 0xc
push 0x6b
pop ecx
xor edx, edx
mov al, byte [edx + 0x10054efc]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b110
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xf
jl 0x1001b0f3
mov byte [ebp - 0x15], 0
mov edx, 0x100d48a6
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x24]
call fcn.1003051c
cmp byte [0x100d48a6], 0
je 0x1001b1a0
call fcn.1004f6f0
call esi
push eax
call fcn.1004fbd0
push 0x10018a0e
push 0x1005f318
call fcn.1004f170
call fcn.1004f750
mov ecx, 0xf7
xor edx, edx
mov al, byte [edx + 0x10054f0c]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b17c
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x1001b15f
mov byte [ebp - 0x13], 0
sub esp, 0xc
mov dword [ebp - 4], 5
mov edx, 0x100d4904
lea ecx, [ebp - 0x24]
call fcn.1003429b
add esp, 0xc
push 0xa
pop ecx
xor edx, edx
mov al, byte [edx + 0x10054f20]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b1c2
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xf
jl 0x1001b1a5
mov byte [ebp - 0x15], 0
mov edx, 0x100d48a5
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x24]
call fcn.1003051c
cmp byte [0x100d48a5], 0
je 0x1001b250
call fcn.1004f6f0
call esi
push eax
call fcn.1004fbd0
push 0x10018a24
push 0x1005f310
call fcn.1004f170
call fcn.1004f750
xor ecx, ecx
mov al, byte [ecx + str.76Uxkt]
xor al, bl
inc ebx
mov byte [ebp + ecx - 0x24], al
and ebx, 0x800000ff
jns 0x1001b229
dec ebx
or ebx, 0xffffff00
inc ebx
inc ecx
cmp ecx, 0x11
jl 0x1001b20c
xor ebx, ebx
mov byte [ebp - 0x13], bl
sub esp, 0xc
mov dword [ebp - 4], 7
mov edx, 0x100d4908
lea ecx, [ebp - 0x24]
call fcn.1003429b
add esp, 0xc
jmp 0x1001b252
xor ebx, ebx
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 0x1001b274
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x1001b257
mov byte [ebp - 0x13], bl
mov edx, 0x100d48ac
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x24]
call fcn.1003051c
or dword [ebp - 4], 0xffffffff
cmp byte [0x100d48ac], 0
je 0x1001b308
call fcn.1004f6f0
call esi
push eax
call fcn.1004fbd0
push 0x10018a3a
push 0x100d4a08
call fcn.1004f170
call fcn.1004f750
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 0x1001b2e1
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x13
jl 0x1001b2c4
mov byte [ebp - 0x15], bl
sub esp, 0xc
mov dword [ebp - 4], 9
mov edx, 0x100d4914
lea ecx, [ebp - 0x28]
call fcn.1003429b
add esp, 0xc
or dword [ebp - 4], 0xffffffff
movaps xmm0, xmmword [0x1005aa10]
mov ecx, ebx
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x18], 0x4c5c4447
movaps xmm0, xmmword [0x1005a840]
movups xmmword [ebp - 0x38], xmm0
mov word [ebp - 0x14], 0x58
movaps xmm0, xmmword [0x1005a040]
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x12], 1
lea eax, [ecx - 0x2a]
xor byte [ebp + ecx - 0x48], al
inc ecx
cmp ecx, 0x35
jb 0x1001b33c
lea eax, [ebp - 0x48]
mov byte [ebp - 0x12], bl
push eax
call fcn.1002d572
movaps xmm0, xmmword [0x1005a810]
pop ecx
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x20], 0xa0bfc7a3
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x1c], 0xa4cca3be
mov dword [ebp - 0x18], 0x100ceba
call fcn.100144f2
push eax
call fcn.1002d572
movaps xmm0, xmmword [0x1005a860]
movups xmmword [ebp - 0x70], xmm0
pop ecx
movaps xmm0, xmmword [0x1005a7f0]
mov ecx, ebx
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x50], 0xbeb6bea2
mov word [ebp - 0x4c], 0xdb
mov byte [ebp - 0x4a], 1
lea eax, [ecx - 0x2a]
xor byte [ebp + ecx - 0x70], al
inc ecx
cmp ecx, 0x25
jb 0x1001b3ae
lea eax, [ebp - 0x70]
mov byte [ebp - 0x4a], bl
push eax
call fcn.1002d572
pop ecx
call fcn.100509cc
ret