Function at 0x180012090
Capabilities:
Access peb ldr_data
Create new key via cryptacquirecontext
Encode data using xor
Hash data using fnv
Read file on windows
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x20f0]
mov eax, 0x21f0
call fcn.1800f3480
sub rsp, rax
mov rax, qword [0x180153498]
xor rax, rsp
mov qword [rbp + 0x20e0], rax
mov r12, rdx
mov r13, rcx
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x70], rdx
xor r14d, r14d
mov dword [rsp + 0x40], r14d
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x68], xmm1
mov qword [rbp - 0x58], r14
mov rcx, rdx
cmp qword [rdx + 0x18], 0x10
jb 0x1800120f5
mov rcx, qword [rdx]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
xor r8d, r8d
cmp rax, 0xffffffffffffffff
jne 0x18001218a
xorps xmm0, xmm0
movups xmmword [r13], xmm0
mov qword [r13 + 0x10], r14
mov qword [r13 + 0x18], r14
lea rdx, [0x18013a958]
mov rcx, r13
call fcn.180005fd0
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x180013251
mov rdx, qword [rbp - 0x58]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180013240
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001322f
jmp 0x180013240
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 0x18
xor edx, edx
lea rcx, [rbp - 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
mov rcx, qword gs:[0x60]
test eax, eax
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
jne 0x180012260
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180012236
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012236
mov ebx, dword [rdi + 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, 0xabfcf6cf
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012231
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 0x180012210
cmp r8d, 0xb14cf743
je 0x18001223b
test r9d, r9d
jne 0x1800121f0
mov rax, qword [rax]
jmp 0x1800121c0
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, rsi
call rdx
xor r8d, r8d
jmp 0x180012128
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x1800122d6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800122d6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [r11 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r11
mov r8d, 0x58097231
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1800122d1
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 0x1800122b0
cmp r8d, 0x18eca8b
je 0x1800122db
test r9d, r9d
jne 0x180012290
mov rax, qword [rax]
jmp 0x180012260
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
lea rax, [rbp - 0x48]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, qword [rbp - 0x40]
call r10
test eax, eax
jne 0x18001245f
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 edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x1800123a6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800123a6
mov ebx, dword [rdi + 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, 0x8e2ffb6
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1800123a1
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 0x180012380
cmp r8d, 0xe496f18e
je 0x1800123ab
test r9d, r9d
jne 0x180012360
mov rax, qword [rax]
jmp 0x180012330
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r8d, dword [rcx + rax*4]
add r8, r10
xor edx, edx
mov rcx, qword [rbp - 0x40]
call r8
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x18001245a
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x18001245a
mov ebx, dword [rdi + 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, 0x2d4b0724
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012455
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 0x180012430
cmp r8d, 0x8e4678ee
je 0x18001223b
test r9d, r9d
jne 0x180012410
mov rax, qword [rax]
jmp 0x1800123e0
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x50]
mov r8d, 0x2000
lea rdx, [rbp + 0xe0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180012587
cmp dword [rbp - 0x50], 0
jbe 0x180012587
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x180012526
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012526
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov ecx, dword [rcx + r11]
add rcx, r11
mov r8d, 0x31924705
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x180012521
nop
movsx edx, dl
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx]
lea rcx, [rcx + 1]
test dl, dl
jne 0x180012500
cmp r8d, 0x198b0377
je 0x18001252b
test r9d, r9d
jne 0x1800124e0
mov rax, qword [rax]
jmp 0x1800124b0
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
xor r9d, r9d
mov r8d, dword [rbp - 0x50]
lea rdx, [rbp + 0xe0]
mov rcx, qword [rbp - 0x48]
call r10
test eax, eax
je 0x18001262f
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x50]
mov r8d, 0x2000
lea rdx, [rbp + 0xe0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x180012486
mov dword [rbp - 0x4c], r14d
mov dword [rbp - 0x38], 4
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x18001262a
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x18001262a
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r11]
add rdx, r11
mov r8d, 0xaa43294c
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012625
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180012600
cmp r8d, 0x4bbd75bd
je 0x18001281f
test r9d, r9d
jne 0x1800125e0
mov rax, qword [rax]
jmp 0x1800125b0
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x1800126b6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800126b6
mov ebx, dword [rdi + 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, 0x3c35f632
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1800126b1
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 0x180012690
cmp r8d, 0xf224d604
je 0x1800126bb
test r9d, r9d
jne 0x180012670
mov rax, qword [rax]
jmp 0x180012640
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, qword [rbp - 0x48]
call rdx
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180012766
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012766
mov ebx, dword [rdi + 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, 0xb9cd5aca
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012761
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 0x180012740
cmp r8d, 0xe62eb60a
je 0x18001276b
test r9d, r9d
jne 0x180012720
mov rax, qword [rax]
jmp 0x1800126f0
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r8d, dword [rcx + rax*4]
add r8, r10
xor edx, edx
mov rcx, qword [rbp - 0x40]
call r8
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x18001281a
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x18001281a
mov ebx, dword [rdi + 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, 0xc45d5b97
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012815
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 0x1800127f0
cmp r8d, 0xe199beb
je 0x18001223b
test r9d, r9d
jne 0x1800127d0
mov rax, qword [rax]
jmp 0x1800127a0
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
mov dword [rsp + 0x20], r14d
lea r9, [rbp - 0x38]
lea r8, [rbp - 0x4c]
mov edx, 4
mov rcx, qword [rbp - 0x48]
call r10
test eax, eax
jne 0x180012a4f
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x1800128e6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800128e6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0x50e07cf2
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1800128e1
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x1800128c0
cmp r8d, 0x295e00c4
je 0x1800128eb
test r9d, r9d
jne 0x1800128a0
mov rax, qword [rax]
jmp 0x180012870
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, qword [rbp - 0x48]
call rdx
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180012996
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012996
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0xff3188b0
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012991
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180012970
cmp r8d, 0xe44f9ef0
je 0x18001299b
test r9d, r9d
jne 0x180012950
mov rax, qword [rax]
jmp 0x180012920
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r8d, dword [rcx + rax*4]
add r8, r10
xor edx, edx
mov rcx, qword [rbp - 0x40]
call r8
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180012a4a
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012a4a
mov ebx, dword [rdi + 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, 0x8488528a
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012a45
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 0x180012a20
cmp r8d, 0x12933470
je 0x18001223b
test r9d, r9d
jne 0x180012a00
mov rax, qword [rax]
jmp 0x1800129d0
mov r8d, dword [rbp - 0x4c]
mov r9, qword [rbp - 0x60]
mov rcx, r9
mov rdx, qword [rbp - 0x68]
sub rcx, rdx
cmp r8, rcx
jae 0x180012a70
lea rax, [rdx + r8]
mov qword [rbp - 0x60], rax
jmp 0x180012aa1
jbe 0x180012aa1
mov rax, qword [rbp - 0x58]
sub rax, rdx
cmp r8, rax
jbe 0x180012a8c
mov rdx, r8
lea rcx, [rbp - 0x68]
call fcn.180039570
jmp 0x180012aa1
sub r8, rcx
lea rbx, [r9 + r8]
xor edx, edx
mov rcx, r9
call sub.VCRUNTIME140.dll_memset
mov qword [rbp - 0x60], rbx
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x180012b36
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012b36
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [r11 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r11
mov r8d, 0xb6487586
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012b31
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 0x180012b10
cmp r8d, 0xad62eaf
je 0x180012b3b
test r9d, r9d
jne 0x180012af0
mov rax, qword [rax]
jmp 0x180012ac0
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
mov dword [rsp + 0x20], r14d
lea r9, [rbp - 0x4c]
mov r8, qword [rbp - 0x68]
mov edx, 2
mov rcx, qword [rbp - 0x48]
call r10
mov rcx, qword gs:[0x60]
test eax, eax
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
jne 0x180012d70
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180012c06
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012c06
mov ebx, dword [rdi + 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, 0x1f76056
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012c01
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 0x180012be0
cmp r8d, 0xbf8e4430
je 0x180012c0b
test r9d, r9d
jne 0x180012bc0
mov rax, qword [rax]
jmp 0x180012b90
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, qword [rbp - 0x48]
call rdx
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180012cb6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012cb6
mov ebx, dword [rdi + 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, 0x16655ec2
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012cb1
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 0x180012c90
cmp r8d, 0x11c139a2
je 0x180012cbb
test r9d, r9d
jne 0x180012c70
mov rax, qword [rax]
jmp 0x180012c40
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r8d, dword [rcx + rax*4]
add r8, r10
xor edx, edx
mov rcx, qword [rbp - 0x40]
call r8
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180012d6a
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012d6a
mov ebx, dword [rdi + 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, 0xbf0835d6
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012d65
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 0x180012d40
cmp r8d, 0x2efcce6c
je 0x18001223b
test r9d, r9d
jne 0x180012d20
mov rax, qword [rax]
jmp 0x180012cf0
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180012de6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012de6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0x618a2fb1
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012de1
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180012dc0
cmp r8d, 0x37fdeee3
je 0x180012deb
test r9d, r9d
jne 0x180012da0
mov rax, qword [rax]
jmp 0x180012d70
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, qword [rbp - 0x48]
call rdx
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180012e96
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012e96
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0xc51260d1
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012e91
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180012e70
cmp r8d, 0x562eddbb
je 0x180012e9b
test r9d, r9d
jne 0x180012e50
mov rax, qword [rax]
jmp 0x180012e20
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r8d, dword [rcx + rax*4]
add r8, r10
xor edx, edx
mov rcx, qword [rbp - 0x40]
call r8
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180012f46
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180012f46
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0x38a5387d
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180012f41
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180012f20
cmp r8d, 0x897f58fd
je 0x180012f4b
test r9d, r9d
jne 0x180012f00
mov rax, qword [rax]
jmp 0x180012ed0
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, rsi
call rdx
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
movdqa xmm1, xmmword [0x18013ca60]
movdqu xmmword [rbp - 0x20], xmm1
mov byte [rbp - 0x30], 0
mov rsi, qword [rbp - 0x68]
mov r15, qword [rbp - 0x60]
cmp rsi, r15
je 0x1800131e3
lea rbx, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov r14d, dword [rsp + 0x40]
nop dword [rax]
movzx edi, byte [rsi]
xor edx, edx
mov r8d, 0xe8
lea rcx, [rbp - 0x10]
call sub.VCRUNTIME140.dll_memset
lea rax, [0x180129f78]
mov qword [rbp - 0x10], rax
lea rcx, [rbp + 0x78]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
or r14d, 2
mov dword [rsp + 0x40], r14d
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 8]
lea rcx, [rbp - 0x10]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64__bool____ptr64]
nop
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x10], rbx
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx - 0x14], edx
lea rcx, [rbp - 8]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp - 8], rax
mov qword [rbp + 0x60], 0
mov dword [rbp + 0x68], 4
lea rdx, [0x1800529a0]
lea rcx, [rbp - 0x10]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rbx, rax
mov edx, 2
lea rcx, [rbp - 0x80]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
mov r8, qword [rax]
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call r8
mov rcx, qword [rbx]
movsxd rdx, dword [rcx + 4]
mov byte [rdx + rbx + 0x58], 0x30
mov edx, edi
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x48], 0
or r14d, 8
mov dword [rsp + 0x40], r14d
mov ecx, dword [rbp + 0x68]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x1800130cb
mov rax, qword [rbp + 0x38]
mov rbx, qword [rax]
test rbx, rbx
je 0x1800130cb
mov rax, qword [rbp + 0x18]
mov r9, qword [rax]
cmp rbx, qword [rbp + 0x60]
cmovb rbx, qword [rbp + 0x60]
jmp 0x1800130ed
test cl, 4
jne 0x180013122
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax]
test rcx, rcx
je 0x180013122
mov rax, qword [rbp + 0x10]
mov r9, qword [rax]
mov rax, qword [rbp + 0x48]
movsxd rbx, dword [rax]
add rbx, rcx
mov rax, r9
sub rbx, r9
test rax, rax
je 0x180013122
lea rcx, [rsp + 0x48]
cmp rbx, 0xf
ja 0x18001311a
mov qword [rsp + 0x58], rbx
mov r8, rbx
mov rdx, r9
call sub.VCRUNTIME140.dll_memmove
mov byte [rsp + rbx + 0x48], 0
jmp 0x180013122
mov rdx, rbx
call fcn.180005d70
and r14d, 0xfffffff7
or r14d, 4
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
lea rcx, [rbp - 0x30]
call fcn.180055b70
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x180013188
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180013182
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180013236
call fcn.1800f2190
nop
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea rbx, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx - 0x10], rbx
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx - 0x14], edx
lea rcx, [rbp - 8]
call fcn.180005c50
lea rcx, [rbp]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x78]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
inc rsi
cmp rsi, r15
jne 0x180012fa0
mov rsi, qword [rbp - 0x68]
movdqu xmm1, xmmword [rbp - 0x20]
xor r14d, r14d
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [r13], xmm0
movups xmmword [r13 + 0x10], xmm1
movdqa xmm0, xmmword [0x18013ca60]
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0x30], 0
test rsi, rsi
je 0x180013251
mov rdx, qword [rbp - 0x58]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x18001323d
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18001323d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rcx, rsi
call fcn.1800f2190
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], r14
mov rdx, qword [r12 + 0x18]
cmp rdx, 0x10
jb 0x180013289
inc rdx
mov rcx, qword [r12]
cmp rdx, 0x1000
jb 0x180013284
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800132c9
mov rcx, r8
call fcn.1800f2190
mov byte [r12], 0
mov qword [r12 + 0x18], reloc.WS2_32.dll_ntohs
mov qword [r12 + 0x10], r14
mov rax, r13
mov rcx, qword [rbp + 0x20e0]
xor rcx, rsp
call fcn.1800f2170
mov rbx, qword [rsp + 0x2240]
add rsp, 0x21f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3