Function at 0x180051b20
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1c8
call fcn.1800c7940
sub rsp, rax
mov rax, qword [0x18010db20]
xor rax, rsp
mov qword [rsp + 0x1b0], rax
xor esi, esi
mov ebx, ecx
mov rcx, qword [rsp + 0x230]
mov eax, r8d
mov qword [rsp + 0x78], rdx
mov rdx, qword [rsp + 0x238]
mov qword [rsp + 0x90], rcx
xor ecx, ecx
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x171], rcx
mov qword [rsp + 0x179], rcx
mov qword [rsp + 0x181], rcx
mov qword [rsp + 0x189], rcx
mov qword [rsp + 0x191], rcx
mov qword [rsp + 0x199], rcx
mov qword [rsp + reloc.OLEAUT32.dll_OleLoadPicture], rcx
mov dword [rsp + 0x1a9], ecx
mov word [rsp + 0x1ad], cx
mov byte [rsp + 0x1af], cl
mov byte [rsp + 0x130], cl
mov qword [rsp + 0x131], rcx
mov qword [rsp + 0x139], rcx
mov qword [rsp + 0x141], rcx
mov qword [rsp + 0x149], rcx
mov qword [rsp + 0x151], rcx
mov qword [rsp + 0x159], rcx
mov qword [rsp + 0x161], rcx
mov dword [rsp + 0x169], ecx
mov word [rsp + 0x16d], cx
mov byte [rsp + 0x16f], cl
lea rdx, [0x18010fb58]
mov ecx, eax
mov r8d, 0x6dc
mov qword [rsp + 0x80], r9
mov dword [rsp + 0x30], eax
mov r12d, esi
mov qword [rsp + 0x60], rsi
mov rdi, rsi
mov qword [rsp + 0x68], rsi
mov r15, rsi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rsi
mov byte [rsp + 0x170], sil
call fcn.180055b80
mov byte [rsp + 0x110], sil
mov r13, rax
xor eax, eax
mov qword [rsp + 0x48], rsi
mov r14, rsi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x111], rax
mov qword [rsp + 0x119], rax
mov qword [rsp + 0x121], rax
mov dword [rsp + 0x129], eax
mov word [rsp + 0x12d], ax
mov byte [rsp + 0x12f], al
call fcn.1800531d0
mov ecx, ebx
mov rbp, rax
call fcn.180056350
mov rsi, rax
test rax, rax
je 0x1800520e7
test rbp, rbp
je 0x1800520e7
xor r8d, r8d
mov rdx, rbp
mov rcx, rax
call fcn.180056560
test eax, eax
je 0x1800520e7
call fcn.180057f40
mov qword [rsp + 0x60], rax
call fcn.1800531d0
mov rdi, rax
call fcn.1800531d0
mov qword [rsp + 0x68], rax
call fcn.1800531d0
mov r15, rax
call fcn.1800531d0
mov rbx, rax
mov qword [rsp + 0x50], rax
call fcn.1800531d0
mov qword [rsp + 0x38], rax
call fcn.1800531d0
mov rcx, rsi
mov qword [rsp + 0x40], rax
call fcn.180056b50
mov rcx, rsi
mov qword [rsp + 0x48], rax
call fcn.180056b50
mov rcx, rsi
mov r14, rax
call fcn.180056b50
mov rcx, rsi
mov qword [rsp + 0x58], rax
call fcn.180056b50
mov qword [rsp + 0x70], rax
cmp qword [rsp + 0x60], r12
je 0x1800520ea
test rdi, rdi
je 0x1800520ea
cmp qword [rsp + 0x48], r12
je 0x1800520ea
test r14, r14
je 0x1800520ea
cmp qword [rsp + 0x58], r12
je 0x1800520ea
test rax, rax
je 0x1800520ea
test r15, r15
je 0x1800520ea
test rbx, rbx
je 0x1800520ea
cmp qword [rsp + 0x38], r12
je 0x1800520ea
cmp qword [rsp + 0x40], r12
je 0x1800520ea
mov r9, qword [rsp + 0x90]
mov r8, qword [rsp + 0x80]
mov rdx, r14
mov rcx, rsi
mov qword [rsp + 0x20], r12
call fcn.180056f00
test eax, eax
je 0x1800520ea
nop dword [rax]
mov rdx, rbp
mov rcx, rdi
call fcn.1800585c0
test eax, eax
je 0x1800520ea
cmp dword [rdi + 8], 0
je 0x180051df0
mov rdx, qword [rsp + 0x48]
xor eax, eax
xor r9d, r9d
mov qword [rsp + 0x28], rax
mov r8, rdi
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180057530
test eax, eax
je 0x1800520ea
mov rdx, qword [rsp + 0x48]
mov r9, rbx
mov r8, r15
mov rcx, rsi
mov qword [rsp + 0x20], 0
call fcn.180057010
test eax, eax
je 0x1800520ea
lea rdx, [rsp + 0x170]
mov rcx, r15
call fcn.1800510a0
test eax, eax
je 0x1800520ea
lea rdx, [rsp + 0x190]
mov rcx, rbx
call fcn.1800510a0
test eax, eax
je 0x1800520ea
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov rcx, rsi
call fcn.1800565a0
mov r12d, eax
test eax, eax
je 0x1800520ea
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x58]
mov r9, r14
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
call fcn.180057530
test eax, eax
je 0x1800520ea
mov rdx, qword [rsp + 0x58]
mov rcx, rsi
call fcn.1800572a0
test eax, eax
jne 0x1800520ea
mov rdx, qword [rsp + 0x70]
mov r9, r14
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rdi
call fcn.180057530
test eax, eax
je 0x1800520ea
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x70]
mov rcx, rsi
mov qword [rsp + 0x20], 0
call fcn.180057010
test eax, eax
je 0x1800520ea
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x130]
call fcn.1800510a0
test eax, eax
je 0x1800520ea
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x150]
call fcn.1800510a0
test eax, eax
je 0x1800520ea
mov eax, dword [rsp + 0x30]
lea rcx, [rsp + 0x130]
mov r9, r13
lea r8d, [rax*8]
mov edx, 0x40
call fcn.1800518f0
mov r12d, eax
test eax, eax
je 0x1800520ea
mov edx, dword [rsp + 0x30]
mov rcx, r13
call fcn.180051af0
test eax, eax
jne 0x180051df0
mov r12, qword [rsp + 0x78]
test edx, edx
jle 0x180051fd1
mov r9, r12
mov r8, rdx
sub r9, r13
nop dword [rax + rax]
movzx eax, byte [r9 + rcx]
inc rcx
xor byte [rcx - 1], al
sub r8, 1
jne 0x180051fc0
lea rcx, [rsp + 0xa0]
call fcn.180059770
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0xa0]
mov r8d, 0x20
call fcn.180059c60
mov eax, dword [rsp + 0x30]
lea rcx, [rsp + 0xa0]
mov r8, rax
mov rdx, r12
mov rbx, rax
call fcn.180059c60
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0xa0]
mov r8d, 0x20
call fcn.180059c60
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x110]
call fcn.180059d50
mov r12, qword [rsp + 0x88]
lea rcx, [rsp + 0x170]
mov rax, qword [rcx]
mov r8, rbx
mov rdx, r13
mov qword [r12 + 1], rax
mov rax, qword [rcx + 8]
mov byte [r12], 4
mov qword [r12 + 9], rax
mov rax, qword [rcx + 0x10]
mov qword [r12 + 0x11], rax
mov rax, qword [rcx + 0x18]
mov qword [r12 + 0x19], rax
mov rax, qword [rcx + 0x20]
mov qword [r12 + 0x21], rax
mov rax, qword [rcx + 0x28]
mov qword [r12 + 0x29], rax
mov rax, qword [rcx + 0x30]
mov qword [r12 + 0x31], rax
mov rax, qword [rcx + 0x38]
lea rcx, [r12 + 0x41]
mov qword [r12 + 0x39], rax
call fcn.180036ef0
lea rcx, [rsp + 0x110]
mov rax, qword [rcx]
mov qword [rbx + r12 + 0x41], rax
mov rax, qword [rcx + 8]
mov qword [rbx + r12 + 0x49], rax
mov rax, qword [rcx + 0x10]
mov qword [rbx + r12 + 0x51], rax
mov rax, qword [rcx + 0x18]
mov qword [rbx + r12 + 0x59], rax
mov rbx, qword [rsp + 0x50]
mov r12d, 1
jmp 0x1800520ea
mov rbx, rdi
test r13, r13
je 0x1800520f7
mov rcx, r13
call fcn.180055e30
test rdi, rdi
je 0x180052104
mov rcx, rdi
call fcn.1800530f0
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x180052116
mov rcx, rax
call fcn.1800530f0
test r15, r15
je 0x180052123
mov rcx, r15
call fcn.1800530f0
test rbx, rbx
je 0x180052130
mov rcx, rbx
call fcn.1800530f0
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x180052142
mov rcx, rax
call fcn.1800530f0
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x180052154
mov rcx, rax
call fcn.1800530f0
test rbp, rbp
je 0x180052161
mov rcx, rbp
call fcn.1800530f0
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x180052173
mov rcx, rax
call fcn.180056c50
test r14, r14
je 0x180052180
mov rcx, r14
call fcn.180056c50
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x180052192
mov rcx, rax
call fcn.180056c50
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x1800521a4
mov rcx, rax
call fcn.180056c50
test rsi, rsi
je 0x1800521b1
mov rcx, rsi
call fcn.1800575f0
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x1800521c3
mov rcx, rax
call fcn.180057fc0
mov eax, r12d
mov rcx, qword [rsp + 0x1b0]
xor rcx, rsp
call fcn.180037360
add rsp, 0x1c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret