Function at 0x140188750
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
mov rax, qword [0x1403e39c0]
xor rax, rsp
mov qword [rbp + 0xf], rax
xor r14d, r14d
mov dword [rbp - 0x41], r8d
and dword [rdx], r14d
mov r13d, r9d
and dword [rdx + 4], r14d
mov edi, r8d
mov rax, qword [rcx]
mov r15, rdx
mov qword [rbp - 0x31], rdx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x418
mov rsi, rcx
call qword [rax + 0x238]
or r8, 0xffffffffffffffff
movsxd r12, eax
mov qword [rbp - 0x39], r12
mov rbx, rax
mov qword [rbp - 0x11], rax
test eax, eax
je 0x140188817
lea eax, [r14 + 0x20]
mul r12
cmovo rax, r8
mov rcx, rax
call fcn.140011164
xor r15d, r15d
mov r14, rax
test ebx, ebx
jle 0x14018880f
lea rdi, [rax + 8]
mov rax, qword [rsi]
lea r9, [rdi - 8]
movsxd r8, r15d
mov edx, 0x417
mov rcx, rsi
call qword [rax + 0x238]
xor byte [rdi], 4
inc r15d
lea rdi, [rdi + 0x20]
sub r12, 1
jne 0x1401887e0
mov edi, dword [rbp - 0x41]
mov r12, qword [rbp - 0x39]
mov r15, qword [rbp - 0x31]
or r8, 0xffffffffffffffff
test ebx, ebx
jle 0x140188b2d
mov ecx, dword [rsi + 0x124]
test cl, 2
jne 0x1401888d2
mov eax, ecx
and eax, 4
je 0x1401888af
test dil, 4
je 0x140188844
mov r9d, dword [rsi + 0x108]
jmp 0x1401888bf
test dil, 8
je 0x140188852
mov r9d, 0x7fff
jmp 0x1401888bf
test dil, 0x10
je 0x14018885d
xor r9d, r9d
jmp 0x1401888bf
cmp r13d, r8d
je 0x1401888aa
xorps xmm0, xmm0
lea rcx, [rbp - 0x21]
movdqu xmmword [rbp - 0x21], xmm0
call qword [sym.imp.USER32.dll_SetRectEmpty]
mov rax, qword [rsi]
lea rdx, [rbp - 0x21]
mov r8d, edi
mov rcx, rsi
and r8d, 2
call qword [rax + 0x2e0]
mov ecx, edi
and ecx, 0x20
je 0x14018889a
mov eax, dword [rbp - 0x15]
sub eax, dword [rbp - 0x1d]
jmp 0x1401888a0
mov eax, dword [rbp - 0x19]
sub eax, dword [rbp - 0x21]
lea r9d, [rax + r13]
mov dword [rsp + 0x20], ecx
jmp 0x1401888c4
test cl, 1
jne 0x14018883b
mov eax, edi
and al, 2
neg al
sbb r9d, r9d
and r9d, 0x7fff
and dword [rsp + 0x20], 0
mov r8d, ebx
mov rdx, r14
mov rcx, rsi
call fcn.14018a230
mov r9d, ebx
lea rdx, [rbp - 0x21]
mov r8, r14
mov rcx, rsi
call fcn.140188bc0
mov rcx, qword [rax]
mov qword [r15], rcx
test dil, 0x40
je 0x140188b25
mov eax, dword [rsi + 0x160]
xor edi, edi
and dword [rsi + 0x160], edi
xor r13d, r13d
mov dword [rbp - 0x3d], eax
test r12, r12
jle 0x140188a2e
mov rcx, qword [rbp - 0x39]
lea r12, [r14 + 4]
mov rax, r12
test byte [rax + 5], 1
je 0x140188929
cmp dword [rax], r13d
je 0x140188929
inc edi
add rax, 0x20
sub rcx, 1
jne 0x14018891c
test edi, edi
jle 0x140188a2e
lea eax, [rcx + 0x18]
movsxd r15, edi
mul r15
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.140011164
mov r13, rax
test rax, rax
je 0x140188982
test edi, edi
je 0x140188985
add rax, 0x10
and dword [rax - 8], 0
and dword [rax - 4], 0
and dword [rax], 0
and dword [rax + 4], 0
lea rax, [rax + 0x18]
sub r15, 1
jne 0x140188967
jmp 0x140188985
xor r13d, r13d
movsxd rax, edi
lea rbx, [r13 + 8]
xor ecx, ecx
mov qword [rbp - 0x21], rax
xor edi, edi
mov qword [rbp - 0x49], rcx
xor r15d, r15d
mov r8, rax
mov rax, qword [rbp - 0x39]
xor edx, edx
mov qword [rbp - 0x29], rdx
cmp rdx, r8
jge 0x140188a26
test byte [r12 + 5], 1
je 0x140188a13
cmp dword [r12], 0
je 0x140188a13
mov dword [rbx - 8], r15d
lea r8, [rbp - 1]
mov eax, dword [r12]
xorps xmm0, xmm0
mov dword [rbx - 4], eax
mov edx, r15d
mov rax, qword [rsi]
mov rcx, rsi
movdqu xmmword [rbp - 1], xmm0
call qword [rax + 0x360]
lea rdx, [rbp - 1]
mov rcx, rsi
call fcn.1400163f4
mov rdx, qword [rbp - 0x29]
inc edi
movups xmm0, xmmword [rbp - 1]
mov rcx, qword [rbp - 0x49]
inc rdx
mov rax, qword [rbp - 0x39]
mov r8, qword [rbp - 0x21]
movdqu xmmword [rbx], xmm0
add rbx, 0x18
mov qword [rbp - 0x29], rdx
inc rcx
inc r15d
add r12, 0x20
mov qword [rbp - 0x49], rcx
cmp rcx, rax
jl 0x1401889a8
mov rbx, qword [rbp - 0x11]
mov r15, qword [rbp - 0x31]
mov eax, dword [rsi + 0x124]
and eax, 5
cmp al, 5
jne 0x140188a44
mov eax, dword [r15]
mov dword [rsi + 0x108], eax
xor r15d, r15d
test ebx, ebx
jle 0x140188a68
mov r12, r14
mov r8, r12
mov edx, r15d
mov rcx, rsi
call fcn.14018a634
inc r15d
add r12, 0x20
cmp r15d, ebx
jl 0x140188a4e
test edi, edi
jle 0x140188b15
movsxd r12, edi
lea r15, [r13 + 8]
mov edx, dword [r15 - 4]
mov rcx, rsi
call fcn.14003cfac
mov qword [rbp - 0x11], rax
test rax, rax
je 0x140188aff
mov rcx, qword [rax + 0x40]
lea rdx, [rbp - 0x21]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x21], xmm0
call qword [sym.imp.USER32.dll_GetWindowRect]
mov rax, qword [r15]
lea r8, [rbp - 0x21]
mov edi, dword [rbp - 0x21]
mov rcx, rsi
mov ebx, dword [rbp - 0x1d]
sub edi, eax
mov edx, dword [r15 - 8]
shr rax, 0x20
sub ebx, eax
mov rax, qword [rsi]
call qword [rax + 0x360]
mov ecx, dword [rbp - 0x1d]
xor edx, edx
mov r8d, dword [rbp - 0x21]
add ecx, ebx
mov dword [rbp - 0x45], ecx
add r8d, edi
mov rcx, qword [rbp - 0x11]
mov dword [rbp - 0x49], r8d
mov r9, qword [rbp - 0x49]
mov dword [rsp + 0x30], reloc.OLEAUT32.dll_SafeArrayUnlock
and dword [rsp + 0x28], 0
and dword [rsp + 0x20], 0
shr r9, 0x20
call fcn.14003dd78
add r15, 0x18
sub r12, 1
jne 0x140188a77
mov rcx, r13
call fcn.140010948
mov eax, dword [rbp - 0x3d]
mov edi, dword [rbp - 0x41]
mov r15, qword [rbp - 0x31]
mov dword [rsi + 0x160], eax
mov rcx, r14
call fcn.140010948
xorps xmm0, xmm0
lea rcx, [rbp - 0x11]
movdqu xmmword [rbp - 0x11], xmm0
call qword [sym.imp.USER32.dll_SetRectEmpty]
mov rax, qword [rsi]
lea rdx, [rbp - 0x11]
mov ebx, edi
mov rcx, rsi
and ebx, 2
mov r8d, ebx
call qword [rax + 0x2e0]
mov eax, dword [rbp - 0xd]
lea rdx, [rbp - 0x49]
sub eax, dword [rbp - 5]
and edi, 1
add dword [r15 + 4], eax
mov r9d, ebx
mov eax, dword [rbp - 0x11]
mov r8d, edi
sub eax, dword [rbp - 9]
mov rcx, rsi
add dword [r15], eax
call fcn.140186724
mov rcx, qword [rbp - 0x49]
mov rax, r15
cmp dword [r15], ecx
cmovg ecx, dword [r15]
mov dword [r15], ecx
mov ecx, dword [rbp - 0x45]
cmp dword [r15 + 4], ecx
cmovg ecx, dword [r15 + 4]
mov dword [r15 + 4], ecx
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.1402410d0
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret