Function at 0x1001ae9b
Capabilities:
Encode data using xor

Disassembly:
push 0x64
mov eax, 0x10051754
call fcn.1004fdbe
mov eax, 0x10053eb4
lea ecx, [ebp - 0x1c]
sub eax, 0x63a923c9
push eax
call fcn.1001e284
and dword [ebp - 4], 0
mov edx, 0x100d389e
mov ecx, eax
call fcn.1002f870
cmp byte [0x100d389e], 0
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
je 0x1001af20
call fcn.1004eaa0
call esi
push eax
call fcn.1004ef80
push 0x100187d3
push 0x100d39e0
call fcn.1004e520
call fcn.1004eb00
push 0x3ba877d2
lea ecx, [ebp - 0x20]
call fcn.1001e2c2
sub esp, 0xc
mov dword [ebp - 4], 1
mov edx, 0x100d3900
mov ecx, eax
call fcn.100335ef
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 0x1001af42
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x12
jl 0x1001af25
mov byte [ebp - 0x12], 0
mov edx, 0x100d3897
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x24]
call fcn.1002f870
cmp byte [0x100d3897], 0
push 0x14
pop ebx
je 0x1001afd4
call fcn.1004eaa0
call esi
push eax
call fcn.1004ef80
push 0x100188e4
push 0x100d39c4
call fcn.1004e520
call fcn.1004eb00
mov ecx, 0xaa
xor edx, edx
mov al, byte [edx + 0x10053ee4]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x28], al
and ecx, 0x800000ff
jns 0x1001afb1
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, ebx
jl 0x1001af94
mov byte [ebp - 0x14], 0
sub esp, 0xc
mov dword [ebp - 4], 3
mov edx, 0x100d38fc
lea ecx, [ebp - 0x28]
call fcn.100335ef
add esp, 0xc
push 0x6b
pop ecx
xor edx, edx
mov al, byte [edx + 0x10053efc]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001aff6
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xf
jl 0x1001afd9
mov byte [ebp - 0x15], 0
mov edx, 0x100d3896
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x24]
call fcn.1002f870
cmp byte [0x100d3896], 0
je 0x1001b086
call fcn.1004eaa0
call esi
push eax
call fcn.1004ef80
push 0x100188fa
push 0x1005e314
call fcn.1004e520
call fcn.1004eb00
mov ecx, 0xf7
xor edx, edx
mov al, byte [edx + 0x10053f0c]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b062
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x1001b045
mov byte [ebp - 0x13], 0
sub esp, 0xc
mov dword [ebp - 4], 5
mov edx, 0x100d38f4
lea ecx, [ebp - 0x24]
call fcn.100335ef
add esp, 0xc
push 0xa
pop ecx
xor edx, edx
mov al, byte [edx + 0x10053f20]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001b0a8
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xf
jl 0x1001b08b
mov byte [ebp - 0x15], 0
mov edx, 0x100d3895
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x24]
call fcn.1002f870
cmp byte [0x100d3895], 0
je 0x1001b136
call fcn.1004eaa0
call esi
push eax
call fcn.1004ef80
push 0x10018910
push 0x1005e30c
call fcn.1004e520
call fcn.1004eb00
xor ecx, ecx
mov al, byte [ecx + str.76Uxkt]
xor al, bl
inc ebx
mov byte [ebp + ecx - 0x24], al
and ebx, 0x800000ff
jns 0x1001b10f
dec ebx
or ebx, 0xffffff00
inc ebx
inc ecx
cmp ecx, 0x11
jl 0x1001b0f2
xor ebx, ebx
mov byte [ebp - 0x13], bl
sub esp, 0xc
mov dword [ebp - 4], 7
mov edx, 0x100d38f8
lea ecx, [ebp - 0x24]
call fcn.100335ef
add esp, 0xc
jmp 0x1001b138
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 0x1001b15a
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x1001b13d
mov byte [ebp - 0x13], bl
mov edx, 0x100d389c
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x24]
call fcn.1002f870
or dword [ebp - 4], 0xffffffff
cmp byte [0x100d389c], 0
je 0x1001b1ee
call fcn.1004eaa0
call esi
push eax
call fcn.1004ef80
push 0x10018926
push 0x100d39ec
call fcn.1004e520
call fcn.1004eb00
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 0x1001b1c7
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x13
jl 0x1001b1aa
mov byte [ebp - 0x15], bl
sub esp, 0xc
mov dword [ebp - 4], 9
mov edx, 0x100d3904
lea ecx, [ebp - 0x28]
call fcn.100335ef
add esp, 0xc
or dword [ebp - 4], 0xffffffff
movaps xmm0, xmmword [0x100598f0]
mov ecx, ebx
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x18], 0xb2a2b6b5
movaps xmm0, xmmword [0x10059300]
movups xmmword [ebp - 0x38], xmm0
mov word [ebp - 0x14], 0xaa
movaps xmm0, xmmword [0x10059240]
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x12], 1
lea eax, [ecx - 0x3c]
xor byte [ebp + ecx - 0x48], al
inc ecx
cmp ecx, 0x35
jb 0x1001b222
lea eax, [ebp - 0x48]
mov byte [ebp - 0x12], bl
push eax
call fcn.1002c8c6
movaps xmm0, xmmword [0x100591b0]
pop ecx
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x20], 0x9e81f591
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x1c], 0x92fa918c
mov dword [ebp - 0x18], 0x100fc88
call fcn.1001449c
push eax
call fcn.1002c8c6
movaps xmm0, xmmword [0x10059080]
movups xmmword [ebp - 0x70], xmm0
pop ecx
movaps xmm0, xmmword [0x100594c0]
mov ecx, ebx
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x50], 0xa0a8acb0
mov word [ebp - 0x4c], 0xc9
mov byte [ebp - 0x4a], 1
lea eax, [ecx - 0x3c]
xor byte [ebp + ecx - 0x70], al
inc ecx
cmp ecx, 0x25
jb 0x1001b294
lea eax, [ebp - 0x70]
mov byte [ebp - 0x4a], bl
push eax
call fcn.1002c8c6
pop ecx
call fcn.1004fd7c
ret