Function at 0x180003770
Capabilities:
Encode data using xor
Hash data with crc32
Link many functions at runtime

Disassembly:
mov dword [rsp + 8], ecx
push rbp
lea rbp, [rsp - 0x130]
sub rsp, 0x230
lea rcx, [rsp + 0x50]
mov dword [rbp + 0x140], 0xc566d10
call fcn.180026040
mov rdx, qword [rax]
mov rcx, qword [rdx + 8]
cmp byte [rcx + 0x19], 0
jne 0x1800037c0
cmp dword [rcx + 0x20], 0xc566d10
jae 0x1800037b4
mov rcx, qword [rcx + 0x10]
jmp 0x1800037ba
mov rdx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1800037a5
cmp byte [rdx + 0x19], 0
jne 0x1800037f1
cmp dword [rdx + 0x20], 0xc566d10
ja 0x1800037f1
mov rdx, rax
mov rcx, rax
call fcn.180027420
lea rdx, [rbp + 0x140]
call fcn.180025f60
mov eax, dword [rax]
add rsp, 0x230
pop rbp
ret
mov qword [rsp + 0x228], rbx
mov rdx, rax
mov qword [rsp + 0x220], rsi
mov rcx, rax
mov qword [rsp + 0x218], rdi
mov qword [rsp + 0x210], r12
mov qword [rsp + 0x208], r13
mov qword [rsp + 0x200], r14
mov qword [rsp + 0x1f8], r15
movaps xmmword [rsp + 0x1e0], xmm6
movaps xmmword [rsp + 0x1d0], xmm7
call fcn.180027420
call fcn.180003570
mov rcx, rax
mov qword [rbp + 0x60], rax
mov rbx, rax
call fcn.180003360
mov esi, dword [0x1800a1010]
xor r14d, r14d
xor edi, edi
mov qword [rbp + 0x68], rax
mov r15, rax
movups xmm0, xmmword [0x180095ab0]
mov eax, dword [0x180095ac8]
xor r8d, r8d
mov dword [rbp + 0x88], eax
movzx eax, byte [0x180095acc]
mov qword [rbp + 0x28], rdi
mov dword [rbp + 0x150], r14d
mov qword [rbp + 0x20], 0
mov byte [rbp + 0x8c], al
movups xmmword [rbp + 0x70], xmm0
movsd xmm0, qword [0x180095ac0]
movsd qword [rbp + 0x80], xmm0
cmp esi, 2
jl 0x1800039ff
movdqa xmm0, xmmword [str.2222222222222222]
lea rcx, [rbp + 0x74]
movdqa xmm5, xmmword [0x180097390]
movdqa xmm4, xmmword [0x1800978b0]
movdqa xmm6, xmmword [0x1800973e0]
movdqa xmmword [rsp + 0x50], xmm0
mov edx, dword [rsp + 0x50]
nop dword [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 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 r8d, 8
pmuldq xmm1, xmm4
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 [0x180097400]
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 [0x180097400]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x18
jl 0x1800038f0
cmp r8d, 0x1d
jge 0x180003a44
movsxd rax, r8d
lea r9, [rbp + 0x70]
add r9, rax
nop dword [rax]
mov eax, 0x8d3dcb09
lea r9, [r9 + 1]
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x32
xor byte [r9 - 1], al
cmp r8d, 0x1d
jl 0x180003a10
mov rcx, qword [0x1801bb580]
lea rdx, [rbp + 0x70]
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetProcAddress]
lea rdx, [rbp + 0x20]
mov rcx, rbx
call rax
movsxd rax, r14d
cmp rax, qword [rbp + 0x20]
jae 0x180004c52
mov rax, qword [r15 + rdi*8]
xor edi, edi
mov ebx, edi
mov r13, qword [rax]
mov qword [rbp + 0x58], r13
mov eax, dword [0x1800958d0]
mov r8d, edi
mov dword [rbp - 0x28], eax
movzx eax, byte [0x1800958d4]
mov dword [rbp + 0x148], ebx
mov byte [rbp - 0x24], al
movups xmm0, xmmword [0x1800958b8]
movups xmmword [rbp - 0x40], xmm0
movsd xmm0, qword [0x1800958c8]
movsd qword [rbp - 0x30], xmm0
cmp esi, 2
jl 0x180003bff
movdqa xmm0, xmmword [str.2222222222222222]
lea rcx, [rbp - 0x3c]
movdqa xmm5, xmmword [0x180097390]
movdqa xmm4, xmmword [0x1800978b0]
movdqa xmm6, xmmword [0x1800973e0]
movdqa xmmword [rsp + 0x50], xmm0
mov edx, dword [rsp + 0x50]
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 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 r8d, 8
pmuldq xmm1, xmm4
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 [0x180097400]
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 [0x180097400]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x18
jl 0x180003af0
cmp r8d, 0x1d
jge 0x180003c44
movsxd rax, r8d
lea r9, [rbp - 0x40]
add r9, rax
nop dword [rax]
mov eax, 0x8d3dcb09
lea r9, [r9 + 1]
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x32
xor byte [r9 - 1], al
cmp r8d, 0x1d
jl 0x180003c10
mov rcx, qword [0x1801bb580]
lea rdx, [rbp - 0x40]
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetProcAddress]
mov rcx, r13
movsxd r12, ebx
call rax
cmp r12, rax
jae 0x180004b7a
mov rdx, qword [r13]
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rdi
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x48], rdi
inc r8
cmp byte [rdx + r8], 0
jne 0x180003c83
lea rcx, [rsp + 0x30]
call fcn.1800274a0
mov r15, qword [rsp + 0x48]
lea rdi, [rsp + 0x30]
mov r14, qword [rsp + 0x30]
cmp r15, 0xf
mov rbx, qword [rsp + 0x40]
cmova rdi, r14
cmp rbx, 4
jb 0x180003d12
lea rsi, [rbx + rdi]
mov edx, 0x2e
lea r8, [rsi - 3]
mov rcx, rdi
sub r8, rdi
call sub.VCRUNTIME140.dll_memchr
mov r9, rax
test rax, rax
je 0x180003d0c
nop dword [rax]
cmp dword [r9], 0x6c6c642e
je 0x18000403b
inc r9
lea r8, [rsi - 3]
sub r8, r9
mov rcx, r9
mov edx, 0x2e
call sub.VCRUNTIME140.dll_memchr
mov r9, rax
test rax, rax
jne 0x180003ce0
mov esi, dword [0x1800a1010]
mov r9, 0xffffffffffffffff
cmp rbx, r9
jb 0x180004ca5
mov rax, rbx
lea rcx, [rsp + 0x30]
sub rax, r9
mov edx, 4
cmp rax, rdx
cmovb rdx, rax
cmp r15, 0xf
cmova rcx, r14
sub rbx, rdx
add rcx, r9
mov r8, rbx
sub r8, r9
add rdx, rcx
inc r8
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [0x180095c90]
xor edi, edi
mov dword [rbp - 0x30], eax
mov r8d, edi
movzx eax, word [0x180095c94]
mov word [rbp - 0x2c], ax
movzx eax, byte [0x180095c96]
mov byte [rbp - 0x2a], al
mov qword [rsp + 0x40], rbx
movups xmm0, xmmword [0x180095c80]
movups xmmword [rbp - 0x40], xmm0
cmp esi, 2
jl 0x180003ed1
movdqa xmm0, xmmword [str.2222222222222222]
lea rcx, [rbp - 0x3c]
movdqa xmm5, xmmword [0x180097390]
movdqa xmm4, xmmword [0x1800978b0]
movdqa xmm6, xmmword [0x1800973e0]
movdqa xmmword [rsp + 0x50], xmm0
mov edx, dword [rsp + 0x50]
movd xmm2, r8d
lea eax, [r8 + 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 r8d, 8
pmuldq xmm1, xmm4
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 [0x180097400]
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 [0x180097400]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x10
jl 0x180003dc2
cmp r8d, 0x17
jge 0x180003f14
movsxd rax, r8d
lea r9, [rbp - 0x40]
add r9, rax
nop dword [rax + rax]
mov eax, 0x8d3dcb09
lea r9, [r9 + 1]
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x32
xor byte [r9 - 1], al
cmp r8d, 0x17
jl 0x180003ee0
mov rcx, qword [0x1801bb580]
lea rdx, [rbp - 0x40]
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetProcAddress]
mov rdx, r12
mov rcx, r13
call rax
xorps xmm0, xmm0
mov qword [rbp + 0x158], rax
mov r13, rax
mov qword [rsp + 0x70], rdi
movups xmmword [rsp + 0x60], xmm0
mov r14, qword [rax + 0x10]
mov r8, 0xffffffffffffffff
mov rsi, qword [rax + 0x18]
mov qword [rsp + 0x78], rdi
nop dword [rax + rax]
inc r8
cmp byte [rsi + r8], dil
jne 0x180003f60
mov rdx, rsi
lea rcx, [rsp + 0x60]
call fcn.1800274a0
cmp qword [rsp + 0x70], rdi
mov rdx, qword [rsp + 0x78]
sete bl
cmp rdx, 0xf
jbe 0x180003fbb
mov rcx, qword [rsp + 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180003fb6
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004c4b
call fcn.1800656b0
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
test bl, bl
je 0x180004199
mov rsi, qword [rsp + 0x40]
sub rax, rsi
cmp rax, 2
jb 0x180004cb1
cmp qword [rsp + 0x48], 0xf
lea r12, [rsp + 0x30]
lea r15, [rsi + 2]
mov qword [rsp + 0x70], rdi
cmova r12, qword [rsp + 0x30]
mov ebx, 0xf
mov qword [rsp + 0x78], rdi
xorps xmm0, xmm0
lea rdi, [rsp + 0x60]
movups xmmword [rsp + 0x60], xmm0
cmp r15, rbx
jbe 0x1800040a5
mov rbx, r15
or rbx, 0xf
cmp rbx, rcx
jbe 0x180004049
movabs rax, 0x8000000000000000
mov rbx, rcx
add rax, 0x27
jmp 0x180004070
mov esi, dword [0x1800a1010]
sub r9, rdi
jmp 0x180003d19
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x18000408f
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180004cab
mov rcx, rax
call fcn.180065674
test rax, rax
je 0x180004b98
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1800040a0
test rcx, rcx
je 0x18000409e
call fcn.180065674
mov rdi, rax
jmp 0x1800040a0
xor edi, edi
mov qword [rsp + 0x60], rdi
mov r8, rsi
mov qword [rsp + 0x70], r15
mov rdx, r12
mov qword [rsp + 0x78], rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov word [rdi + rsi], 0x3a3a
mov r8, 0xffffffffffffffff
mov byte [rdi + r15], 0
nop
inc r8
cmp byte [r14 + r8], 0
jne 0x1800040d0
mov rdx, r14
lea rcx, [rsp + 0x60]
call fcn.1800264d0
xor ebx, ebx
movups xmm6, xmmword [rax]
movups xmm7, xmmword [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xf
jbe 0x18000413b
mov rcx, qword [rsp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004136
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b98
call fcn.1800656b0
mov rdx, qword [rsp + 0x78]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x40], xmm7
cmp rdx, 0xf
jbe 0x180004182
mov rcx, qword [rsp + 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000417d
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b98
call fcn.1800656b0
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], 0xf
mov byte [rsp + 0x60], bl
jmp 0x1800044f8
mov r15, qword [rsp + 0x40]
sub rax, r15
cmp rax, 2
jb 0x180004cc9
cmp qword [rsp + 0x48], 0xf
lea r13, [rsp + 0x30]
lea r12, [r15 + 2]
mov qword [rbp - 0x10], rdi
cmova r13, qword [rsp + 0x30]
mov ebx, 0xf
mov qword [rbp - 8], rdi
xorps xmm0, xmm0
lea rdi, [rbp - 0x20]
movups xmmword [rbp - 0x20], xmm0
cmp r12, rbx
jbe 0x180004257
mov rbx, r12
or rbx, 0xf
cmp rbx, rcx
jbe 0x1800041fc
movabs rax, 0x8000000000000000
mov rbx, rcx
add rax, 0x27
jmp 0x180004223
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x180004242
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180004cb7
mov rcx, rax
call fcn.180065674
test rax, rax
je 0x180004b9f
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x180004253
test rcx, rcx
je 0x180004251
call fcn.180065674
mov rdi, rax
jmp 0x180004253
xor edi, edi
mov qword [rbp - 0x20], rdi
mov r8, r15
mov qword [rbp - 0x10], r12
mov rdx, r13
mov qword [rbp - 8], rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov r13d, 0x3a3a
mov r8, 0xffffffffffffffff
mov word [rdi + r15], r13w
mov byte [rdi + r12], 0
inc r8
cmp byte [rsi + r8], 0
jne 0x180004284
mov rdx, rsi
lea rcx, [rbp - 0x20]
call fcn.1800264d0
xor ebx, ebx
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x50], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x180004300
lea rax, [rcx + 2]
cmp rdx, 0xf
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x60]
cmova rax, qword [rbp - 0x60]
mov word [rax + rcx], r13w
mov byte [rax + rcx + 2], bl
lea rax, [rbp - 0x60]
jmp 0x18000431e
lea r9, [0x180068a5c]
mov qword [rsp + 0x20], 2
mov edx, 2
lea rcx, [rbp - 0x60]
call fcn.180027740
mov qword [rbp - 0x70], rbx
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x68], rbx
mov rdi, 0xffffffffffffffff
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x70], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
inc rdi
cmp byte [r14 + rdi], bl
jne 0x180004351
mov rdx, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x70]
mov rax, rdx
sub rax, rcx
cmp rdi, rax
ja 0x18000439f
cmp rdx, 0xf
lea rax, [rcx + rdi]
lea rbx, [rbp - 0x80]
mov qword [rbp - 0x70], rax
cmova rbx, qword [rbp - 0x80]
mov r8, rdi
add rbx, rcx
mov rdx, r14
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rdi + rbx], 0
lea rax, [rbp - 0x80]
xor ebx, ebx
jmp 0x1800043b3
mov r9, r14
mov qword [rsp + 0x20], rdi
mov rdx, rdi
lea rcx, [rbp - 0x80]
call fcn.180027740
movups xmm6, xmmword [rax]
movups xmm7, xmmword [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xf
jbe 0x180004406
mov rcx, qword [rsp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004401
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b9f
call fcn.1800656b0
mov rdx, qword [rbp - 0x68]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x40], xmm7
cmp rdx, 0xf
jbe 0x18000444b
mov rcx, qword [rbp - 0x80]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004446
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b9f
call fcn.1800656b0
mov rdx, qword [rbp - 0x48]
mov qword [rbp - 0x70], rbx
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], 0
cmp rdx, 0xf
jbe 0x180004496
mov rcx, qword [rbp - 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004491
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b9f
call fcn.1800656b0
mov rdx, qword [rbp - 8]
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], 0
cmp rdx, 0xf
jbe 0x1800044e1
mov rcx, qword [rbp - 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800044dc
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b9f
call fcn.1800656b0
mov r13, qword [rbp + 0x158]
mov qword [rbp - 0x10], rbx
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
mov qword [rbp + 0x48], rbx
nop dword [rax]
cmp byte [0x180096417], 0
movups xmm0, xmmword [0x180096400]
mov esi, dword [0x1800a1010]
movups xmmword [rbp + 0x8d], xmm0
movsd xmm0, qword [0x180096410]
movsd qword [rbp + 0x9d], xmm0
je 0x1800046c4
cmp esi, 2
jl 0x180004679
movdqa xmm0, xmmword [str.2222222222222222]
lea rcx, [rbp + 0x91]
movdqa xmm5, xmmword [0x180097390]
mov edx, ebx
movdqa xmm4, xmmword [0x1800978b0]
movdqa xmm6, xmmword [0x1800973e0]
movdqa xmmword [rsp + 0x50], xmm0
mov r8d, dword [rsp + 0x50]
nop
movd xmm2, edx
lea eax, [rdx + 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 edx, 8
pmuldq xmm1, xmm4
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 [0x180097400]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, r8d
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, r8d
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x180097400]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp edx, 0x18
jl 0x180004570
jmp 0x1800046c4
lea r9, [rbp + 0x8d]
mov r8d, ebx
nop dword [rax]
nop word [rax + rax]
mov eax, 0x8d3dcb09
lea r9, [r9 + 1]
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x32
xor byte [r9 - 1], al
cmp r8d, 0x18
jl 0x180004690
mov rcx, qword [0x1801bb580]
lea rdx, [rbp + 0x8d]
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetProcAddress]
lea rdx, [rbp + 0x48]
mov rcx, r13
call rax
mov qword [rbp + 0x50], rax
mov r13, rax
test rax, rax
je 0x180004b17
cmp byte [0x180095745], 0
mov ecx, dword [0x180095740]
movups xmm0, xmmword [0x180095730]
mov dword [rbp + 0x40], ecx
movzx ecx, word [0x180095744]
movups xmmword [rbp + 0x30], xmm0
mov word [rbp + 0x44], cx
je 0x1800048b4
mov r8d, ebx
cmp esi, 2
jl 0x18000486f
movdqa xmm0, xmmword [str.2222222222222222]
lea rcx, [rbp + 0x34]
movdqa xmm5, xmmword [0x180097390]
movdqa xmm4, xmmword [0x1800978b0]
movdqa xmm6, xmmword [0x1800973e0]
movdqa xmmword [rsp + 0x50], xmm0
mov edx, dword [rsp + 0x50]
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 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 r8d, 8
pmuldq xmm1, xmm4
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 [0x180097400]
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 [0x180097400]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x10
jl 0x180004760
cmp r8d, 0x16
jge 0x1800048b4
movsxd rax, r8d
lea r9, [rbp + 0x30]
add r9, rax
nop dword [rax]
mov eax, 0x8d3dcb09
lea r9, [r9 + 1]
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x32
xor byte [r9 - 1], al
cmp r8d, 0x16
jl 0x180004880
mov rcx, qword [0x1801bb580]
lea rdx, [rbp + 0x30]
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetProcAddress]
mov rcx, r13
call rax
mov r15, qword [rsp + 0x40]
mov rsi, rax
movabs rax, 0x7fffffffffffffff
mov rcx, rax
sub rcx, r15
cmp rcx, 2
jb 0x180004cc3
cmp qword [rsp + 0x48], 0xf
lea r12, [rsp + 0x30]
mov qword [rbp + 0x10], rbx
lea r14, [r15 + 2]
cmova r12, qword [rsp + 0x30]
lea rdi, [rbp]
mov qword [rbp + 0x18], rbx
xorps xmm0, xmm0
mov ebx, 0xf
movups xmmword [rbp], xmm0
cmp r14, rbx
jbe 0x180004998
mov rbx, r14
or rbx, 0xf
cmp rbx, rax
jbe 0x18000493d
mov rbx, rax
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x180004964
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x180004983
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180004cbd
mov rcx, rax
call fcn.180065674
test rax, rax
je 0x180004ba6
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x180004994
test rcx, rcx
je 0x180004992
call fcn.180065674
mov rdi, rax
jmp 0x180004994
xor edi, edi
mov qword [rbp], rdi
mov r8, r15
mov qword [rbp + 0x10], r14
mov rdx, r12
mov qword [rbp + 0x18], rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov word [rdi + r15], 0x3a3a
mov r8, 0xffffffffffffffff
mov byte [rdi + r14], 0
inc r8
cmp byte [rsi + r8], 0
jne 0x1800049c1
mov rdx, rsi
lea rcx, [rbp]
call fcn.1800264d0
xor ebx, ebx
movups xmm7, xmmword [rax]
movups xmm6, xmmword [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
mov rdx, qword [rbp + 0x18]
movups xmmword [rbp + 0xa8], xmm7
movups xmmword [rbp + 0xb8], xmm6
cmp rdx, 0xf
jbe 0x180004a37
mov rcx, qword [rbp]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004a32
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004ba6
call fcn.1800656b0
psrldq xmm6, 8
lea rax, [rbp + 0xa8]
movq rsi, xmm6
mov qword [rbp + 0x10], rbx
cmp rsi, 0xf
mov qword [rbp + 0x18], 0xf
movq rdi, xmm7
mov byte [rbp], bl
cmova rax, rdi
mov rcx, 0xffffffffffffffff
nop dword [rax + rax]
inc rcx
cmp byte [rax + rcx], bl
jne 0x180004a70
cmp rsi, 0xf
lea r8, [rbp + 0xa8]
mov eax, 0xffffffff
cmova r8, rdi
test ecx, ecx
je 0x180004ac2
mov r9d, ecx
lea r13, [0x180091260]
nop word [rax + rax]
movsx edx, byte [r8]
lea r8, [r8 + 1]
mov ecx, eax
shr eax, 8
xor rdx, rcx
movzx ecx, dl
xor eax, dword [r13 + rcx*4]
sub r9, 1
jne 0x180004aa0
mov r13, qword [rbp + 0x50]
not eax
cmp eax, dword [rbp + 0x140]
je 0x180004bad
mov r13, qword [rbp + 0x158]
cmp rsi, 0xf
jbe 0x180004500
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x180004b0a
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004c4b
mov rcx, rdi
call fcn.1800656b0
jmp 0x180004500
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xf
jbe 0x180004b54
mov rcx, qword [rsp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004b4f
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004c4b
call fcn.1800656b0
mov r13, qword [rbp + 0x58]
mov qword [rsp + 0x40], rbx
mov ebx, dword [rbp + 0x148]
inc ebx
mov qword [rsp + 0x48], 0xf
xor edi, edi
mov byte [rsp + 0x30], 0
jmp 0x180003a7a
mov r14d, dword [rbp + 0x150]
mov rdi, qword [rbp + 0x28]
inc r14d
mov rbx, qword [rbp + 0x60]
inc rdi
mov r15, qword [rbp + 0x68]
jmp 0x18000386a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r13
call fcn.180003160
mov ecx, dword [rbp + 0x140]
lea r8, [rbp + 0x148]
mov ebx, eax
lea rdx, [rsp + 0x50]
mov dword [rbp + 0x14c], ebx
mov dword [rbp + 0x148], ecx
call fcn.180026850
cmp rsi, 0xf
jbe 0x180004c0d
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x180004c05
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004c4b
mov rcx, rdi
call fcn.1800656b0
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xf
jbe 0x180004c46
mov rcx, qword [rsp + 0x30]
inc rdx
mov r8, rcx
cmp rdx, 0x1000
jb 0x180004c41
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub r8, rcx
add r8, 0xfffffffffffffff8
cmp r8, 0x1f
ja 0x180004c4b
call fcn.1800656b0
mov rax, rbx
jmp 0x180004c54
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
xor eax, eax
movaps xmm6, xmmword [rsp + 0x1e0]
mov r15, qword [rsp + 0x1f8]
mov r14, qword [rsp + 0x200]
mov r13, qword [rsp + 0x208]
mov r12, qword [rsp + 0x210]
mov rdi, qword [rsp + 0x218]
mov rsi, qword [rsp + 0x220]
mov rbx, qword [rsp + 0x228]
movaps xmm7, xmmword [rsp + 0x1d0]
add rsp, 0x230
pop rbp
ret
call fcn.180002e00
int3
call fcn.180001c40
int3
call fcn.180001ce0
int3
call fcn.180001c40
int3
call fcn.180001c40
int3
call fcn.180001ce0
int3
call fcn.180001ce0
int3