Function at 0x180003740
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.180025e00
mov rdx, qword [rax]
mov rcx, qword [rdx + 8]
cmp byte [rcx + 0x19], 0
jne 0x180003790
cmp dword [rcx + 0x20], 0xc566d10
jae 0x180003784
mov rcx, qword [rcx + 0x10]
jmp 0x18000378a
mov rdx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x180003775
cmp byte [rdx + 0x19], 0
jne 0x1800037c1
cmp dword [rdx + 0x20], 0xc566d10
ja 0x1800037c1
mov rdx, rax
mov rcx, rax
call fcn.1800271e0
lea rdx, [rbp + 0x140]
call fcn.180025d20
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.1800271e0
call fcn.180003540
mov rcx, rax
mov qword [rbp + 0x60], rax
mov rbx, rax
call fcn.180003340
mov esi, dword [0x1800a1010]
xor r14d, r14d
xor edi, edi
mov qword [rbp + 0x68], rax
mov r15, rax
movups xmm0, xmmword [str.QU_bXLMa___]
mov eax, dword [0x180096240]
xor r8d, r8d
mov dword [rbp + 0x88], eax
movzx eax, byte [0x180096244]
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 [0x180096238]
movsd qword [rbp + 0x80], xmm0
cmp esi, 2
jl 0x1800039c7
movdqa xmm0, xmmword [0x1800974d0]
lea rcx, [rbp + 0x74]
movdqa xmm5, xmmword [0x180097450]
movdqa xmm4, xmmword [0x180097940]
movdqa xmm6, xmmword [0x1800974a0]
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
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 [0x1800974c0]
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 [0x1800974c0]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x18
jl 0x1800038c0
cmp r8d, 0x1d
jge 0x180003a02
movsxd rax, r8d
lea r9, [rbp + 0x70]
add r9, rax
mov eax, 0x4d4873ed
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x35
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x38
xor byte [r9 - 1], al
cmp r8d, 0x1d
jl 0x1800039d1
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 0x180004be2
mov rax, qword [r15 + rdi*8]
xor edi, edi
mov ebx, edi
mov r13, qword [rax]
mov qword [rbp + 0x58], r13
mov eax, dword [0x180095990]
mov r8d, edi
mov dword [rbp - 0x28], eax
movzx eax, byte [0x180095994]
mov dword [rbp + 0x148], ebx
mov byte [rbp - 0x24], al
movups xmm0, xmmword [0x180095978]
movups xmmword [rbp - 0x40], xmm0
movsd xmm0, qword [0x180095988]
movsd qword [rbp - 0x30], xmm0
cmp esi, 2
jl 0x180003bb7
movdqa xmm0, xmmword [0x1800974d0]
lea rcx, [rbp - 0x3c]
movdqa xmm5, xmmword [0x180097450]
movdqa xmm4, xmmword [0x180097940]
movdqa xmm6, xmmword [0x1800974a0]
movdqa xmmword [rsp + 0x50], xmm0
mov edx, dword [rsp + 0x50]
nop dword [rax]
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
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 [0x1800974c0]
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 [0x1800974c0]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x18
jl 0x180003ab0
cmp r8d, 0x1d
jge 0x180003bf2
movsxd rax, r8d
lea r9, [rbp - 0x40]
add r9, rax
mov eax, 0x4d4873ed
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x35
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x38
xor byte [r9 - 1], al
cmp r8d, 0x1d
jl 0x180003bc1
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 0x180004b0a
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 0x180003c31
lea rcx, [rsp + 0x30]
call fcn.180027260
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 0x180003cc2
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 0x180003cbc
nop word [rax + rax]
cmp dword [r9], 0x6c6c642e
je 0x180003fe0
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 0x180003c90
mov esi, dword [0x1800a1010]
mov r9, 0xffffffffffffffff
cmp rbx, r9
jb 0x180004c35
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 [0x180095e18]
xor edi, edi
mov dword [rbp - 0x30], eax
mov r8d, edi
movzx eax, word [0x180095e1c]
mov word [rbp - 0x2c], ax
movzx eax, byte [0x180095e1e]
mov byte [rbp - 0x2a], al
mov qword [rsp + 0x40], rbx
movups xmm0, xmmword [str.QU_bXLMaV___e_3]
movups xmmword [rbp - 0x40], xmm0
cmp esi, 2
jl 0x180003e79
movdqa xmm0, xmmword [0x1800974d0]
lea rcx, [rbp - 0x3c]
movdqa xmm5, xmmword [0x180097450]
movdqa xmm4, xmmword [0x180097940]
movdqa xmm6, xmmword [0x1800974a0]
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
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 [0x1800974c0]
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 [0x1800974c0]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x10
jl 0x180003d72
cmp r8d, 0x17
jge 0x180003ec1
movsxd rax, r8d
lea r9, [rbp - 0x40]
add r9, rax
nop dword [rax]
nop word [rax + rax]
mov eax, 0x4d4873ed
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x35
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x38
xor byte [r9 - 1], al
cmp r8d, 0x17
jl 0x180003e90
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
inc r8
cmp byte [rsi + r8], dil
jne 0x180003f05
mov rdx, rsi
lea rcx, [rsp + 0x60]
call fcn.180027260
cmp qword [rsp + 0x70], rdi
mov rdx, qword [rsp + 0x78]
sete bl
cmp rdx, 0xf
jbe 0x180003f60
mov rcx, qword [rsp + 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180003f5b
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bdb
call fcn.180065460
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
test bl, bl
je 0x18000413d
mov rsi, qword [rsp + 0x40]
sub rax, rsi
cmp rax, 2
jb 0x180004c41
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 0x18000404a
mov rbx, r15
or rbx, 0xf
cmp rbx, rcx
jbe 0x180003fee
movabs rax, 0x8000000000000000
mov rbx, rcx
add rax, 0x27
jmp 0x180004015
mov esi, dword [0x1800a1010]
sub r9, rdi
jmp 0x180003cc9
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x180004034
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180004c3b
mov rcx, rax
call fcn.180065424
test rax, rax
je 0x180004b28
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x180004045
test rcx, rcx
je 0x180004043
call fcn.180065424
mov rdi, rax
jmp 0x180004045
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
inc r8
cmp byte [r14 + r8], 0
jne 0x180004074
mov rdx, r14
lea rcx, [rsp + 0x60]
call fcn.180026290
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 0x1800040df
mov rcx, qword [rsp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800040da
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b28
call fcn.180065460
mov rdx, qword [rsp + 0x78]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x40], xmm7
cmp rdx, 0xf
jbe 0x180004126
mov rcx, qword [rsp + 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004121
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b28
call fcn.180065460
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], 0xf
mov byte [rsp + 0x60], bl
jmp 0x1800044a7
mov r15, qword [rsp + 0x40]
sub rax, r15
cmp rax, 2
jb 0x180004c59
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 0x1800041fb
mov rbx, r12
or rbx, 0xf
cmp rbx, rcx
jbe 0x1800041a0
movabs rax, 0x8000000000000000
mov rbx, rcx
add rax, 0x27
jmp 0x1800041c7
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x1800041e6
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180004c47
mov rcx, rax
call fcn.180065424
test rax, rax
je 0x180004b2f
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1800041f7
test rcx, rcx
je 0x1800041f5
call fcn.180065424
mov rdi, rax
jmp 0x1800041f7
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
nop dword [rax + rax]
inc r8
cmp byte [rsi + r8], 0
jne 0x180004230
mov rdx, rsi
lea rcx, [rbp - 0x20]
call fcn.180026290
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 0x1800042ac
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 0x1800042ca
lea r9, [0x180068a64]
mov qword [rsp + 0x20], 2
mov edx, 2
lea rcx, [rbp - 0x60]
call fcn.180027500
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
nop dword [rax]
inc rdi
cmp byte [r14 + rdi], bl
jne 0x180004300
mov rdx, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x70]
mov rax, rdx
sub rax, rcx
cmp rdi, rax
ja 0x18000434e
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 0x180004362
mov r9, r14
mov qword [rsp + 0x20], rdi
mov rdx, rdi
lea rcx, [rbp - 0x80]
call fcn.180027500
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 0x1800043b5
mov rcx, qword [rsp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800043b0
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b2f
call fcn.180065460
mov rdx, qword [rbp - 0x68]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x40], xmm7
cmp rdx, 0xf
jbe 0x1800043fa
mov rcx, qword [rbp - 0x80]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800043f5
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b2f
call fcn.180065460
mov rdx, qword [rbp - 0x48]
mov qword [rbp - 0x70], rbx
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], 0
cmp rdx, 0xf
jbe 0x180004445
mov rcx, qword [rbp - 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004440
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b2f
call fcn.180065460
mov rdx, qword [rbp - 8]
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], 0
cmp rdx, 0xf
jbe 0x180004490
mov rcx, qword [rbp - 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000448b
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b2f
call fcn.180065460
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 + rax]
cmp byte [0x180095947], 0
movups xmm0, xmmword [0x180095930]
mov esi, dword [0x1800a1010]
movups xmmword [rbp + 0x8d], xmm0
movsd xmm0, qword [0x180095940]
movsd qword [rbp + 0x9d], xmm0
je 0x180004661
cmp esi, 2
jl 0x180004621
movdqa xmm0, xmmword [0x1800974d0]
lea rcx, [rbp + 0x91]
movdqa xmm5, xmmword [0x180097450]
mov edx, ebx
movdqa xmm4, xmmword [0x180097940]
movdqa xmm6, xmmword [0x1800974a0]
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
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 [0x1800974c0]
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
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, r8d
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800974c0]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp edx, 0x18
jl 0x180004520
jmp 0x180004661
lea r9, [rbp + 0x8d]
mov r8d, ebx
nop dword [rax + rax]
mov eax, 0x4d4873ed
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x35
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x38
xor byte [r9 - 1], al
cmp r8d, 0x18
jl 0x180004630
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 0x180004aa7
cmp byte [0x180095f55], 0
mov ecx, dword [0x180095f50]
movups xmm0, xmmword [0x180095f40]
mov dword [rbp + 0x40], ecx
movzx ecx, word [0x180095f54]
movups xmmword [rbp + 0x30], xmm0
mov word [rbp + 0x44], cx
je 0x180004842
mov r8d, ebx
cmp esi, 2
jl 0x180004807
movdqa xmm0, xmmword [0x1800974d0]
lea rcx, [rbp + 0x34]
movdqa xmm5, xmmword [0x180097450]
movdqa xmm4, xmmword [0x180097940]
movdqa xmm6, xmmword [0x1800974a0]
movdqa xmmword [rsp + 0x50], xmm0
mov edx, dword [rsp + 0x50]
nop dword [rax]
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
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 [0x1800974c0]
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 [0x1800974c0]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x10
jl 0x180004700
cmp r8d, 0x16
jge 0x180004842
movsxd rax, r8d
lea r9, [rbp + 0x30]
add r9, rax
mov eax, 0x4d4873ed
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x35
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x38
xor byte [r9 - 1], al
cmp r8d, 0x16
jl 0x180004811
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 0x180004c53
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 0x180004926
mov rbx, r14
or rbx, 0xf
cmp rbx, rax
jbe 0x1800048cb
mov rbx, rax
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x1800048f2
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x180004911
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180004c4d
mov rcx, rax
call fcn.180065424
test rax, rax
je 0x180004b36
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x180004922
test rcx, rcx
je 0x180004920
call fcn.180065424
mov rdi, rax
jmp 0x180004922
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
nop
inc r8
cmp byte [rsi + r8], 0
jne 0x180004950
mov rdx, rsi
lea rcx, [rbp]
call fcn.180026290
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 0x1800049c6
mov rcx, qword [rbp]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800049c1
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004b36
call fcn.180065460
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 word [rax + rax]
inc rcx
cmp byte [rax + rcx], bl
jne 0x180004a00
cmp rsi, 0xf
lea r8, [rbp + 0xa8]
mov eax, 0xffffffff
cmova r8, rdi
test ecx, ecx
je 0x180004a52
mov r9d, ecx
lea r13, [0x180091330]
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 0x180004a30
mov r13, qword [rbp + 0x50]
not eax
cmp eax, dword [rbp + 0x140]
je 0x180004b3d
mov r13, qword [rbp + 0x158]
cmp rsi, 0xf
jbe 0x1800044b0
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x180004a9a
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bdb
mov rcx, rdi
call fcn.180065460
jmp 0x1800044b0
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xf
jbe 0x180004ae4
mov rcx, qword [rsp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004adf
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bdb
call fcn.180065460
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 0x180003a38
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 0x18000383a
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.180026610
cmp rsi, 0xf
jbe 0x180004b9d
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x180004b95
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bdb
mov rcx, rdi
call fcn.180065460
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xf
jbe 0x180004bd6
mov rcx, qword [rsp + 0x30]
inc rdx
mov r8, rcx
cmp rdx, 0x1000
jb 0x180004bd1
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub r8, rcx
add r8, 0xfffffffffffffff8
cmp r8, 0x1f
ja 0x180004bdb
call fcn.180065460
mov rax, rbx
jmp 0x180004be4
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