Function at 0x14001ce60
Capabilities:
Access peb ldr_data
Create thread
Delete file
Encode data using xor
Get kernel32 base address
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0xe8]
sub rsp, 0x1d0
movaps xmmword [rax - 0x28], xmm6
mov rax, qword [0x1401fec80]
xor rax, rsp
mov qword [rbp + 0xb0], rax
xor edi, edi
mov dword [rbp + 8], edi
movzx eax, word [0x14003f46c]
mov word [rsp + 0x40], ax
cmp byte [0x14003f46d], dil
je 0x14001cebf
mov byte [rsp + 0x40], 0x30
xor byte [rsp + 0x41], 0x32
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], rdi
lea rax, [rsp + 0x40]
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop dword [rax]
inc r8
cmp byte [rax + r8], dil
jne 0x14001cee0
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x10]
call fcn.1400019d0
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x50]
call fcn.1400376b0
mov rdx, qword [rbp + 0x68]
cmp rdx, 0xf
jbe 0x14001cf42
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001cf3d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001cf3d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140039fd0
mov r15d, 1
mov ecx, r15d
call fcn.140039f94
mov qword [rbp + 8], rax
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
mov r9, rax
lea r8, [0x140003800]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14001e500
cmp dword [rsp + 0x58], 0
je 0x14001e4b3
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rbp + 0x30], xmm0
lea rcx, [rbp + 0x30]
call sub.MSVCP140.dll__Thrd_detach
test eax, eax
jne 0x14001e4b3
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x50], xmm0
mov ecx, r15d
call fcn.140039f94
mov qword [rbp + 8], rax
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
mov r9, rax
lea r8, [0x140003830]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14001e536
cmp dword [rsp + 0x58], 0
je 0x14001e52d
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rbp + 0x30], xmm0
lea rcx, [rbp + 0x30]
call sub.MSVCP140.dll__Thrd_detach
test eax, eax
jne 0x14001e52d
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x50], xmm0
call fcn.140030200
lea ecx, [r15 + 7]
call fcn.140039f94
test rax, rax
je 0x14001d03d
lea rcx, [0x14001a3e0]
mov qword [rax], rcx
jmp 0x14001d040
mov rax, rdi
mov qword [rbp + 8], rax
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
mov r9, rax
lea r8, [0x1400037d0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14001e51e
cmp dword [rsp + 0x58], 0
je 0x14001e515
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rbp + 0x30], xmm0
lea rcx, [rbp + 0x30]
call sub.MSVCP140.dll__Thrd_detach
test eax, eax
jne 0x14001e515
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [0x14003f470]
movups xmmword [rbp + 0x30], xmm0
movsd xmm0, qword [0x14003f480]
movsd qword [rbp + 0x40], xmm0
mov r12d, dword [0x1401fec30]
cmp byte [0x14003f487], al
je 0x14001d253
cmp r12d, 2
jl 0x14001d217
movdqa xmm5, xmmword [0x140040b80]
mov edx, edi
movdqa xmm4, xmmword [0x140040c40]
movdqa xmm6, xmmword [0x140040ba0]
movdqa xmm0, xmmword [str.1111111111111111]
movdqa xmmword [rsp + 0x40], xmm0
lea rcx, [rbp + 0x34]
mov r8d, dword [rsp + 0x40]
nop dword [rax]
movd xmm2, edx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, 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
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [rdx + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
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
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add edx, 8
lea rcx, [rcx + 8]
cmp edx, 0x18
jl 0x14001d110
jmp 0x14001d253
lea r9, [rbp + 0x30]
mov r8d, edi
nop
mov eax, 0x8fb823ef
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x39
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x18
jl 0x14001d220
lea rax, [rbp + 0x30]
mov qword [rsp + 0x50], rax
lea rcx, [rbp + 0x30]
mov rax, rbx
inc rax
cmp byte [rcx + rax], 0
jne 0x14001d263
mov qword [rsp + 0x58], rax
xor r8d, r8d
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x10]
call fcn.140001c10
mov r14d, 0x3c
lea rcx, [rbp + 0x10]
cmp qword [rbp + 0x28], 7
cmova rcx, qword [rbp + 0x10]
mov r9d, 0xffffffff
lea r8d, [r14 - 0x39]
lea rdx, [rbp + 0x50]
call fcn.140039948
mov edx, eax
test eax, eax
jne 0x14001d2fa
mov eax, dword [rbp + 0x60]
test al, 1
mov ecx, 0x1ff
mov r8d, 0x16d
cmovne ecx, r8d
mov dword [rsp + 0x54], ecx
bt eax, 0xa
jae 0x14001d2ec
mov ecx, dword [rbp + 0x64]
cmp ecx, 0xa000000c
jne 0x14001d2dd
lea eax, [rdx + 4]
jmp 0x14001d31b
cmp ecx, 0xa0000003
jne 0x14001d2ec
mov eax, 0xa
jmp 0x14001d31b
movzx eax, al
and eax, 0x10
or eax, 0x20
shr eax, 4
jmp 0x14001d31b
mov dword [rsp + 0x54], 0xffff
sub eax, 2
je 0x14001d318
sub eax, 1
je 0x14001d318
sub eax, 0x32
je 0x14001d318
cmp eax, 0x46
mov eax, edi
jne 0x14001d31b
mov eax, r15d
mov dword [rsp + 0x50], edx
lea rcx, [0x1401fec18]
mov qword [rsp + 0x58], rcx
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
test eax, eax
je 0x14001d547
cmp eax, 1
setne sil
lea rcx, [rbp + 0x10]
call fcn.14000f960
test sil, sil
je 0x14001d92b
lea rax, [rbp + 0x10]
mov qword [rbp + 8], rax
movsd xmm0, qword [0x14003f4a0]
movsd qword [rsp + 0x30], xmm0
movzx eax, byte [0x14003f4a8]
mov byte [rsp + 0x30], 0x75
xor byte [rsp + 0x31], 0x32
xor byte [rsp + 0x32], 0x33
xor byte [rsp + 0x33], 0x34
xor byte [rsp + 0x34], 0x35
xor byte [rsp + 0x35], 0x36
xor byte [rsp + 0x36], 0x37
xor byte [rsp + 0x37], 0x38
xor al, 0x39
mov byte [rsp + 0x38], al
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], rdi
lea rax, [rsp + 0x30]
mov r8, rbx
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x14001d3c0
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x10]
call fcn.1400019d0
nop
movups xmm0, xmmword [0x14003f488]
movups xmmword [rsp + 0x50], xmm0
movsd xmm0, qword [0x14003f498]
movsd qword [rsp + 0x60], xmm0
cmp byte [0x14003f49f], 0
je 0x14001d593
cmp r12d, 2
jl 0x14001d557
movdqa xmm5, xmmword [0x140040b80]
mov edx, edi
movdqa xmm4, xmmword [0x140040c40]
movdqa xmm6, xmmword [0x140040ba0]
movdqa xmm0, xmmword [str.1111111111111111]
movdqa xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x54]
mov r8d, dword [rsp + 0x40]
nop dword [rax]
movd xmm2, edx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, 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
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [rdx + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
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
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add edx, 8
lea rcx, [rcx + 8]
cmp edx, 0x18
jl 0x14001d440
jmp 0x14001d593
xor sil, sil
test edx, edx
jne 0x14001e4bc
jmp 0x14001d345
lea r9, [rsp + 0x50]
mov r8d, edi
nop
mov eax, 0x8fb823ef
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x39
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x18
jl 0x14001d560
xorps xmm0, xmm0
movups xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], rdi
mov qword [rbp + 0x88], rdi
lea rax, [rsp + 0x50]
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x14001d5b0
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x70]
call fcn.1400019d0
nop
lea r8, [rbp + 0x10]
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x50]
call fcn.14000d620
nop
lea rax, [rsp + 0x70]
mov qword [rbp + 8], rax
movsd xmm0, qword [0x14003f4c8]
movsd qword [rsp + 0x30], xmm0
movzx eax, byte [0x14003f4d0]
mov byte [rsp + 0x30], WSAStartup
xor byte [rsp + 0x31], 0x32
xor byte [rsp + 0x32], 0x33
xor byte [rsp + 0x33], 0x34
xor byte [rsp + 0x34], 0x35
xor byte [rsp + 0x35], 0x36
xor byte [rsp + 0x36], 0x37
xor byte [rsp + 0x37], 0x38
xor al, 0x39
mov byte [rsp + 0x38], al
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x78], rdi
lea rax, [rsp + 0x30]
mov r8, rbx
nop
inc r8
cmp byte [rax + r8], 0
jne 0x14001d640
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
call fcn.1400019d0
nop
movups xmm0, xmmword [0x14003f4b0]
movups xmmword [rsp + 0x50], xmm0
movsd xmm0, qword [0x14003f4c0]
movsd qword [rsp + 0x60], xmm0
cmp byte [0x14003f4c7], 0
je 0x14001d803
cmp r12d, 2
jl 0x14001d7c7
movdqa xmm5, xmmword [0x140040b80]
mov edx, edi
movdqa xmm4, xmmword [0x140040c40]
movdqa xmm6, xmmword [0x140040ba0]
movdqa xmm0, xmmword [str.1111111111111111]
movdqa xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x54]
mov r8d, dword [rsp + 0x40]
nop dword [rax]
movd xmm2, edx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, 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
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [rdx + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
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
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add edx, 8
lea rcx, [rcx + 8]
cmp edx, 0x18
jl 0x14001d6c0
jmp 0x14001d803
lea r9, [rsp + 0x50]
mov r8d, edi
nop
mov eax, 0x8fb823ef
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x39
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x18
jl 0x14001d7d0
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x48], rdi
lea rax, [rsp + 0x50]
inc rbx
cmp byte [rax + rbx], 0
jne 0x14001d817
mov r8, rbx
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x30]
call fcn.1400019d0
nop
lea r8, [rsp + 0x70]
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x90]
call fcn.14000d620
nop
lea rax, [rbp + 0x10]
mov qword [rbp + 8], rax
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x10]
call fcn.14000ab00
mov rbx, rax
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x70]
call fcn.14000ab00
nop
mov rdx, rbx
mov rcx, rax
call fcn.140030aa0
test al, al
jne 0x14001e50f
lea rcx, str.C:WindowsIME_rev.json
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll_remove]
nop
mov rdx, qword [rbp + 0xa8]
cmp rdx, 0xf
jbe 0x14001d8d6
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001d8d1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001d8d1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140039fd0
movdqa xmm0, xmmword [0x140040b70]
movdqu xmmword [rbp + 0xa0], xmm0
mov byte [rbp + 0x90], 0
mov rdx, qword [rbp + 0x68]
cmp rdx, 0xf
jbe 0x14001d92b
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001d926
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001d926
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140039fd0
cmp byte [0x1401fec00], 1
jne 0x14001da57
call fcn.1400342e0
cmp al, 1
jne 0x14001da57
call fcn.1400342d0
test al, al
jne 0x14001da57
mov eax, dword [str.TU4dAVF_WZ_]
mov dword [rsp + 0x40], eax
cmp byte [0x14003f4d7], 0
je 0x14001da33
cmp r12d, 2
jl 0x14001d9f5
movdqa xmm3, xmmword [0x140040b80]
movdqa xmm2, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x140040c40]
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x140040c40]
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm3
psrad xmm2, 5
movdqa xmm0, xmm2
psrld xmm0, 0x1f
paddd xmm0, xmm2
pmulld xmm0, xmmword [0x140040ba0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.1111111111111111]
movd xmm0, eax
xorps xmm2, xmm0
movd dword [rsp + 0x40], xmm2
jmp 0x14001da33
lea r9, [rsp + 0x40]
mov r8d, edi
nop dword [rax]
mov eax, 0x8fb823ef
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x39
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 4
jl 0x14001da00
lea rcx, [rbp + 0x50]
call fcn.1400378a0
mov r14d, 0x3d
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.140001890
test al, al
je 0x14001da57
mov bl, 1
jmp 0x14001da5f
xor bl, bl
test r14b, 1
je 0x14001daa1
and r14d, 0xfffffffe
mov rdx, qword [rbp + 0x68]
cmp rdx, 0xf
jbe 0x14001daa1
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001da9c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001da9c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140039fd0
test bl, bl
je 0x14001e47c
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
movdqa xmm1, xmmword [0x140040b70]
movdqu xmmword [rbp + 0x20], xmm1
mov byte [rbp + 0x10], 0
movups xmmword [rbp + 0x70], xmm0
movdqu xmmword [rbp + 0x80], xmm1
mov byte [rbp + 0x70], 0
movsd xmm0, qword [0x14003f4d8]
movsd qword [rsp + 0x30], xmm0
movzx edx, word [0x14003f4e0]
mov word [rsp + 0x38], dx
movzx eax, byte [0x14003f4e2]
mov byte [rsp + 0x30], 0x55
xor byte [rsp + 0x31], 0x32
xor byte [rsp + 0x32], 0x33
xor byte [rsp + 0x33], 0x34
xor byte [rsp + 0x34], 0x35
xor byte [rsp + 0x35], 0x36
xor byte [rsp + 0x36], 0x37
xor byte [rsp + 0x37], 0x38
xor dl, 0x39
mov byte [rsp + 0x38], dl
xor byte [rsp + 0x39], 0x3a
xor al, 0x3b
mov byte [rsp + 0x3a], al
lea rdx, [rsp + 0x30]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140001630
lea rdx, [rbp + 0x10]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call fcn.1400013e0
movsd xmm0, qword [str.aS_GBYE_]
movsd qword [rsp + 0x30], xmm0
movzx ecx, word [0x14003f4f0]
mov word [rsp + 0x38], cx
movzx eax, byte [0x14003f4f2]
mov byte [rsp + 0x30], 0x50
xor byte [rsp + 0x31], 0x32
xor byte [rsp + 0x32], 0x33
xor byte [rsp + 0x33], 0x34
xor byte [rsp + 0x34], 0x35
xor byte [rsp + 0x35], 0x36
xor byte [rsp + 0x36], 0x37
xor byte [rsp + 0x37], 0x38
xor cl, 0x39
mov byte [rsp + 0x38], cl
xor byte [rsp + 0x39], 0x3a
xor al, 0x3b
mov byte [rsp + 0x3a], al
lea rdx, [rsp + 0x30]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140001630
lea rdx, [rbp + 0x70]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call fcn.1400013e0
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov esi, dword [rcx + r10 + 0x88]
add rsi, r10
cmp rsi, r10
je 0x14001dc56
mov r9d, dword [rsi + 0x18]
test r9d, r9d
je 0x14001dc56
mov ebx, dword [rsi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [r10 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r10
mov r8d, 0x879bc378
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x14001dc51
nop dword [rax]
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x14001dc30
cmp r8d, 0x9a523379
je 0x14001dc5b
test r9d, r9d
jne 0x14001dc10
mov rax, qword [rax]
jmp 0x14001dbe0
mov ecx, dword [rsi + 0x1c]
add rcx, r10
mov eax, dword [rsi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r11d, dword [rcx + rax*4]
add r11, r10
mov eax, dword [str.R_43]
mov dword [rbp + 8], eax
cmp byte [0x14003f4f7], 0
je 0x14001dd53
cmp r12d, 2
jl 0x14001dd14
movdqa xmm3, xmmword [0x140040b80]
movdqa xmm2, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x140040c40]
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x140040c40]
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm3
psrad xmm2, 5
movdqa xmm0, xmm2
psrld xmm0, 0x1f
paddd xmm0, xmm2
pmulld xmm0, xmmword [0x140040ba0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.1111111111111111]
movd xmm0, eax
xorps xmm2, xmm0
movd dword [rbp + 8], xmm2
jmp 0x14001dd53
lea r9, [rbp + 8]
mov r8d, edi
nop dword [rax + rax]
mov eax, 0x8fb823ef
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x39
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 4
jl 0x14001dd20
lea rcx, [rbp + 8]
call r11
lea rax, [rbp + 0x90]
mov qword [rbp + 8], rax
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x90]
call fcn.14000ab00
mov rbx, rax
lea rdx, [rbp + 0x10]
lea rcx, [rsp + 0x70]
call fcn.14000ab00
nop
mov rdx, rbx
mov rcx, rax
call fcn.140030aa0
test al, al
je 0x14001e105
call fcn.1400342e0
test al, al
jne 0x14001ddf1
call fcn.1400342d0
test al, al
je 0x14001ddf1
movzx eax, word [0x14003f4f8]
mov word [rsp + 0x40], ax
movzx eax, byte [0x14003f4fa]
mov byte [rsp + 0x40], reloc.WS2_32.dll_WSAGetLastError
xor byte [rsp + 0x41], 0x32
xor al, 0x33
mov byte [rsp + 0x42], al
lea rcx, [rbp + 0x50]
call fcn.1400378a0
or r14d, 2
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.140001890
test al, al
je 0x14001ddf1
mov bl, 1
jmp 0x14001ddf3
xor bl, bl
test r14b, 2
je 0x14001de37
mov rdx, qword [rbp + 0x68]
cmp rdx, 0xf
jbe 0x14001de37
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001de32
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001de32
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140039fd0
test bl, bl
je 0x14001e3fc
mov r8, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [rbp - 0x68]
lea rcx, [rsp + 0x40]
call fcn.14000cf80
movzx edx, byte [rax + 0xa]
test dl, dl
je 0x14001de89
xor byte [rax], 0x31
xor byte [rax + 1], 0x32
xor byte [rax + 2], 0x33
xor byte [rax + 3], 0x34
xor byte [rax + 4], 0x35
xor byte [rax + 5], 0x36
xor byte [rax + 6], 0x37
xor byte [rax + 7], 0x38
xor byte [rax + 8], 0x39
xor byte [rax + 9], 0x3a
xor dl, 0x3b
mov byte [rax + 0xa], dl
mov rdx, rax
mov rcx, r8
call fcn.140001630
lea rax, [rbp + 0x50]
mov qword [rbp - 0x70], rax
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x50]
call fcn.14000ab00
mov r15, rax
lea rax, [rbp + 0x90]
mov qword [rbp + 8], rax
lea rdx, [rbp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000cff0
movzx ecx, byte [rax + 8]
test cl, cl
je 0x14001def2
xor byte [rax], 0x31
xor byte [rax + 1], 0x32
xor byte [rax + 2], 0x33
xor byte [rax + 3], 0x34
xor byte [rax + 4], 0x35
xor byte [rax + 5], 0x36
xor byte [rax + 6], 0x37
xor byte [rax + 7], 0x38
xor cl, 0x39
mov byte [rax + 8], cl
mov rdx, rax
lea rcx, [rbp + 0x90]
call fcn.14000ac20
mov rsi, rax
lea rax, [rbp - 0x58]
mov qword [rbp - 0x68], rax
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x58]
call fcn.14000ab00
mov r14, rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
call fcn.14000cfd0
movzx ecx, byte [rax + 8]
test cl, cl
je 0x14001df61
xor byte [rax], 0x31
xor byte [rax + 1], 0x32
xor byte [rax + 2], 0x33
xor byte [rax + 3], 0x34
xor byte [rax + 4], 0x35
xor byte [rax + 5], 0x36
xor byte [rax + 6], 0x37
xor byte [rax + 7], 0x38
xor cl, 0x39
mov byte [rax + 8], cl
mov rdx, rax
lea rcx, [rbp - 0x38]
call fcn.14000ac20
mov rbx, rax
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x40]
call fcn.14000cfb0
mov r9, rax
cmp byte [rax + 0x17], 0
je 0x14001e4d2
cmp r12d, 2
jl 0x14001e0cb
movdqa xmm5, xmmword [0x140040b80]
movdqa xmm4, xmmword [0x140040c40]
movdqa xmm6, xmmword [0x140040ba0]
movdqa xmm0, xmmword [str.1111111111111111]
movdqa xmmword [rsp + 0x40], xmm0
mov rcx, rax
mov edx, dword [rsp + 0x40]
movd xmm2, edi
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, 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
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
lea eax, [rdi + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
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
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx + 4]
xorps xmm2, xmm0
movd dword [rcx + 4], xmm2
add edi, 8
lea rcx, [rcx + 8]
cmp edi, 0x18
jge 0x14001e4d2
jmp 0x14001dfc3
mov r8, r9
nop
mov eax, 0x8fb823ef
imul edi
add edx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x39
movzx eax, dil
sub al, cl
add al, 0x31
xor byte [r8], al
inc edi
lea r8, [r8 + 1]
cmp edi, 0x18
jge 0x14001e4d2
jmp 0x14001e0d0
movsd xmm0, qword [str._vZGVYYVYOYY_]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [0x14003f550]
mov dword [rsp + 0x58], eax
movzx eax, word [0x14003f554]
mov word [rsp + 0x5c], ax
cmp byte [0x14003f555], 0
je 0x14001e28f
cmp r12d, 2
jl 0x14001e249
movdqa xmm4, xmmword [0x140040c40]
movdqa xmm2, xmmword [0x140040b80]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x140040ba0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
mov eax, dword [str.1111111111111111]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm0, dword [str._vZGVYYVYOYY_]
xorps xmm2, xmm0
movd dword [rsp + 0x50], xmm2
movdqa xmm3, xmmword [0x140040b90]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x140040ba0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140040c10]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rsp + 0x54]
xorps xmm2, xmm1
movd dword [rsp + 0x54], xmm2
mov edi, 8
movsxd rax, edi
lea r8, [rsp + 0x50]
add r8, rax
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x8fb823ef
imul edi
add edx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x39
movzx eax, dil
sub al, dl
add al, 0x31
xor byte [r8], al
inc edi
lea r8, [r8 + 1]
cmp edi, 0xe
jl 0x14001e260
lea rdx, [rsp + 0x50]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140001630
lea rcx, [rsp + 0x40]
call fcn.140019200
movabs rdx, 0x7ffffffed5fa0dff
mov rax, qword [rsp + 0x40]
cmp rax, rdx
je 0x14001e2db
mov ecx, 0xff
cmovl r15d, ecx
test r15b, r15b
jns 0x14001e2db
movabs rdi, 0x12a05f200
add rdi, rax
jmp 0x14001e2e5
movabs rdi, 0x7fffffffffffffff
movabs rsi, 0xb2f4fc0794908cf3
movabs r14, 0x311cdad160000
movabs r15, 0x112e0be826d694b3
movsd xmm6, qword [0x140040b58]
nop dword [rax + rax]
call sub.MSVCP140.dll__Query_perf_frequency
mov rbx, rax
call sub.MSVCP140.dll__Query_perf_counter
mov rcx, rax
cmp rbx, 0x989680
jne 0x14001e32f
imul rbx, rcx, 0x64
jmp 0x14001e39f
cmp rbx, 0x16e3600
jne 0x14001e383
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rbx, rdx
shr rbx, 0x3f
add rbx, rdx
add rbx, r8
jmp 0x14001e39f
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
lea rbx, [rax + rcx]
cmp rdi, rbx
je 0x14001e3fc
jl 0x14001e3fc
call sub.MSVCP140.dll__Xtime_get_ticks
imul rcx, rax, 0x64
mov rax, rdi
sub rax, rbx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
comisd xmm0, xmm6
jbe 0x14001e3c8
add rcx, r14
jmp 0x14001e3cb
add rcx, rax
mov rax, r15
imul rcx
sar rdx, 0x1a
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [rbp + 0x30], rdx
imul eax, edx, 0x3b9aca00
sub ecx, eax
mov dword [rbp + 0x38], ecx
lea rcx, [rbp + 0x30]
call sub.MSVCP140.dll__Thrd_sleep
jmp 0x14001e310
mov rdx, qword [rbp + 0x88]
cmp rdx, 0xf
jbe 0x14001e43e
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001e438
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001e438
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140039fd0
nop
mov rdx, qword [rbp + 0x28]
cmp rdx, 0xf
jbe 0x14001e47c
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001e477
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001e477
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140039fd0
xor eax, eax
mov rcx, qword [rbp + 0xb0]
xor rcx, rsp
call fcn.14003a390
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
mov ecx, r15d
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
lea r8, [rbp + 0x10]
lea rdx, [rsp + 0x50]
lea rcx, [0x14003ebb0]
call fcn.14000f6f0
nop
mov rdx, r9
lea rcx, [rbp - 0x18]
call fcn.14000ac20
nop
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rsi
mov r9b, 1
mov r8, r14
mov rdx, rbx
mov rcx, rax
call fcn.14000db00
call fcn.140014a30
nop
mov dword [rsp + 0x58], edi
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
call fcn.140014a30
nop
mov ecx, r15d
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
mov dword [rsp + 0x58], edi
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
mov ecx, r15d
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
mov dword [rsp + 0x58], edi
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3