Function at 0x1800522b0
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 - 0x148]
sub rsp, 0x210
mov r9, qword [0x18020b780]
xor r12d, r12d
mov r10, qword [0x18020b778]
mov r13d, r12d
movzx r11d, byte [0x18020b770]
mov edi, r12d
mov qword [rax - 0x40], rsi
mov r15d, r12d
mov dword [rbp + 0x150], r12d
movaps xmmword [rax - 0x58], xmm6
nop dword [rax]
test r11b, r11b
je 0x180052310
test r10, r10
je 0x18005231b
mov eax, dword [r10 + 0x14]
jmp 0x18005231e
test r9, r9
je 0x18005231b
mov eax, dword [r9 + 0xc]
jmp 0x18005231e
mov eax, r12d
cmp edi, eax
jge 0x18005338a
test r11b, r11b
je 0x18005236d
test r10, r10
je 0x1800523e2
test edi, edi
js 0x180052385
cmp edi, dword [r10 + 0x14]
jg 0x180052385
movzx ecx, di
mov eax, edi
test edi, edi
jns 0x180052353
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 0x180052388
test r9, r9
je 0x1800523e2
test edi, edi
js 0x180052385
cmp edi, dword [r9 + 0xc]
jg 0x180052385
mov rax, qword [r9]
mov rsi, qword [r15 + rax]
jmp 0x180052388
mov rsi, r12
test rsi, rsi
je 0x1800523e2
call fcn.18002a620
mov rbx, qword [rsi + 0x10]
mov r14, rax
test rbx, rbx
je 0x1800523cc
nop
cmp rbx, r14
je 0x1800523c2
mov rcx, rbx
call fcn.18004dfe0
test al, al
je 0x1800523cc
mov eax, dword [0x18020b768]
mov rbx, qword [rax + rbx]
test rbx, rbx
jne 0x1800523a0
jmp 0x1800523cc
mov eax, dword [rsi + 8]
shr eax, 4
test al, 1
je 0x1800523ed
mov r9, qword [0x18020b780]
mov r10, qword [0x18020b778]
movzx r11d, byte [0x18020b770]
inc edi
add r15, 0x18
jmp 0x180052300
mov rcx, qword [rsi]
mov qword [rbp + 0x168], rcx
test rcx, rcx
je 0x18005338a
mov rax, qword [rbp + 0x160]
mov rdx, r12
movss xmm6, dword [0x1800fa96c]
mov r9d, r12d
mov dword [rbp + 0x150], r12d
mov r14, qword [rbp + 0x150]
mov rsi, qword [rbp + 0x150]
mov r15, qword [rbp + 0x150]
mov qword [rbp + 0x160], rax
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x158], rax
mov qword [rsp + 0x28], rdx
nop dword [rax + rax]
mov rdx, qword [rcx + rdx*8]
test rdx, rdx
je 0x180053147
mov rax, qword gs:[0x60]
mov r8, qword [rax + 0x10]
cmp rdx, r8
jbe 0x180053147
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rdx, rcx
jae 0x180053140
cmp byte [rdx], 0xe9
jne 0x1800524bb
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 0x1800524bb
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x1800524be
mov rbx, rdx
movdqa xmm0, xmmword [0x1800fae20]
mov ecx, 0x1c
movdqu xmmword [rbp], xmm0
mov qword [rbp + 0x10], r12
mov dword [rbp + 0x18], 3
call fcn.1800b4d44
mov r8d, 0x1c
mov qword [rbp - 8], rax
lea rdx, [rbp]
mov rcx, rax
mov rdi, rax
call fcn.1800dc750
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 0x18005252b
cmp r8d, 0xffffffff
jne 0x1800525b7
inc edx
mov eax, edx
cmp rax, 7
jb 0x180052510
lea rax, [r10 + rbx]
test rax, rax
je 0x18005279e
mov r8, qword [rsp + 0x28]
mov rax, qword [rbp + 0x168]
mov r8, qword [rax + r8*8]
cmp byte [r8], 0xe9
jne 0x1800525cc
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 0x1800525cc
movsxd rax, dword [rdx + 0x3c]
mov ecx, dword [rax + rdx + 0x50]
add rcx, rdx
cmp rbx, rcx
jae 0x1800525cc
mov ecx, 8
mov dword [rsp + 0x38], 0x84
mov dword [rsp + 0x3c], 0xc0
call fcn.1800b4d44
mov rcx, qword [rsp + 0x38]
mov r11, rax
mov qword [rbp + 0x158], rax
mov qword [rax], rcx
add rax, 8
jmp 0x180052602
inc r9d
inc r10
cmp r9d, 0x69
jae 0x18005279e
jmp 0x180052503
mov ecx, 8
mov dword [rsp + 0x38], 0x84
mov rbx, r8
mov dword [rsp + 0x3c], 0xc0
call fcn.1800b4d44
mov rcx, rax
mov qword [rbp + 0x158], rax
mov rax, qword [rsp + 0x38]
mov r11, rcx
mov qword [rcx], rax
lea rax, [rcx + 8]
mov r10d, 2
mov qword [rbp + 0x160], rax
or r13d, r10d
mov edx, r12d
mov r9d, r12d
mov rdi, r12
test r10, r10
je 0x180052650
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 0x180052647
cmp r8d, 0xffffffff
jne 0x1800526c2
inc edx
mov eax, edx
cmp rax, r10
jb 0x180052630
lea rax, [rbx + rdi]
test rax, rax
je 0x18005279e
mov rax, qword [rsp + 0x28]
mov rdx, qword [rbp + 0x168]
mov rdx, qword [rdx + rax*8]
cmp byte [rdx], 0xe9
jne 0x1800526f7
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 0x1800526f7
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jae 0x1800526f7
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x158], rax
mov rax, qword [rbp + 0x160]
mov qword [rbp + 0x160], rax
jmp 0x1800526fa
inc r9d
inc rdi
cmp r9d, 0x6e
jae 0x1800526d6
mov edx, r12d
jmp 0x180052620
mov rax, qword [rbp + 0x158]
mov rcx, qword [rbp + 0x160]
mov qword [rbp + 0x158], rax
mov qword [rbp + 0x160], rcx
jmp 0x18005279e
mov rbx, rdx
mov ecx, 0xc
mov dword [rsp + 0x40], 0x48
mov dword [rsp + 0x44], 0x8b
mov dword [rsp + 0x48], 0xcb
call fcn.1800b4d44
mov rdi, rax
mov qword [rbp - 0x18], rax
add rax, 0xc
lea rdx, [rsp + 0x40]
mov rcx, rdi
mov qword [rbp - 0x10], rax
mov r8d, 0xc
call fcn.1800dc750
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 0x18005276b
cmp r8d, 0xffffffff
jne 0x180052db9
inc edx
mov eax, edx
cmp rax, 3
jb 0x180052750
mov rdi, qword [rbp + 0x158]
lea rax, [r10 + rbx]
mov rcx, qword [rbp + 0x160]
mov qword [rbp + 0x158], rdi
mov qword [rbp + 0x160], rcx
test rax, rax
jne 0x180052e7e
mov rax, qword [rsp + 0x28]
mov rcx, qword [rbp + 0x168]
mov rdx, qword [rcx + rax*8]
cmp byte [rdx], 0xe9
jne 0x1800527e1
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 0x1800527e1
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x1800527e4
mov rbx, rdx
movdqa xmm0, xmmword [0x1800fab40]
mov ecx, 0x44
movdqa xmm1, xmmword [0x1800fadc0]
movdqu xmmword [rbp + 0xa0], xmm0
movdqa xmm0, xmmword [0x1800fabf0]
movdqu xmmword [rbp + 0xb0], xmm1
movdqa xmm1, xmmword [0x1800fac10]
movdqu xmmword [rbp + 0xc0], xmm0
movdqu xmmword [rbp + 0xd0], xmm1
mov dword [rbp + 0xe0], 0xc0
call fcn.1800b4d44
mov rdi, rax
mov qword [rbp - 0x28], rax
add rax, 0x44
lea rdx, [rbp + 0xa0]
mov rcx, rdi
mov qword [rbp - 0x20], rax
mov r8d, 0x44
call fcn.1800dc750
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 0x18005288b
cmp r8d, 0xffffffff
jne 0x180052dea
inc edx
mov eax, edx
cmp rax, 0x11
jb 0x180052870
lea rax, [r10 + rbx]
test rax, rax
jne 0x180052e7e
mov rdi, qword [rsp + 0x28]
mov rax, qword [rbp + 0x168]
mov rdx, qword [rax + rdi*8]
cmp byte [rdx], 0xe9
jne 0x1800528e5
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 0x1800528e5
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x1800528e8
mov rbx, rdx
movdqa xmm0, xmmword [0x1800fadd0]
mov ecx, 0x1c
movdqu xmmword [rbp + 0x20], xmm0
mov dword [rbp + 0x30], 0xffffffff
mov qword [rbp + 0x34], r12
call fcn.1800b4d44
mov rsi, rax
lea rdx, [rbp + 0x20]
add rax, 0x1c
mov rcx, rsi
mov r8d, 0x1c
mov qword [rbp - 0x30], rax
call fcn.1800dc750
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 0x18005295b
cmp r8d, 0xffffffff
jne 0x180052dff
inc edx
mov eax, edx
cmp rax, 7
jb 0x180052940
lea rax, [r10 + rbx]
test rax, rax
je 0x180052a47
mov rax, qword [rbp + 0x168]
mov rdx, qword [rax + rdi*8]
cmp byte [rdx], 0xe9
jne 0x1800529b0
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 0x1800529b0
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x1800529b3
mov rbx, rdx
movdqa xmm0, xmmword [0x1800fae30]
mov ecx, 0x20
movdqa xmm1, xmm0
movdqu xmmword [rsp + 0x50], xmm0
movdqu xmmword [rsp + 0x60], xmm0
call fcn.1800b4d44
mov rdi, rax
mov qword [rbp - 0x40], rax
add rax, 0x20
lea rdx, [rsp + 0x50]
mov rcx, rdi
mov qword [rbp - 0x38], rax
mov r8d, 0x20
call fcn.1800dc750
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 0x180052a2b
cmp r8d, 0xffffffff
jne 0x180052e14
inc edx
mov eax, edx
cmp rax, 8
jb 0x180052a10
lea rax, [rbx + r10]
test rax, rax
jne 0x180052e7e
mov rdi, qword [rsp + 0x28]
call fcn.18002be10
comiss xmm0, xmm6
jb 0x180052e39
mov rax, qword [rbp + 0x168]
mov rdx, qword [rax + rdi*8]
cmp byte [rdx], 0xe9
jne 0x180052a93
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 0x180052a93
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180052a96
mov rbx, rdx
movdqa xmm0, xmmword [0x1800fadf0]
mov ecx, 0x1c
movdqu xmmword [rbp + 0x40], xmm0
mov dword [rbp + 0x50], 0xffffffff
mov qword [rbp + 0x54], r12
call fcn.1800b4d44
mov r14, rax
lea rdx, [rbp + 0x40]
add rax, 0x1c
mov rcx, r14
mov r8d, 0x1c
mov qword [rbp - 0x48], rax
call fcn.1800dc750
or r13d, 0x40
mov r10, r12
mov r9d, r12d
mov edx, r12d
mov rax, r12
nop word [rax + rax]
mov r8d, dword [r14 + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x180052b0b
cmp r8d, 0xffffffff
jne 0x180052e29
inc edx
mov eax, edx
cmp rax, 7
jb 0x180052af0
lea rax, [r10 + rbx]
test rax, rax
je 0x180052e39
mov rax, qword [rbp + 0x168]
mov rdx, qword [rax + rdi*8]
cmp byte [rdx], 0xe9
jne 0x180052b60
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 0x180052b60
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180052b63
mov rbx, rdx
movdqa xmm0, xmmword [0x1800fae10]
mov ecx, 0x18
movdqu xmmword [rbp + 0x80], xmm0
mov dword [rbp + 0x90], 0x48
mov dword [rbp + 0x94], 0x8b
call fcn.1800b4d44
mov rdi, rax
mov qword [rsp + 0x30], rax
add rax, 0x18
lea rdx, [rbp + 0x80]
mov rcx, rdi
mov qword [rbp - 0x50], rax
mov r8d, 0x18
call fcn.1800dc750
bts r13d, 7
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 0x180052beb
cmp r8d, 0xffffffff
jne 0x180052e47
inc edx
mov eax, edx
cmp rax, 6
jb 0x180052bd0
lea rax, [rbx + r10]
test rax, rax
je 0x180052e3e
mov rax, qword [rsp + 0x28]
mov rcx, qword [rbp + 0x168]
mov rdx, qword [rcx + rax*8]
cmp byte [rdx], 0xe9
jne 0x180052c45
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 0x180052c45
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180052c48
mov rbx, rdx
movdqa xmm0, xmmword [0x1800fae00]
mov ecx, 0x1c
movdqu xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], 0xffffffffffffffff
mov dword [rbp + 0x78], 0x44
call fcn.1800b4d44
mov r15, rax
lea rdx, [rbp + 0x60]
add rax, 0x1c
mov rcx, r15
mov r8d, 0x1c
mov qword [rbp - 0x58], rax
call fcn.1800dc750
bts r13d, 8
mov r10, r12
mov r9d, r12d
mov edx, r12d
mov rax, r12
nop dword [rax]
mov r8d, dword [r15 + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x180052cbb
cmp r8d, 0xffffffff
jne 0x180052e58
inc edx
mov eax, edx
cmp rax, 7
jb 0x180052ca0
lea rax, [r10 + rbx]
test rax, rax
jne 0x180052e83
mov rax, qword [rsp + 0x28]
mov rcx, qword [rbp + 0x168]
mov rdx, qword [rcx + rax*8]
cmp byte [rdx], 0xe9
jne 0x180052d15
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 0x180052d15
movsxd rax, dword [r8 + 0x3c]
mov ecx, dword [rax + r8 + 0x50]
add rcx, r8
cmp rbx, rcx
jb 0x180052d18
mov rbx, rdx
movdqa xmm0, xmmword [0x1800fae00]
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.1800b4d44
mov r8d, 0x1c
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x80]
lea rcx, [rax + 0x1c]
mov qword [rbp - 0x60], rcx
mov rcx, rax
call fcn.1800dc750
mov r11, qword [rsp + 0x20]
bts r13d, 9
mov r10, r12
mov r9d, r12d
mov edx, r12d
mov rax, r12
nop word [rax + rax]
mov r8d, dword [r11 + rax*4]
lea eax, [rdx + r9]
movzx eax, byte [rax + rbx]
cmp eax, r8d
je 0x180052d9b
cmp r8d, 0xffffffff
jne 0x180052e6d
inc edx
mov eax, edx
cmp rax, 7
jb 0x180052d80
lea rax, [r10 + rbx]
test rax, rax
jne 0x180052e88
xor bl, bl
jmp 0x180052e8a
inc r9d
inc r10
cmp r9d, 0x6d
jb 0x180052748
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x158], rax
mov rax, qword [rbp + 0x160]
mov qword [rbp + 0x160], rax
jmp 0x18005279e
inc r9d
inc r10
cmp r9d, 0x5f
jae 0x1800528a2
jmp 0x180052866
inc r9d
inc r10
cmp r9d, 0x69
jae 0x180052a47
jmp 0x180052931
inc r9d
inc r10
cmp r9d, 0x68
jae 0x180052a42
jmp 0x180052a01
inc r9d
inc r10
cmp r9d, 0x69
jb 0x180052adf
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x20]
xor bl, bl
jmp 0x180052e8a
inc r9d
inc r10
cmp r9d, 0x6a
jae 0x180052e3e
jmp 0x180052bc1
inc r9d
inc r10
cmp r9d, 0x69
jae 0x180052cd2
jmp 0x180052c96
inc r9d
inc r10
cmp r9d, 0x69
jae 0x180052e43
jmp 0x180052d74
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x20]
mov bl, 1
bt r13d, 9
jae 0x180052ed3
btr r13d, 9
test r11, r11
je 0x180052ed3
mov rdx, qword [rbp - 0x60]
mov rcx, r11
sub rdx, r11
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180052ece
mov rcx, qword [r11 - 8]
mov rax, r11
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800535b8
call fcn.1800b4d3c
bt r13d, 8
jae 0x180052f1c
btr r13d, 8
test r15, r15
je 0x180052f1c
mov rdx, qword [rbp - 0x58]
mov rcx, r15
sub rdx, r15
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180052f17
mov rcx, qword [r15 - 8]
mov rax, r15
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800535b8
call fcn.1800b4d3c
test r13b, r13b
jns 0x180052f63
btr r13d, 7
test rdi, rdi
je 0x180052f63
mov rdx, qword [rbp - 0x50]
mov rcx, rdi
sub rdx, rdi
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180052f5e
mov rcx, qword [rdi - 8]
mov rax, rdi
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800535b8
call fcn.1800b4d3c
test r13b, 0x40
je 0x180052faa
and r13d, 0xffffffbf
test r14, r14
je 0x180052faa
mov rdx, qword [rbp - 0x48]
mov rcx, r14
sub rdx, r14
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180052fa5
mov rcx, qword [r14 - 8]
mov rax, r14
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800535b8
call fcn.1800b4d3c
test r13b, 0x20
je 0x180052ff2
mov rax, qword [rbp - 0x40]
and r13d, 0xffffffdf
test rax, rax
je 0x180052ff2
mov rdx, qword [rbp - 0x38]
mov rcx, rax
sub rdx, rax
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180052fed
mov rcx, qword [rax - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800535b8
call fcn.1800b4d3c
test r13b, 0x10
je 0x180053039
and r13d, 0xffffffef
test rsi, rsi
je 0x180053039
mov rdx, qword [rbp - 0x30]
mov rcx, rsi
sub rdx, rsi
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180053034
mov rcx, qword [rsi - 8]
mov rax, rsi
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800535b8
call fcn.1800b4d3c
test r13b, 8
je 0x180053081
mov rax, qword [rbp - 0x28]
and r13d, 0xfffffff7
test rax, rax
je 0x180053081
mov rdx, qword [rbp - 0x20]
mov rcx, rax
sub rdx, rax
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x18005307c
mov rcx, qword [rax - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800535b8
call fcn.1800b4d3c
test r13b, 4
je 0x1800530c9
mov rax, qword [rbp - 0x18]
and r13d, 0xfffffffb
test rax, rax
je 0x1800530c9
mov rdx, qword [rbp - 0x10]
mov rcx, rax
sub rdx, rax
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x1800530c4
mov rcx, qword [rax - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800535b8
call fcn.1800b4d3c
test r13b, 2
je 0x18005311a
mov rdi, qword [rbp + 0x158]
and r13d, 0xfffffffd
test rdi, rdi
je 0x18005311a
mov rdx, qword [rbp + 0x160]
mov rcx, rdi
sub rdx, rdi
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180053115
mov rcx, qword [rdi - 8]
mov rax, rdi
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800535b8
call fcn.1800b4d3c
mov rcx, qword [rbp - 8]
and r13d, 0xfffffffe
test rcx, rcx
je 0x180053131
mov edx, 0x1c
call fcn.1800b4d3c
test bl, bl
jne 0x180053377
mov r9d, dword [rbp + 0x150]
mov rcx, qword [rbp + 0x168]
mov rdx, qword [rsp + 0x28]
inc r9d
inc rdx
mov dword [rbp + 0x150], r9d
mov qword [rsp + 0x28], rdx
cmp r9d, 0x150
jl 0x180052450
cmp qword [0x18020bb58], r12
jne 0x180053595
cmp dword [0x18010c088], 2
movups xmm0, xmmword [0x1800eb640]
mov eax, dword [0x1800eb668]
movups xmm1, xmmword [0x1800eb650]
mov dword [rsp + 0x78], eax
movzx eax, byte [0x1800eb66c]
movups xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x7c], al
movsd xmm0, qword [0x1800eb660]
movsd qword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x60], xmm1
jl 0x180053302
movdqa xmm0, xmmword [0x1800fac90]
lea rcx, [rsp + 0x54]
movdqa xmm5, xmmword [0x1800fab00]
movdqa xmm4, xmmword [0x1800fad80]
movdqa xmm6, xmmword [0x1800fabc0]
movdqa xmmword [rsp + 0x40], xmm0
mov edx, dword [rsp + 0x40]
nop
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x1800fac70]
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
paddd xmm1, xmm3
psrad xmm1, 5
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 [0x1800fac70]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r12d, 0x28
jl 0x1800531f0
cmp eax, 0x2d
jge 0x180053344
movsxd rax, r12d
lea r8, [rsp + 0x50]
add r8, rax
nop dword [rax]
mov eax, 0x8d3dcb09
lea r8, [r8 + 1]
imul r12d
add edx, r12d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r12b
inc r12d
sub al, cl
add al, 0x31
xor byte [r8 - 1], al
cmp r12d, 0x2d
jl 0x180053310
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 0x180053360
mov r8, r9
lea rdx, [rsp + 0x50]
jmp 0x180053581
movsxd rax, dword [rbp + 0x150]
mov qword [0x18020bb58], rax
jmp 0x180053595
cmp dword [0x18010c088], 2
movups xmm0, xmmword [0x1800eb9c0]
movzx eax, word [0x1800eb9e8]
movups xmm1, xmmword [0x1800eb9d0]
mov word [rsp + 0x78], ax
movups xmmword [rsp + 0x50], xmm0
movsd xmm0, qword [0x1800eb9e0]
movsd qword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x60], xmm1
jl 0x180053512
movdqa xmm0, xmmword [0x1800fac90]
lea rcx, [rsp + 0x54]
movdqa xmm5, xmmword [0x1800fab00]
movdqa xmm4, xmmword [0x1800fad80]
movdqa xmm6, xmmword [0x1800fabc0]
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
paddd xmm1, xmm2
psrad xmm1, 5
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 [0x1800fac70]
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
paddd xmm1, xmm3
psrad xmm1, 5
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 [0x1800fac70]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r12d, 0x28
jl 0x180053400
cmp eax, 0x2a
jge 0x180053554
movsxd rax, r12d
lea r8, [rsp + 0x50]
add r8, rax
nop dword [rax]
mov eax, 0x8d3dcb09
lea r8, [r8 + 1]
imul r12d
add edx, r12d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r12b
inc r12d
sub al, cl
add al, 0x31
xor byte [r8 - 1], al
cmp r12d, 0x2a
jl 0x180053520
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 0x180053570
mov r8, rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x80]
call fcn.1800140a0
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.180029810
movaps xmm6, xmmword [rsp + 0x1f0]
mov rsi, qword [rsp + 0x208]
add rsp, 0x210
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
call fcn.1800bbacc
int3