Function at 0x180050980
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rbx
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x158]
sub rsp, 0x220
mov r9, qword [0x18020a760]
xor r12d, r12d
mov r10, qword [0x18020a758]
mov r13d, r12d
movzx r11d, byte [0x18020a750]
mov edi, r12d
mov qword [rax - 0x40], rsi
mov r15d, r12d
mov dword [rbp + 0x160], r12d
movaps xmmword [rax - 0x58], xmm6
nop dword [rax]
test r11b, r11b
je 0x1800509e0
test r10, r10
je 0x1800509eb
mov eax, dword [r10 + 0x14]
jmp 0x1800509ee
test r9, r9
je 0x1800509eb
mov eax, dword [r9 + 0xc]
jmp 0x1800509ee
mov eax, r12d
cmp edi, eax
jge 0x180051a5a
test r11b, r11b
je 0x180050a3d
test r10, r10
je 0x180050ab2
test edi, edi
js 0x180050a55
cmp edi, dword [r10 + 0x14]
jg 0x180050a55
movzx ecx, di
mov eax, edi
test edi, edi
jns 0x180050a23
lea eax, [rdi + 0xffff]
sub ecx, 0x10000
mov rdx, qword [r10]
sar eax, 0x10
movsxd r8, eax
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdx + r8*8]
mov rsi, qword [rax + rcx*8]
jmp 0x180050a58
test r9, r9
je 0x180050ab2
test edi, edi
js 0x180050a55
cmp edi, dword [r9 + 0xc]
jg 0x180050a55
mov rax, qword [r9]
mov rsi, qword [r15 + rax]
jmp 0x180050a58
mov rsi, r12
test rsi, rsi
je 0x180050ab2
call fcn.180029870
mov rbx, qword [rsi + 0x10]
mov r14, rax
test rbx, rbx
je 0x180050a9c
nop
cmp rbx, r14
je 0x180050a92
mov rcx, rbx
call fcn.18004c7a0
test al, al
je 0x180050a9c
mov eax, dword [0x18020a74c]
mov rbx, qword [rax + rbx]
test rbx, rbx
jne 0x180050a70
jmp 0x180050a9c
mov eax, dword [rsi + 8]
shr eax, 4
test al, 1
je 0x180050abd
mov r9, qword [0x18020a760]
mov r10, qword [0x18020a758]
movzx r11d, byte [0x18020a750]
inc edi
add r15, 0x18
jmp 0x1800509d0
mov rcx, qword [rsi]
mov qword [rbp + 0x178], rcx
test rcx, rcx
je 0x180051a5a
mov rax, qword [rbp + 0x170]
mov rdx, r12
movss xmm6, dword [0x1800f9994]
mov r9d, r12d
mov dword [rbp + 0x160], r12d
mov r14, qword [rbp + 0x160]
mov r15, qword [rbp + 0x160]
mov rsi, qword [rbp + 0x160]
mov qword [rbp + 0x170], rax
mov rax, qword [rbp + 0x168]
mov qword [rbp + 0x168], rax
mov qword [rsp + 0x20], rdx
nop dword [rax + rax]
mov rdx, qword [rcx + rdx*8]
test rdx, rdx
je 0x18005180e
mov rax, qword gs:[0x60]
mov r8, qword [rax + 0x10]
cmp rdx, r8
jbe 0x18005180e
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rdx, rcx
jae 0x180051807
cmp byte [rdx], 0xe9
jne 0x180050b8b
mov rax, qword gs:[0x60]
movsxd rbx, dword [rdx + 1]
add rbx, 5
add rbx, rdx
mov r8, qword [rax + 0x10]
cmp rbx, r8
jbe 0x180050b8b
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180050b8e
mov rbx, rdx
movdqa xmm0, xmmword [0x1800f9e70]
mov ecx, 0x1c
movdqu xmmword [rbp + 8], xmm0
mov qword [rbp + 0x18], r12
mov dword [rbp + 0x20], 3
call fcn.1800b31c4
mov r8d, 0x1c
mov qword [rbp], rax
lea rdx, [rbp + 8]
mov rcx, rax
mov rdi, rax
call fcn.1800daaf0
or r13d, 1
mov r9d, r12d
mov r10, r12
mov edx, r12d
mov rax, r12
nop dword [rax]
mov r8d, dword [rdi + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x180050bfb
cmp r8d, 0xffffffff
jne 0x180050c87
inc edx
mov eax, edx
cmp rax, 7
jb 0x180050be0
lea rax, [r10 + rbx]
test rax, rax
je 0x180050e6e
mov r8, qword [rsp + 0x20]
mov rax, qword [rbp + 0x178]
mov r8, qword [rax + r8*8]
cmp byte [r8], 0xe9
jne 0x180050c9c
mov rax, qword gs:[0x60]
movsxd rbx, dword [r8 + 1]
add rbx, 5
add rbx, r8
mov rdx, qword [rax + 0x10]
cmp rbx, rdx
jbe 0x180050c9c
movsxd rax, dword [rdx + 0x3c]
mov ecx, dword [rax + rdx + 0x50]
add rcx, rdx
cmp rbx, rcx
jae 0x180050c9c
mov ecx, 8
mov dword [rsp + 0x30], 0x84
mov dword [rsp + 0x34], 0xc0
call fcn.1800b31c4
mov rcx, qword [rsp + 0x30]
mov r11, rax
mov qword [rbp + 0x168], rax
mov qword [rax], rcx
add rax, 8
jmp 0x180050cd2
inc r9d
inc r10
cmp r9d, 0x69
jae 0x180050e6e
jmp 0x180050bd3
mov ecx, 8
mov dword [rsp + 0x30], 0x84
mov rbx, r8
mov dword [rsp + 0x34], 0xc0
call fcn.1800b31c4
mov rcx, rax
mov qword [rbp + 0x168], rax
mov rax, qword [rsp + 0x30]
mov r11, rcx
mov qword [rcx], rax
lea rax, [rcx + 8]
mov r10d, 2
mov qword [rbp + 0x170], rax
or r13d, r10d
mov edx, r12d
mov r9d, r12d
mov rdi, r12
test r10, r10
je 0x180050d20
mov rax, r12
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [r11 + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x180050d17
cmp r8d, 0xffffffff
jne 0x180050d92
inc edx
mov eax, edx
cmp rax, r10
jb 0x180050d00
lea rax, [rdi + rbx]
test rax, rax
je 0x180050e6e
mov rax, qword [rsp + 0x20]
mov rdx, qword [rbp + 0x178]
mov rdx, qword [rdx + rax*8]
cmp byte [rdx], 0xe9
jne 0x180050dc7
mov rax, qword gs:[0x60]
movsxd rbx, dword [rdx + 1]
add rbx, 5
add rbx, rdx
mov r8, qword [rax + 0x10]
cmp rbx, r8
jbe 0x180050dc7
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jae 0x180050dc7
mov rax, qword [rbp + 0x168]
mov qword [rbp + 0x168], rax
mov rax, qword [rbp + 0x170]
mov qword [rbp + 0x170], rax
jmp 0x180050dca
inc r9d
inc rdi
cmp r9d, 0x6e
jae 0x180050da6
mov edx, r12d
jmp 0x180050cf0
mov rax, qword [rbp + 0x168]
mov rcx, qword [rbp + 0x170]
mov qword [rbp + 0x168], rax
mov qword [rbp + 0x170], rcx
jmp 0x180050e6e
mov rbx, rdx
mov ecx, 0xc
mov dword [rsp + 0x40], 0x48
mov dword [rsp + 0x44], 0x8b
mov dword [rsp + 0x48], 0xcb
call fcn.1800b31c4
mov rdi, rax
mov qword [rbp - 0x10], rax
add rax, 0xc
lea rdx, [rsp + 0x40]
mov rcx, rdi
mov qword [rbp - 8], rax
mov r8d, 0xc
call fcn.1800daaf0
or r13d, 4
mov r10, r12
mov r9d, r12d
mov edx, r12d
mov rax, r12
nop
mov r8d, dword [rdi + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x180050e3b
cmp r8d, 0xffffffff
jne 0x180051489
inc edx
mov eax, edx
cmp rax, 3
jb 0x180050e20
mov rdi, qword [rbp + 0x168]
lea rax, [r10 + rbx]
mov rcx, qword [rbp + 0x170]
mov qword [rbp + 0x168], rdi
mov qword [rbp + 0x170], rcx
test rax, rax
jne 0x180051549
mov rax, qword [rsp + 0x20]
mov rcx, qword [rbp + 0x178]
mov rdx, qword [rcx + rax*8]
cmp byte [rdx], 0xe9
jne 0x180050eb1
mov rax, qword gs:[0x60]
movsxd rbx, dword [rdx + 1]
add rbx, 5
add rbx, rdx
mov r8, qword [rax + 0x10]
cmp rbx, r8
jbe 0x180050eb1
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180050eb4
mov rbx, rdx
movdqa xmm0, xmmword [0x1800f9b60]
mov ecx, 0x44
movdqa xmm1, xmmword [0x1800f9e10]
movdqu xmmword [rbp + 0xb0], xmm0
movdqa xmm0, xmmword [0x1800f9c10]
movdqu xmmword [rbp + 0xc0], xmm1
movdqa xmm1, xmmword [0x1800f9c30]
movdqu xmmword [rbp + 0xd0], xmm0
movdqu xmmword [rbp + 0xe0], xmm1
mov dword [rbp + 0xf0], 0xc0
call fcn.1800b31c4
mov rdi, rax
mov qword [rbp - 0x20], rax
add rax, 0x44
lea rdx, [rbp + 0xb0]
mov rcx, rdi
mov qword [rbp - 0x18], rax
mov r8d, 0x44
call fcn.1800daaf0
or r13d, 8
mov r9d, r12d
mov r10, r12
mov edx, r12d
mov rax, r12
nop dword [rax]
mov r8d, dword [rdi + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x180050f5b
cmp r8d, 0xffffffff
jne 0x1800514ba
inc edx
mov eax, edx
cmp rax, 0x11
jb 0x180050f40
lea rax, [r10 + rbx]
test rax, rax
jne 0x180051549
mov rdi, qword [rsp + 0x20]
mov rax, qword [rbp + 0x178]
mov rdx, qword [rax + rdi*8]
cmp byte [rdx], 0xe9
jne 0x180050fb5
mov rax, qword gs:[0x60]
movsxd rbx, dword [rdx + 1]
add rbx, 5
add rbx, rdx
mov r8, qword [rax + 0x10]
cmp rbx, r8
jbe 0x180050fb5
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180050fb8
mov rbx, rdx
movdqa xmm0, xmmword [0x1800f9e20]
mov ecx, 0x1c
movdqu xmmword [rbp + 0x28], xmm0
mov dword [rbp + 0x38], 0xffffffff
mov qword [rbp + 0x3c], r12
call fcn.1800b31c4
mov rsi, rax
lea rdx, [rbp + 0x28]
add rax, 0x1c
mov rcx, rsi
mov r8d, 0x1c
mov qword [rbp - 0x28], rax
call fcn.1800daaf0
or r13d, 0x10
mov r10, r12
mov r9d, r12d
mov edx, r12d
mov rax, r12
nop word [rax + rax]
mov r8d, dword [rsi + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x18005102b
cmp r8d, 0xffffffff
jne 0x1800514cf
inc edx
mov eax, edx
cmp rax, 7
jb 0x180051010
lea rax, [r10 + rbx]
test rax, rax
je 0x180051117
mov rax, qword [rbp + 0x178]
mov rdx, qword [rax + rdi*8]
cmp byte [rdx], 0xe9
jne 0x180051080
mov rax, qword gs:[0x60]
movsxd rbx, dword [rdx + 1]
add rbx, 5
add rbx, rdx
mov r8, qword [rax + 0x10]
cmp rbx, r8
jbe 0x180051080
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180051083
mov rbx, rdx
movdqa xmm0, xmmword [0x1800f9e80]
mov ecx, 0x20
movdqa xmm1, xmm0
movdqu xmmword [rsp + 0x50], xmm0
movdqu xmmword [rsp + 0x60], xmm0
call fcn.1800b31c4
mov rdi, rax
mov qword [rbp - 0x38], rax
add rax, 0x20
lea rdx, [rsp + 0x50]
mov rcx, rdi
mov qword [rbp - 0x30], rax
mov r8d, 0x20
call fcn.1800daaf0
or r13d, 0x20
mov r10, r12
mov r9d, r12d
mov edx, r12d
mov rax, r12
nop word [rax + rax]
mov r8d, dword [rdi + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x1800510fb
cmp r8d, 0xffffffff
jne 0x1800514e4
inc edx
mov eax, edx
cmp rax, 8
jb 0x1800510e0
lea rax, [rbx + r10]
test rax, rax
jne 0x180051549
mov rdi, qword [rsp + 0x20]
call fcn.18002b060
comiss xmm0, xmm6
jb 0x180051509
mov rax, qword [rbp + 0x178]
mov rdx, qword [rax + rdi*8]
cmp byte [rdx], 0xe9
jne 0x180051163
mov rax, qword gs:[0x60]
movsxd rbx, dword [rdx + 1]
add rbx, 5
add rbx, rdx
mov r8, qword [rax + 0x10]
cmp rbx, r8
jbe 0x180051163
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180051166
mov rbx, rdx
movdqa xmm0, xmmword [0x1800f9e40]
mov ecx, 0x1c
movdqu xmmword [rbp + 0x48], xmm0
mov dword [rbp + 0x58], 0xffffffff
mov qword [rbp + 0x5c], r12
call fcn.1800b31c4
mov rdi, rax
mov qword [rbp - 0x48], rax
add rax, 0x1c
lea rdx, [rbp + 0x48]
mov rcx, rdi
mov qword [rbp - 0x40], rax
mov r8d, 0x1c
call fcn.1800daaf0
or r13d, 0x40
mov r10, r12
mov r9d, r12d
mov edx, r12d
mov rax, r12
nop dword [rax]
mov r8d, dword [rdi + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x1800511db
cmp r8d, 0xffffffff
jne 0x1800514f9
inc edx
mov eax, edx
cmp rax, 7
jb 0x1800511c0
lea rax, [r10 + rbx]
test rax, rax
je 0x180051509
mov rax, qword [rsp + 0x20]
mov rcx, qword [rbp + 0x178]
mov rdx, qword [rcx + rax*8]
cmp byte [rdx], 0xe9
jne 0x180051235
mov rax, qword gs:[0x60]
movsxd rbx, dword [rdx + 1]
add rbx, 5
add rbx, rdx
mov r8, qword [rax + 0x10]
cmp rbx, r8
jbe 0x180051235
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180051238
mov rbx, rdx
movdqa xmm0, xmmword [0x1800f9e60]
mov ecx, 0x18
movdqu xmmword [rbp + 0x88], xmm0
mov dword [rbp + 0x98], 0x48
mov dword [rbp + 0x9c], 0x8b
call fcn.1800b31c4
mov rdi, rax
mov qword [rsp + 0x28], rax
add rax, 0x18
lea rdx, [rbp + 0x88]
mov rcx, rdi
mov qword [rbp - 0x50], rax
mov r8d, 0x18
call fcn.1800daaf0
bts r13d, 7
mov r10, r12
mov r9d, r12d
mov edx, r12d
mov rax, r12
nop dword [rax]
mov r8d, dword [rdi + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x1800512bb
cmp r8d, 0xffffffff
jne 0x180051512
inc edx
mov eax, edx
cmp rax, 6
jb 0x1800512a0
lea rax, [rbx + r10]
test rax, rax
je 0x18005150e
mov rax, qword [rsp + 0x20]
mov rcx, qword [rbp + 0x178]
mov rdx, qword [rcx + rax*8]
cmp byte [rdx], 0xe9
jne 0x180051315
mov rax, qword gs:[0x60]
movsxd rbx, dword [rdx + 1]
add rbx, 5
add rbx, rdx
mov r8, qword [rax + 0x10]
cmp rbx, r8
jbe 0x180051315
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180051318
mov rbx, rdx
movdqa xmm0, xmmword [0x1800f9e50]
mov ecx, 0x1c
movdqu xmmword [rbp + 0x68], xmm0
mov qword [rbp + 0x78], 0xffffffffffffffff
mov dword [rbp + 0x80], 0x44
call fcn.1800b31c4
mov r15, rax
lea rdx, [rbp + 0x68]
add rax, 0x1c
mov rcx, r15
mov r8d, 0x1c
mov qword [rbp - 0x58], rax
call fcn.1800daaf0
bts r13d, 8
mov r10, r12
mov r9d, r12d
mov edx, r12d
mov rax, r12
nop
mov r8d, dword [r15 + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x18005138b
cmp r8d, 0xffffffff
jne 0x180051523
inc edx
mov eax, edx
cmp rax, 7
jb 0x180051370
lea rax, [r10 + rbx]
test rax, rax
jne 0x18005154e
mov rax, qword [rsp + 0x20]
mov rcx, qword [rbp + 0x178]
mov rdx, qword [rcx + rax*8]
cmp byte [rdx], 0xe9
jne 0x1800513e5
mov rax, qword gs:[0x60]
movsxd rbx, dword [rdx + 1]
add rbx, 5
add rbx, rdx
mov r8, qword [rax + 0x10]
cmp rbx, r8
jbe 0x1800513e5
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x1800513e8
mov rbx, rdx
movdqa xmm0, xmmword [0x1800f9e50]
mov rax, 0xffffffffffffffff
movdqu xmmword [rbp - 0x80], xmm0
mov dword [rbp - 0x70], eax
mov dword [rbp - 0x6c], 0x44
lea ecx, [rax + 0x1d]
mov dword [rbp - 0x68], 0xf
call fcn.1800b31c4
mov r14, rax
lea rdx, [rbp - 0x80]
add rax, 0x1c
mov rcx, r14
mov r8d, 0x1c
mov qword [rbp - 0x60], rax
call fcn.1800daaf0
bts r13d, 9
mov r10, r12
mov r9d, r12d
mov edx, r12d
mov rax, r12
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [r14 + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x18005146b
cmp r8d, 0xffffffff
jne 0x180051538
inc edx
mov eax, edx
cmp rax, 7
jb 0x180051450
lea rax, [r10 + rbx]
test rax, rax
jne 0x18005154e
xor bl, bl
jmp 0x180051550
inc r9d
inc r10
cmp r9d, 0x6d
jb 0x180050e18
mov rax, qword [rbp + 0x168]
mov qword [rbp + 0x168], rax
mov rax, qword [rbp + 0x170]
mov qword [rbp + 0x170], rax
jmp 0x180050e6e
inc r9d
inc r10
cmp r9d, 0x5f
jae 0x180050f72
jmp 0x180050f36
inc r9d
inc r10
cmp r9d, 0x69
jae 0x180051117
jmp 0x180051001
inc r9d
inc r10
cmp r9d, 0x68
jae 0x180051112
jmp 0x1800510d1
inc r9d
inc r10
cmp r9d, 0x69
jb 0x1800511b3
mov rdi, qword [rsp + 0x28]
xor bl, bl
jmp 0x180051550
inc r9d
inc r10
cmp r9d, 0x6a
jae 0x18005150e
jmp 0x180051296
inc r9d
inc r10
cmp r9d, 0x69
jae 0x1800513a2
jmp 0x180051369
inc r9d
inc r10
cmp r9d, 0x69
jae 0x18005150e
jmp 0x18005143d
mov rdi, qword [rsp + 0x28]
mov bl, 1
bt r13d, 9
jae 0x180051599
btr r13d, 9
test r14, r14
je 0x180051599
mov rdx, qword [rbp - 0x60]
mov rcx, r14
sub rdx, r14
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180051594
mov rcx, qword [r14 - 8]
mov rax, r14
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180051c88
call fcn.1800b31bc
bt r13d, 8
jae 0x1800515e2
btr r13d, 8
test r15, r15
je 0x1800515e2
mov rdx, qword [rbp - 0x58]
mov rcx, r15
sub rdx, r15
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x1800515dd
mov rcx, qword [r15 - 8]
mov rax, r15
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180051c88
call fcn.1800b31bc
test r13b, r13b
jns 0x180051629
btr r13d, 7
test rdi, rdi
je 0x180051629
mov rdx, qword [rbp - 0x50]
mov rcx, rdi
sub rdx, rdi
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180051624
mov rcx, qword [rdi - 8]
mov rax, rdi
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180051c88
call fcn.1800b31bc
test r13b, 0x40
je 0x180051671
mov rax, qword [rbp - 0x48]
and r13d, 0xffffffbf
test rax, rax
je 0x180051671
mov rdx, qword [rbp - 0x40]
mov rcx, rax
sub rdx, rax
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x18005166c
mov rcx, qword [rax - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180051c88
call fcn.1800b31bc
test r13b, 0x20
je 0x1800516b9
mov rax, qword [rbp - 0x38]
and r13d, 0xffffffdf
test rax, rax
je 0x1800516b9
mov rdx, qword [rbp - 0x30]
mov rcx, rax
sub rdx, rax
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x1800516b4
mov rcx, qword [rax - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180051c88
call fcn.1800b31bc
test r13b, 0x10
je 0x180051700
and r13d, 0xffffffef
test rsi, rsi
je 0x180051700
mov rdx, qword [rbp - 0x28]
mov rcx, rsi
sub rdx, rsi
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x1800516fb
mov rcx, qword [rsi - 8]
mov rax, rsi
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180051c88
call fcn.1800b31bc
test r13b, 8
je 0x180051748
mov rax, qword [rbp - 0x20]
and r13d, 0xfffffff7
test rax, rax
je 0x180051748
mov rdx, qword [rbp - 0x18]
mov rcx, rax
sub rdx, rax
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180051743
mov rcx, qword [rax - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180051c88
call fcn.1800b31bc
test r13b, 4
je 0x180051790
mov rax, qword [rbp - 0x10]
and r13d, 0xfffffffb
test rax, rax
je 0x180051790
mov rdx, qword [rbp - 8]
mov rcx, rax
sub rdx, rax
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x18005178b
mov rcx, qword [rax - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180051c88
call fcn.1800b31bc
test r13b, 2
je 0x1800517e1
mov rdi, qword [rbp + 0x168]
and r13d, 0xfffffffd
test rdi, rdi
je 0x1800517e1
mov rdx, qword [rbp + 0x170]
mov rcx, rdi
sub rdx, rdi
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x1800517dc
mov rcx, qword [rdi - 8]
mov rax, rdi
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180051c88
call fcn.1800b31bc
mov rcx, qword [rbp]
and r13d, 0xfffffffe
test rcx, rcx
je 0x1800517f8
mov edx, 0x1c
call fcn.1800b31bc
test bl, bl
jne 0x180051a47
mov r9d, dword [rbp + 0x160]
mov rcx, qword [rbp + 0x178]
mov rdx, qword [rsp + 0x20]
inc r9d
inc rdx
mov dword [rbp + 0x160], r9d
mov qword [rsp + 0x20], rdx
cmp r9d, 0x150
jl 0x180050b20
cmp qword [0x18020ab30], r12
jne 0x180051c65
cmp dword [0x18010b088], 2
movups xmm0, xmmword [0x1800eab00]
mov eax, dword [0x1800eab28]
movups xmm1, xmmword [0x1800eab10]
mov dword [rsp + 0x78], eax
movzx eax, byte [0x1800eab2c]
movups xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x7c], al
movsd xmm0, qword [0x1800eab20]
movsd qword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x60], xmm1
jl 0x1800519ca
movdqa xmm0, xmmword [0x1800f9ce0]
lea rcx, [rsp + 0x54]
movdqa xmm5, xmmword [0x1800f9b20]
movdqa xmm4, xmmword [0x1800f9d80]
movdqa xmm6, xmmword [0x1800f9b90]
movdqa xmmword [rsp + 0x40], xmm0
mov edx, dword [rsp + 0x40]
nop word [rax + rax]
movd xmm2, r12d
lea eax, [r12 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add r12d, 8
pmuldq xmm1, xmm4
mov eax, r12d
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x1800f9ca0]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rcx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800f9ca0]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r12d, 0x28
jl 0x1800518c0
cmp eax, 0x2d
jge 0x180051a13
movsxd rax, r12d
lea r8, [rsp + 0x50]
add r8, rax
nop word [rax + rax]
mov eax, 0x4d4873ed
lea r8, [r8 + 1]
imul r12d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 1
sub al, dl
movsx eax, al
imul ecx, eax, 0x35
add cl, r12b
inc r12d
xor byte [r8 - 1], cl
cmp r12d, 0x2d
jl 0x1800519e0
xorps xmm0, xmm0
lea rax, [rsp + 0x50]
xorps xmm1, xmm1
mov r9, 0xffffffffffffffff
movups xmmword [rbp - 0x80], xmm0
movdqu xmmword [rbp - 0x70], xmm1
nop
inc r9
cmp byte [rax + r9], 0
jne 0x180051a30
mov r8, r9
lea rdx, [rsp + 0x50]
jmp 0x180051c51
movsxd rax, dword [rbp + 0x160]
mov qword [0x18020ab30], rax
jmp 0x180051c65
cmp dword [0x18010b088], 2
movups xmm0, xmmword [0x1800ea608]
movzx eax, word [0x1800ea630]
movups xmm1, xmmword [0x1800ea618]
mov word [rsp + 0x78], ax
movups xmmword [rsp + 0x50], xmm0
movsd xmm0, qword [0x1800ea628]
movsd qword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x60], xmm1
jl 0x180051bda
movdqa xmm0, xmmword [0x1800f9ce0]
lea rcx, [rsp + 0x54]
movdqa xmm5, xmmword [0x1800f9b20]
movdqa xmm4, xmmword [0x1800f9d80]
movdqa xmm6, xmmword [0x1800f9b90]
movdqa xmmword [rsp + 0x40], xmm0
mov edx, dword [rsp + 0x40]
nop dword [rax + rax]
movd xmm2, r12d
lea eax, [r12 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add r12d, 8
pmuldq xmm1, xmm4
mov eax, r12d
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x1800f9ca0]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rcx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800f9ca0]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r12d, 0x28
jl 0x180051ad0
cmp eax, 0x2a
jge 0x180051c23
movsxd rax, r12d
lea r8, [rsp + 0x50]
add r8, rax
nop word [rax + rax]
mov eax, 0x4d4873ed
lea r8, [r8 + 1]
imul r12d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 1
sub al, dl
movsx eax, al
imul ecx, eax, 0x35
add cl, r12b
inc r12d
xor byte [r8 - 1], cl
cmp r12d, 0x2a
jl 0x180051bf0
xorps xmm0, xmm0
lea rcx, [rsp + 0x50]
xorps xmm1, xmm1
mov rax, 0xffffffffffffffff
movups xmmword [rbp - 0x80], xmm0
movdqu xmmword [rbp - 0x70], xmm1
nop
inc rax
cmp byte [rcx + rax], r13b
jne 0x180051c40
mov r8, rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x80]
call fcn.180013c60
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.180028a60
movaps xmm6, xmmword [rsp + 0x200]
mov rsi, qword [rsp + 0x218]
add rsp, 0x220
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
call fcn.1800b9e6c
int3