Function at 0x180051440
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xb48]
sub rsp, 0xc10
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
mov rax, qword [0x18007cf38]
xor rax, rsp
mov qword [rbp + 0xae0], rax
mov dword [rsp + 0x78], r9d
mov r13, rcx
mov qword [rbp - 0x30], rcx
mov r10d, 1
mov ecx, dword [rsp + 0x78]
mov r9, r8
mov qword [rbp - 0x18], r8
mov rsi, rdx
mov r15d, ecx
lea rdx, [0x180000000]
lea r8d, [r10 + 7]
lea r12d, [rcx + 0x126]
cmp ecx, r12d
jae 0x180051a33
mov eax, dword [rbp - 0x70]
mov ebx, dword [rbp - 0x6c]
movsd xmm6, qword [rbp]
movups xmm7, xmmword [rbp - 0x10]
mov r14d, dword [rbp - 0x6c]
mov dword [rsp + 0x70], eax
mov eax, dword [rbp - 0x70]
mov dword [rbp - 0x54], eax
mov eax, dword [rbp - 0x70]
mov dword [rbp - 0x68], eax
nop word [rax + rax]
cmp r15d, 0x120
ja 0x18005198a
je 0x1800517df
lea eax, [r15 - 0x1b]
cmp eax, 0xf0
ja case.0x180051510.38
movzx eax, byte [rdx + rax + 0x521ec]
mov ecx, dword [rdx + rax*4 + 0x521bc]
add rcx, rdx
jmp rcx
mov rdx, qword [rsi]
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov qword [rbp - 0x40], rax
mov r8d, dword [rsp + 0x70]
mov r10d, 1
lea rdx, [0x180000000]
add r15d, 0x15
cmp r15d, r12d
jae 0x180051a19
mov r8d, 8
jmp 0x1800514e0
xor ebx, ebx
mov r8d, dword [rsp + 0x70]
jmp 0x180051534
mov r8d, dword [rsp + 0x70]
xor eax, eax
mov dword [rbp - 0x54], eax
mov dword [rbp - 0x68], eax
jmp 0x180051534
mov r8d, dword [rsp + 0x70]
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0
movups xmm7, xmmword [rbp - 0x10]
mov qword [rbp], 0
movsd xmm6, qword [rbp]
jmp 0x180051534
mov r8d, dword [rsp + 0x70]
xorps xmm0, xmm0
xorps xmm1, xmm1
movups xmmword [0x1800813a0], xmm0
movups xmmword [0x1800813b0], xmm0
movups xmmword [0x1800813c0], xmm0
movups xmmword [0x1800813d0], xmm0
movups xmmword [0x1800813e0], xmm0
movups xmmword [0x1800813f0], xmm0
movups xmmword [0x180081400], xmm0
movdqa xmm0, xmmword [0x18006dc30]
movdqa xmmword [rbp + 0xd0], xmm0
movups xmmword [0x180081410], xmm1
movups xmmword [0x180081420], xmm1
movups xmmword [0x180081430], xmm1
movups xmmword [0x180081440], xmm1
movups xmmword [0x180081450], xmm1
movups xmmword [0x180081460], xmm1
movups xmmword [0x180081470], xmm1
jmp 0x180051534
test r13, r13
je case.0x1800516ea.10
mov r8d, dword [rsp + 0x70]
xor r14d, r14d
jmp 0x180051534
mov r8d, dword [rsp + 0x70]
xorps xmm0, xmm0
xorps xmm1, xmm1
movups xmmword [0x1800812c0], xmm0
movups xmmword [0x1800812d0], xmm0
movups xmmword [0x1800812e0], xmm0
movups xmmword [0x1800812f0], xmm0
movups xmmword [0x180081300], xmm0
movups xmmword [0x180081310], xmm0
movups xmmword [0x180081320], xmm0
movups xmmword [0x180081330], xmm1
movups xmmword [0x180081340], xmm1
movups xmmword [0x180081350], xmm1
movups xmmword [0x180081360], xmm1
movups xmmword [0x180081370], xmm1
movups xmmword [0x180081380], xmm1
movups xmmword [0x180081390], xmm1
jmp 0x180051534
mov r8d, dword [rsp + 0x70]
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
xor eax, eax
mov dword [rbp + 0x10], r10d
movups xmmword [rbp + 0x50], xmm0
mov dword [rbp + 0x18], eax
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x48], xmm7
movsd qword [rbp + 0x58], xmm6
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x60], xmm7
movsd qword [rbp + 0x70], xmm6
jmp 0x180051534
mov eax, dword [r13 + 0x10]
dec eax
cmp eax, 0x11
ja case.0x1800516ea.10
cdqe
mov ecx, dword [rdx + rax*4 + 0x522e0]
add rcx, rdx
jmp rcx
mov r14d, 2
jmp 0x1800517a6
mov r14d, 0xa
jmp 0x1800517a6
mov r14d, r10d
jmp 0x1800517a6
mov r14d, 0xb
jmp 0x1800517a6
mov r14d, r8d
jmp 0x1800517a6
mov r14d, 7
jmp 0x1800517a6
mov r14d, 3
jmp 0x1800517a6
mov r14d, 5
jmp 0x1800517a6
mov r14d, 9
jmp 0x1800517a6
mov edx, 0xee
mov eax, edx
sub eax, 0xee
je 0x180051755
cmp eax, 0x7a
je 0x1800517a6
jmp 0x18005176a
mov r14d, 4
test rsi, rsi
je 0x18005176a
mov rax, qword [r13 + 0x28]
mov rcx, qword [rax]
mov qword [rsi], rcx
add edx, 0x7a
cmp edx, 0x1e2
jb 0x180051745
mov eax, 0x3a
nop word [rax + rax]
cmp eax, 0x4c20
ja case.0x1800516ea.10
cmp eax, 0x3a
je 0x1800517d2
cmp eax, 0x264a
jne 0x1800517d8
test rsi, rsi
je 0x1800517a6
mov rax, qword [r13 + 0x28]
mov rcx, qword [rax]
mov qword [rsi], rcx
mov eax, dword [r13 + 0x14]
lea rdx, [0x180000000]
mov r8d, dword [rsp + 0x70]
sub eax, 2
mov r15d, 0xa6
cmp eax, 1
ja 0x180051534
bts r14d, 7
jmp 0x180051534
mov r14d, 6
add eax, 0x2610
jmp 0x180051780
xor ecx, ecx
lea rax, [rsi + 0x26]
lea rdx, [rbp + 0x80]
cmp rdx, rax
ja 0x180051803
xor eax, eax
lea rdx, [rbp + 0xcc]
cmp rdx, rsi
jae 0x1800518d4
movdqa xmm3, xmmword [0x18006dc20]
xorps xmm0, xmm0
movq xmm1, qword [rsi]
mov ecx, 0x10
movdqa xmm2, xmm1
movd xmm4, r8d
punpcklwd xmm2, xmm1
psrad xmm2, 0x10
pand xmm2, xmm3
punpcklwd xmm1, xmm0
pslld xmm2, xmm4
psrld xmm1, xmm4
por xmm2, xmm1
movq xmm1, qword [rsi + 8]
movdqu xmmword [rbp + 0x80], xmm2
movdqa xmm2, xmm1
punpcklwd xmm2, xmm1
psrad xmm2, 0x10
pand xmm2, xmm3
punpcklwd xmm1, xmm0
pslld xmm2, xmm4
psrld xmm1, xmm4
por xmm2, xmm1
movq xmm1, qword [rsi + 0x10]
movdqu xmmword [rbp + 0x90], xmm2
movdqa xmm2, xmm1
punpcklwd xmm2, xmm1
psrad xmm2, 0x10
pand xmm2, xmm3
punpcklwd xmm1, xmm0
pslld xmm2, xmm4
psrld xmm1, xmm4
por xmm2, xmm1
movq xmm1, qword [rsi + 0x18]
movdqu xmmword [rbp + 0xa0], xmm2
movdqa xmm2, xmm1
punpcklwd xmm2, xmm1
psrad xmm2, 0x10
pand xmm2, xmm3
punpcklwd xmm1, xmm0
pslld xmm2, xmm4
psrld xmm1, xmm4
por xmm2, xmm1
movdqu xmmword [rbp + 0xb0], xmm2
mov eax, 0xfffffff0
lea rdx, [rbp + 0x80]
lea rdx, [rdx + rcx*4]
lea r8, [rsi + rcx*2]
lea r9d, [rax + 0x14]
nop word [rax + rax]
movzx eax, word [r8]
lea rdx, [rdx + 4]
movzx ecx, al
lea r8, [r8 + 2]
shl ecx, 8
shr eax, 8
or ecx, eax
mov dword [rdx - 4], ecx
sub r9, 1
jne 0x1800518f0
mov rax, qword [r13]
lea r9, [rbp - 0x1c]
lea r8, [rbp - 0x24]
lea rdx, [rbp - 0x70]
mov ecx, dword [rax]
lea rax, [rbp - 0x34]
mov qword [rsp + 0x60], rax
lea rax, [rbp - 0x78]
mov dword [rsp + 0x58], 0x74
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x28]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x6c]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x20]
mov dword [rbp - 0x80], ecx
lea rcx, [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov dword [rbp - 0x78], r10d
call fcn.180047480
mov rbx, rax
jmp 0x180051522
mov eax, r15d
sub eax, 0x135
je 0x180051a0b
cmp eax, 0x15
jne case.0x180051510.38
lea r9, [rbp + 0x80]
xor r8d, r8d
mov edx, 0x121
xor ecx, ecx
call fcn.180049e00
xor r8d, r8d
xor edi, edi
mov dword [rsp + 0x70], r8d
cmp dword [rbp - 0x38], edi
jle 0x180051527
mov r13d, edi
nop dword [rax]
xor r9d, r9d
mov dword [rsp + 0x20], 0xdc
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.180010180
lea ecx, [r13*2]
inc edi
or eax, ecx
mov r13d, eax
cmp edi, dword [rbp - 0x38]
jl 0x1800519d0
mov r13, qword [rbp - 0x30]
mov r8d, eax
mov dword [rsp + 0x70], eax
jmp 0x180051527
test ebx, ebx
jne 0x180051a2b
mov r8d, dword [rsp + 0x70]
jmp 0x180051534
mov r15d, dword [rbp - 0x68]
mov ecx, dword [rsp + 0x78]
mov r14d, dword [rbp - 0x54]
mov r9, qword [rbp - 0x18]
jmp 0x180051a48
mov dword [rbp - 0x40], ebx
jmp case.0x180051510.28
mov r8d, dword [rbp - 0x70]
mov r14d, dword [rbp - 0x70]
mov r15d, dword [rbp - 0x70]
mov dword [rsp + 0x70], r8d
mov dword [rbp - 0x54], r14d
lea edx, [rcx + 0x4fb]
mov dword [rsp + 0x74], edx
cmp ecx, edx
jae case.0x180051510.28
mov r11d, dword [rbp - 0x6c]
lea r10, [0x1800813a0]
mov r12d, dword [rbp - 0x6c]
mov edx, dword [rbp - 0x6c]
movss xmm6, dword [0x18006db98]
movss xmm7, dword [0x18006db9c]
mov edi, dword [rbp - 0x6c]
mov ebx, dword [rbp - 0x6c]
mov esi, dword [rbp - 0x6c]
mov eax, dword [rsp + 0x74]
mov dword [rbp - 0x80], r11d
mov dword [rbp - 0x78], r12d
mov dword [rbp - 0x68], edx
cmp ecx, 0x275
ja 0x180051d3c
je 0x180051c79
cmp ecx, 0x121
ja 0x180051b5d
je 0x180051b48
mov eax, ecx
sub eax, 0x40
je 0x180051af0
sub eax, 0x55
je case.0x180051510.28
cmp eax, 0x37
jne 0x180052155
cmp r8d, dword [rbp - 0x28]
jne 0x180052174
mov r11d, dword [rbp - 0x50]
imul r11d, dword [0x18007d060]
mov dword [rbp - 0x80], r11d
jmp 0x180052155
mov qword [rsp + 0x30], r13
lea rax, [rbp + 0x10]
xor r14d, r14d
xor r9d, r9d
mov qword [rsp + 0x28], r14
xor r8d, r8d
mov edx, 0xd1
mov qword [rsp + 0x20], rax
xor ecx, ecx
call fcn.18000e0d0
test eax, eax
je case.0x180051510.33
mov eax, 1
mov dword [r13 + 0x190], eax
mov dword [rbp - 0x40], eax
mov ecx, dword [rsp + 0x78]
lea r10, [0x1800813a0]
mov r11d, dword [rbp - 0x80]
mov r8d, dword [rsp + 0x70]
jmp 0x180052155
mov r12d, dword [rbp - 0x58]
sub r12d, dword [rbp - 0x70]
sub r12d, dword [rbp - 0x38]
mov dword [rbp - 0x78], r12d
jmp 0x180052159
mov eax, ecx
sub eax, 0x176
je 0x180051bee
sub eax, 0x55
je 0x180051baa
cmp eax, 0x55
jne 0x180052155
test r14d, r14d
jle 0x180052155
lea rcx, [0x180081410]
mov edx, r14d
nop dword [rax + rax]
movsxd rax, dword [rcx]
lea rcx, [rcx + 4]
inc dword [r10 + rax*4]
sub rdx, 1
jne 0x180051b90
mov ecx, dword [rsp + 0x78]
jmp 0x180052155
mov eax, dword [rbp - 0x50]
lea r9, [rbp - 0x48]
sub r12d, dword [rbp - 0x34]
lea r8, [rbp - 0x60]
mov dword [rbp - 0x48], eax
mov rdx, r10
lea rax, [0x1800812c0]
mov dword [rbp - 0x78], r12d
mov qword [rsp + 0x28], rax
mov ecx, 1
lea rax, [0x180081410]
mov dword [rbp - 0x60], r12d
mov qword [rsp + 0x20], rax
call fcn.18002f1b0
jmp 0x180051b2f
mov eax, dword [rbp - 0x24]
lea r9, [rbp - 0x48]
mov dword [rbp - 0x48], eax
lea rdx, [0x180081330]
mov eax, dword [rbp - 0x50]
lea rcx, [0x1800812c0]
mov dword [rbp - 0x60], eax
mov r8d, 0xd5
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
call fcn.18002ec70
sub r12d, eax
xor r14d, r14d
mov dword [rbp - 0x78], r12d
cmp dword [rbp - 0x34], r14d
jle 0x180051b2f
mov r13d, dword [rbp - 0x54]
nop dword [rax + rax]
xor r9d, r9d
mov dword [rsp + 0x20], 0xdc
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.180010180
lea ecx, [r13*2]
inc r14d
or eax, ecx
mov r13d, eax
cmp r14d, dword [rbp - 0x34]
jl 0x180051c40
mov r13, qword [rbp - 0x30]
mov dword [rbp - 0x54], eax
jmp 0x180051b2f
mov eax, dword [rbp - 0x20]
lea r9, [rbp + 8]
mov dword [rbp - 0x48], eax
lea r8, [rbp - 0x78]
mov eax, dword [rbp - 0x50]
lea rdx, [0x180081330]
mov dword [rbp - 0x78], eax
mov ecx, 0x27
mov rax, qword [r13]
mov qword [rbp + 8], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], rax
mov dword [rbp - 0x60], r12d
call fcn.180032ba0
xor r15d, r15d
mov r12d, eax
mov dword [rbp - 0x78], r12d
test eax, eax
jle 0x180051d1b
mov r14d, r12d
lea r13d, [r15 + 1]
nop dword [rax]
nop word [rax + rax]
xor r9d, r9d
mov dword [rsp + 0x20], 0xdc
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.180010180
test eax, eax
cmove r15d, r13d
sub r14, r13
jne 0x180051cf0
mov r13, qword [rbp - 0x30]
jmp 0x180051b2f
test r12d, r12d
jns 0x180051b2f
lea eax, [r14 + 1]
cmp eax, dword [rbp - 0x1c]
jge 0x180051b2f
mov r15d, 2
jmp 0x180051b2f
cmp ecx, 0x3c9
ja 0x18005212c
je 0x18005211f
mov eax, ecx
sub eax, 0x2ca
je 0x180051f8b
sub eax, 0x55
je 0x180051dd0
cmp eax, 0x55
jne 0x180052155
xor edx, edx
lea rcx, [rbp + 0x5e0]
mov r8d, 0x140
mov r10d, 0x7fff
nop
movss xmm0, dword [rcx]
comiss xmm0, xmm6
jbe 0x180051d8f
movzx eax, r10w
jmp 0x180051d9d
comiss xmm7, xmm0
mov eax, 0xffff8000
jae 0x180051d9d
cvttss2si eax, xmm0
mov word [rdx + r9], ax
add rcx, 4
add rdx, 2
sub r8, 1
jne 0x180051d80
mov rax, qword [r13]
lea r10, [0x1800813a0]
mov ecx, dword [rsp + 0x78]
mov r8d, dword [rsp + 0x70]
add dword [rax + 0x30], 0x140
jmp 0x180052155
movsxd r9, r11d
test r15d, r15d
je 0x180051e94
xor r14d, r14d
mov r10d, r14d
cmp r9, 4
jl 0x180051e5a
lea r8, [r9 - 4]
mov edx, 0x53c
shr r8, 2
inc r8
lea r10, [r8*4]
mov rcx, qword [r13]
lea rdx, [rdx + 0x10]
mov eax, dword [rdx + rcx - 0x10]
mov dword [rbp + rdx - 0x46c], eax
mov dword [rdx + rcx - 0x10], r14d
mov rcx, qword [r13]
mov eax, dword [rcx + rdx - 0xc]
mov dword [rbp + rdx - 0x468], eax
mov dword [rcx + rdx - 0xc], r14d
mov rcx, qword [r13]
mov eax, dword [rcx + rdx - 8]
mov dword [rbp + rdx - 0x464], eax
mov dword [rcx + rdx - 8], r14d
mov rcx, qword [r13]
mov eax, dword [rcx + rdx - 4]
mov dword [rbp + rdx - 0x460], eax
mov dword [rcx + rdx - 4], r14d
sub r8, 1
jne 0x180051e00
cmp r10, r9
jge 0x180051f32
mov r8, r9
lea rdx, [r10*4 + 0x53c]
sub r8, r10
mov rcx, qword [r13]
lea rdx, [rdx + 4]
mov eax, dword [rdx + rcx - 4]
mov dword [rbp + rdx - 0x460], eax
mov dword [rdx + rcx - 4], r14d
sub r8, 1
jne 0x180051e71
jmp 0x180051f32
xor r10d, r10d
cmp r9, 4
jl 0x180051f06
lea r8, [r9 - 4]
mov edx, 0x53c
shr r8, 2
inc r8
lea r10, [r8*4]
nop word [rax + rax]
mov eax, dword [rbp + rdx - 0x45c]
lea rdx, [rdx + 0x10]
mov rcx, qword [r13]
mov dword [rdx + rcx - 0x10], eax
mov eax, dword [rbp + rdx - 0x468]
mov rcx, qword [r13]
mov dword [rcx + rdx - 0xc], eax
mov eax, dword [rbp + rdx - 0x464]
mov rcx, qword [r13]
mov dword [rcx + rdx - 8], eax
mov eax, dword [rbp + rdx - 0x460]
mov rcx, qword [r13]
mov dword [rcx + rdx - 4], eax
sub r8, 1
jne 0x180051ec0
cmp r10, r9
jge 0x180051f32
mov r8, r9
lea rdx, [r10*4 + 0x53c]
sub r8, r10
mov eax, dword [rbp + rdx - 0x45c]
lea rdx, [rdx + 4]
mov rcx, qword [r13]
mov dword [rdx + rcx - 4], eax
sub r8, 1
jne 0x180051f19
mov eax, dword [rbp - 0x6c]
cmp r11d, eax
jge 0x180051f56
sub eax, r11d
lea rcx, [rbp + 0xe0]
movsxd r8, eax
lea rcx, [rcx + r9*4]
shl r8, 2
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [r13]
lea rax, [rbp + 0x5e0]
add rdx, 0x3c
mov dword [rbp - 0x60], 0x140
lea r9, [rbp + 0xe0]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x60]
mov ecx, 0x87
call fcn.180044390
jmp 0x180051b2f
mov eax, dword [rbp - 0x50]
test eax, eax
jle 0x180051fbf
lea rcx, [0x1800812c0]
mov edx, eax
nop dword [rax + rax]
mov eax, dword [rcx]
add eax, 0x1f
cmp eax, 0x40
jbe 0x180051fae
or r15d, 4
add rcx, 4
sub rdx, 1
jne 0x180051fa0
mov ecx, dword [rsp + 0x78]
mov edx, dword [rbp - 0x68]
cmp dword [rbp - 0x70], 0
jle 0x180052155
xor r14d, r14d
lea r13, [0x180000000]
mov r10d, r14d
mov r12d, 0x7fff
lea r11d, [r14 + 7]
cmp r10d, 6
ja case.default.0x180051ff8
mov eax, r10d
mov ecx, dword [r13 + rax*4 + 0x52328]
add rcx, r13
jmp rcx
mov eax, r15d
or eax, 8
cmp edx, edi
cmove eax, r15d
mov r15d, eax
jmp case.default.0x180051ff8
lea r8, [rbp + 0xd0]
mov r9d, 4
nop dword [rax + rax]
mov edx, StrCmpCW
mov eax, edx
sub eax, 0x9a
je 0x180052054
sub eax, 1
je 0x180052041
cmp eax, 1
jne 0x180052059
mov eax, ebx
and eax, 1
or edi, eax
jmp 0x180052059
mov ecx, 8
mov eax, ebx
sar eax, cl
xor ebx, eax
shr ecx, 1
jne 0x180052046
add edi, edi
jmp 0x180052059
mov ebx, dword [r8]
and ebx, esi
inc edx
cmp edx, 0x9d
jb 0x180052025
add r8, 4
sub r9, 1
jne 0x180052020
jmp 0x180052102
mov eax, dword [rbp - 0x58]
mov esi, r14d
dec eax
movsxd rcx, eax
mov eax, edx
not eax
and dword [rbp + rcx*4 + 0x80], eax
jmp case.default.0x180051ff8
sar dword [rbp - 0x58], 4
jmp case.default.0x180051ff8
mov edi, r14d
jmp case.default.0x180051ff8
mov eax, dword [rbp - 0x58]
mov ecx, dword [rbp - 0x70]
dec eax
movsxd rdx, eax
mov eax, 1
shl eax, cl
dec eax
mov edx, dword [rbp + rdx*4 + 0x80]
and edx, eax
mov dword [rbp - 0x68], edx
jmp case.default.0x180051ff8
mov r8d, r14d
lea r9, [rbp + 0x80]
mov ecx, r8d
lea r9, [r9 + 4]
mov eax, 0x88888889
imul r8d
add edx, r8d
inc r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xf
sub ecx, eax
movzx eax, word [r9 - 4]
shl eax, cl
xor esi, eax
cmp r8d, dword [rbp - 0x58]
jl 0x1800520c1
mov ecx, esi
mov eax, esi
sar ecx, 0xf
and eax, r12d
mov esi, ecx
xor esi, eax
mov edx, dword [rbp - 0x68]
inc r10d
sub r11, 1
jne 0x180051fe0
mov r13, qword [rbp - 0x30]
mov r12d, dword [rbp - 0x78]
jmp 0x180051b2f
mov rax, qword [r13]
add dword [rax + 0x38], 0x280
jmp 0x180052155
mov eax, ecx
sub eax, 0x41e
je 0x18005214a
sub eax, 0x55
je 0x180052141
cmp eax, 0x55
je case.0x180051510.28
jmp 0x180052155
mov dword [rbp - 0x40], 0
jmp 0x180052155
mov rax, qword [r13]
add dword [rax + 8], 0x280
mov eax, dword [rsp + 0x74]
add ecx, 0x55
mov dword [rsp + 0x78], ecx
cmp ecx, eax
jae case.0x180051510.28
mov r14d, dword [rbp - 0x54]
mov edx, dword [rbp - 0x68]
mov r9, qword [rbp - 0x18]
jmp 0x180051a94
mov dword [rbp - 0x40], 7
jmp case.0x180051510.28
xor r14d, r14d
mov dword [rbp - 0x40], r14d
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp + 0xae0]
xor rcx, rsp
call fcn.180065820
lea r11, [rsp + 0xc10]
mov rbx, qword [r11 + 0x58]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret