Function at 0x15036d4f4
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x100
mov rax, qword [0x150012098]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov r12, rdx
mov r14, rcx
mov rax, qword [rdx]
lea rdx, [rsp + 0x30]
mov rcx, r12
call qword [rax + 0x80]
mov r13, qword [rax + 8]
xor esi, esi
mov edi, esi
mov rcx, r14
call fcn.15035c928
lea r15d, [rsi + 1]
cmp eax, 0xb
jne 0x15036d6ab
mov rax, qword [r14 + 0x30]
mov rcx, qword [rax + 0x20]
cmp byte [rcx + 0x4b], sil
je 0x15036d6ab
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.1503629e8
mov rbx, rax
mov ecx, dword [rax + 0x70]
nop
cmp ecx, r15d
je 0x15036d6ab
mov r8, r14
mov rdx, r12
lea rcx, [rsp + 0x40]
call fcn.15035cd30
nop
mov r8, r14
mov rdx, r12
lea rcx, [rbp - 0x31]
call fcn.15035cd30
nop
mov rcx, r14
call fcn.1503a25d0
mov r15, qword [rax + 0x28]
mov rcx, r14
call fcn.1503a25d0
mov r14, qword [rax + 0x28]
mov rax, qword [rbx]
lea rdx, [rsp + 0x40]
mov rcx, rbx
call qword [rax + 0x28]
mov rax, qword [rbx]
lea rdx, [rbp - 0x31]
mov rcx, rbx
call qword [rax + 0x30]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
lea r8, [rbp - 0x31]
lea rdx, [rsp + 0x40]
call qword [rax + 0x20]
test al, al
jne 0x15036d659
lea r12d, [rsi + 1]
lea rdx, [rsp + 0x50]
mov rcx, r15
call fcn.15036d008
mov rbx, rax
lea rdx, [rbp - 0x61]
lea rcx, [r14 + 0x48]
call fcn.15036d260
lea rdx, [rbx + 2]
add rdx, rax
mov eax, edx
or eax, r12d
bsr ecx, eax
lea ecx, [rcx + rcx*8]
add ecx, 0x49
shr rcx, 6
add rcx, rdx
add rdi, rcx
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
lea rdx, [rsp + 0x40]
call qword [rax + 0x90]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
lea r8, [rbp - 0x31]
lea rdx, [rsp + 0x40]
call qword [rax + 0x20]
test al, al
je 0x15036d5f2
mov rcx, qword [rbp - 0x29]
mov rax, qword [rcx]
lea rdx, [rbp - 0x31]
call qword [rax + 0x80]
cmp dword [rbp - 1], 9
jne 0x15036d67c
xor edx, edx
lea rcx, [rbp - 0x21]
call fcn.1502aa17c
nop
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rcx]
mov r8, qword [rdx + 0x80]
lea rdx, [rsp + 0x40]
call r8
cmp dword [rbp - 0x69], 9
jne 0x15036d6a6
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.1502aa17c
nop
jmp 0x15036dc34
mov al, byte [r14 + 1]
mov bl, 0x60
and al, bl
cmp al, bl
jne 0x15036d6ca
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035e318
mov r15d, eax
jmp 0x15036d6f4
mov rax, qword [r14 + 0x20]
mov rcx, qword [rax + 0x20]
cmp byte [rcx + 0x4b], sil
jne 0x15036d6f4
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035df00
mov r15, rsi
test al, al
mov eax, 1
cmovne r15, rax
mov rcx, r14
call fcn.15035c928
mov edx, eax
cmp eax, 0xa
jg 0x15036d95a
je 0x15036d8fe
sub edx, 1
je 0x15036d7ae
sub edx, 1
je 0x15036d7a1
sub edx, 1
je 0x15036d890
sub edx, 1
je 0x15036d836
sub edx, 1
je 0x15036d7bb
sub edx, 1
je 0x15036d7ae
sub edx, 1
je 0x15036d7a1
sub edx, 1
je 0x15036d799
cmp edx, 1
jne 0x15036dc34
mov rbx, rsi
test r15, r15
je 0x15036dc34
xorps xmm0, xmm0
movups xmmword [rbp - 0x51], xmm0
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x39], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp - 0x51], sil
mov al, byte [r14 + 1]
and al, 0x60
mov r8, r14
mov rdx, r12
mov rcx, r13
cmp al, 0x60
jne 0x15036db7b
mov r9d, ebx
call fcn.150360cb0
jmp 0x15036db80
mov rdi, r15
jmp 0x15036dc34
lea rdi, [r15*4]
jmp 0x15036dc34
lea rdi, [r15*8]
jmp 0x15036dc34
mov al, byte [r14 + 1]
and al, bl
cmp al, bl
jne 0x15036d80b
test r15, r15
je 0x15036dc34
mov r9d, esi
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035edac
movsxd rcx, eax
mov edx, 1
or rcx, rdx
bsr rax, rcx
lea ecx, [rax*8 + 0x49]
add ecx, eax
shr rcx, 6
add rdi, rcx
add rsi, rdx
cmp rsi, r15
jb 0x15036d7ce
jmp 0x15036dc34
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035ebb0
movsxd rcx, eax
or rcx, 1
bsr rax, rcx
lea edi, [rax*8 + 0x49]
add edi, eax
shr rdi, 6
jmp 0x15036dc34
mov al, byte [r14 + 1]
and al, bl
cmp al, bl
jne 0x15036d880
test r15, r15
je 0x15036dc34
mov r9d, esi
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035f8e8
mov edx, 1
or rax, rdx
bsr rcx, rax
lea ecx, [rcx + rcx*8]
add ecx, 0x49
shr rcx, 6
add rdi, rcx
add rsi, rdx
cmp rsi, r15
jb 0x15036d849
jmp 0x15036dc34
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035f6e8
jmp 0x15036d8e8
mov al, byte [r14 + 1]
and al, bl
cmp al, bl
jne 0x15036d8da
test r15, r15
je 0x15036dc34
mov r9d, esi
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035f16c
mov edx, 1
or rax, rdx
bsr rcx, rax
lea ecx, [rcx + rcx*8]
add ecx, 0x49
shr rcx, 6
add rdi, rcx
add rsi, rdx
cmp rsi, r15
jb 0x15036d8a3
jmp 0x15036dc34
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035ef6c
or rax, 1
bsr rcx, rax
lea edi, [rcx*8 + 0x49]
add edi, ecx
jmp 0x15036d82d
mov al, byte [r14 + 1]
and al, bl
cmp al, bl
jne 0x15036d93b
test r15, r15
je 0x15036dc34
mov r9d, esi
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.150361f58
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x38]
add rdi, rax
inc rsi
cmp rsi, r15
jb 0x15036d911
jmp 0x15036dc34
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.1503615f8
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x38]
mov rdi, rax
jmp 0x15036dc34
sub edx, 0xb
je 0x15036dbb4
sub edx, 1
je 0x15036d752
sub edx, 1
je 0x15036db1a
sub edx, 1
je 0x15036da92
sub edx, 1
je 0x15036d7a1
sub edx, 1
je 0x15036d7ae
sub edx, 1
je 0x15036da1c
cmp edx, 1
jne 0x15036dc34
mov al, byte [r14 + 1]
and al, bl
cmp al, bl
jne 0x15036d9fc
test r15, r15
je 0x15036dc34
mov r9d, esi
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035f16c
mov rcx, rax
sar rcx, 0x3f
add rax, rax
xor rcx, rax
mov edx, 1
or rcx, rdx
bsr rax, rcx
lea ecx, [rax*8 + 0x49]
add ecx, eax
shr rcx, 6
add rdi, rcx
add rsi, rdx
cmp rsi, r15
jb 0x15036d9b5
jmp 0x15036dc34
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035ef6c
mov rcx, rax
sar rcx, 0x3f
add rax, rax
xor rcx, rax
jmp 0x15036d81c
mov al, byte [r14 + 1]
and al, bl
cmp al, bl
jne 0x15036da70
test r15, r15
je 0x15036dc34
mov r9d, esi
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035edac
mov ecx, eax
sar ecx, 0x1f
add eax, eax
xor ecx, eax
mov edx, 1
or ecx, edx
bsr eax, ecx
lea ecx, [rax*8 + 0x49]
add ecx, eax
shr rcx, 6
add rdi, rcx
add rsi, rdx
cmp rsi, r15
jb 0x15036da2f
jmp 0x15036dc34
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035ebb0
mov ecx, eax
sar ecx, 0x1f
add eax, eax
xor ecx, eax
or ecx, 1
bsr eax, ecx
jmp 0x15036d824
mov al, byte [r14 + 1]
and al, bl
cmp al, bl
jne 0x15036db03
test r15, r15
je 0x15036dc34
mov r9d, esi
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15036125c
mov ebx, eax
mov rcx, r14
call fcn.1503a2614
mov rcx, qword [rax + 0x10]
mov r8d, ebx
mov rdx, rax
mov rcx, qword [rcx + 0x80]
call fcn.15038552c
movsxd rcx, dword [rax + 4]
mov edx, 1
or rcx, rdx
bsr rax, rcx
lea ecx, [rax*8 + 0x49]
add ecx, eax
shr rcx, 6
add rdi, rcx
add rsi, rdx
cmp rsi, r15
jb 0x15036daa5
jmp 0x15036dc34
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.150360f48
movsxd rcx, dword [rax + 4]
jmp 0x15036d81c
mov al, byte [r14 + 1]
and al, bl
cmp al, bl
jne 0x15036db62
test r15, r15
je 0x15036dc34
mov r9d, esi
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035f528
mov edx, 1
or eax, edx
bsr ecx, eax
lea ecx, [rcx + rcx*8]
add ecx, 0x49
shr rcx, 6
add rdi, rcx
add rsi, rdx
cmp rsi, r15
jb 0x15036db2d
jmp 0x15036dc34
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.15035f32c
or eax, 1
bsr ecx, eax
jmp 0x15036d8f0
call fcn.1503607b0
mov rdx, rax
mov eax, dword [rax + 0x10]
mov r8d, 1
or eax, r8d
bsr ecx, eax
lea ecx, [rcx + rcx*8]
add ecx, 0x49
shr rcx, 6
add rcx, qword [rdx + 0x10]
add rdi, rcx
add rbx, r8
cmp rbx, r15
jb 0x15036d75e
jmp 0x15036dc34
mov al, byte [r14 + 1]
and al, bl
cmp al, bl
jne 0x15036dc05
test r15, r15
je 0x15036dc34
mov r9d, esi
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.150361f58
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x38]
mov ecx, eax
mov r8d, 1
or ecx, r8d
bsr edx, ecx
lea edx, [rdx + rdx*8]
add edx, 0x49
shr rdx, 6
add rdx, rax
add rdi, rdx
add rsi, r8
cmp rsi, r15
jb 0x15036dbc3
jmp 0x15036dc34
mov r8, r14
mov rdx, r12
mov rcx, r13
call fcn.1503615f8
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x38]
mov ecx, eax
or ecx, 1
bsr edx, ecx
lea edi, [rdx*8 + 0x49]
add edi, edx
shr rdi, 6
add rdi, rax
mov rax, rdi
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.15040aca0
mov rbx, qword [rsp + 0x150]
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret