Function at 0x180061f90
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2d8
movdqa xmmword [rsp + 0x2c0], xmm15
movdqa xmmword [rsp + 0x2b0], xmm14
movdqa xmmword [rsp + 0x2a0], xmm13
movdqa xmmword [rsp + 0x290], xmm12
movdqa xmmword [rsp + 0x280], xmm11
movdqa xmmword [rsp + 0x270], xmm10
movdqa xmmword [rsp + 0x260], xmm9
movdqa xmmword [rsp + 0x250], xmm8
movdqa xmmword [rsp + 0x240], xmm7
movaps xmmword [rsp + 0x230], xmm6
mov r14, r9
mov r15, r8
mov qword [rsp + 0x158], rdx
mov r13, rcx
mov rbx, qword [rsp + 0x340]
test r9, r9
je 0x180062162
lea rax, [r15 + r14]
xor edx, edx
movdqa xmm0, xmmword [0x18018ba80]
mov rcx, r15
jmp 0x18006204f
xor r9d, r9d
mov rdx, r9
cmp rcx, rax
je 0x180062f29
movzx r10d, byte [rcx]
test r10b, r10b
js 0x180062070
inc rcx
mov r8d, r10d
cmp r8d, 0x2e
jne 0x180062100
jmp 0x180062040
mov r8d, r10d
and r8d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp r10b, 0xdf
jbe 0x1800620c9
movzx r9d, byte [rcx + 2]
shl r11d, 6
and r9d, 0x3f
or r9d, r11d
cmp r10b, 0xf0
jb 0x1800620df
movzx r10d, byte [rcx + 3]
add rcx, 4
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and r10d, 0x3f
or r10d, r9d
or r10d, r8d
mov r8d, r10d
cmp r8d, 0x2e
jne 0x180062100
jmp 0x180062040
add rcx, 2
shl r8d, 6
or r8d, r11d
cmp r8d, 0x2e
jne 0x180062100
jmp 0x180062040
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov r8d, r9d
cmp r8d, 0x2e
je 0x180062040
nop word [rax + rax]
cmp r8d, 0x110000
je 0x180062f29
test rdx, rdx
jne 0x180062118
cmp r8d, 0x2d
je 0x180062162
mov r9d, 5
cmp rdx, 5
jae 0x180062147
movdqa xmmword [rsp + 0x70], xmm0
cmp rdx, 4
je 0x18006669b
cmp r8d, dword [rsp + rdx*4 + 0x70]
jne 0x180062147
inc rdx
mov r9, rdx
cmp rdx, 4
je 0x180062162
lea edx, [r8 - 0x7b]
cmp edx, 0xffffffe5
ja 0x180062043
add r8d, 0xffffffc6
cmp r8d, 0xfffffff6
jae 0x180062043
mov qword [rsp + 0x210], r13
mov r8, qword [rsp + 0x158]
mov eax, dword [r8 + 0x30]
movzx ecx, byte [r8 + 0x34]
add r14, r15
xorps xmm6, xmm6
movups xmmword [rsp + 0xd8], xmm6
mov byte [rsp + 0xe8], 0
mov qword [rsp + 0x70], 0
mov dword [rsp + 0x80], 0
mov word [rsp + 0x84], 0
mov byte [rsp + 0x88], 0
mov dword [rsp + 0x8c], 0
mov byte [rsp + 0x90], 0
mov dword [rsp + 0x94], 0
mov byte [rsp + 0x98], 0
mov dword [rsp + 0x9c], 0
mov byte [rsp + 0xa0], 0
mov dword [rsp + 0xa4], 0
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0xb0], r14
lea rdx, [rsp + 0x40]
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], 0
mov byte [rsp + 0xd4], cl
shl rcx, 0x20
or rcx, rax
mov qword [rsp + 0x130], rcx
mov qword [r8 + 0x10], 0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x68], rcx
movups xmmword [rsp + 0x192], xmm6
lea r12, [rsp + 0x80]
mov dword [rsp + 0xd0], eax
mov dword [rsp + 0xf0], 0
mov word [rsp + 0xf4], 0
movzx eax, word [rsp + 0x1a0]
mov word [rsp + 0x106], ax
movdqu xmm0, xmmword [rsp + 0x190]
movdqu xmmword [rsp + 0xf6], xmm0
mov dword [rsp + 0x110], 0x110000
mov byte [rsp + 0x114], 0
lea rsi, [0x1801ca4bc]
mov edi, 0xff
lea rbx, [0x1801cdf8c]
xor edx, edx
mov ecx, dword [rsp + 0xf0]
test ecx, ecx
je 0x180062320
test rdx, rdx
je 0x1800623d9
mov r9, qword [rsp + 0xf8]
mov r8, qword [rsp + 0x108]
cmp rdx, 1
jne 0x180062e4f
cmp rax, r8
jb 0x180062e99
mov qword [rsp + 0x108], 0
jmp 0x18006235f
test rdx, rdx
je 0x1800623d9
movzx r8d, word [rsp + 0xf4]
cmp rdx, 1
jne 0x180062e62
cmp r8w, 4
ja 0x18006669b
cmp rax, r8
jb 0x180062e91
test r8, r8
je 0x18006235f
mov word [rsp + 0xf4], 0
mov qword [rsp + 0x70], 0
jmp 0x1800623d9
mov r14d, ebp
mov eax, 0xdee95c4d
imul r14, rax
shr r14, 0x29
lea edx, [r14 + 0x1100]
mov rcx, r12
call fcn.180060060
imul eax, r14d, 0x24c
mov ecx, ebp
sub ecx, eax
imul eax, ecx, 0x925
shr eax, 0x10
add eax, 0x1161
movzx edx, ax
mov rcx, r12
call fcn.180060060
mov eax, ebp
shr eax, 2
imul rax, rax, 0x24924925
shr rax, 0x20
lea ecx, [rax + rax*8]
lea ecx, [rcx + rcx*2]
add ecx, eax
sub ebp, ecx
je 0x1800623d9
add ebp, 0x11a7
mov edx, ebp
mov rcx, r12
call fcn.180060060
mov rdx, qword [rsp + 0xe0]
test rdx, rdx
jne 0x180062770
movzx ecx, byte [rsp + 0xd0]
cmp cl, 2
je 0x180062c02
mov r8, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xa8]
mov r10, qword [rsp + 0xb0]
mov rax, qword [rsp + 0xb8]
movzx r11d, byte [rsp + 0xd1]
mov r13, qword [rsp + 0xc8]
test r8, r8
je 0x1800624db
cmp r8, r13
je 0x1800624cf
lea rdx, [r8 + 1]
mov qword [rsp + 0xc0], rdx
movzx edx, byte [r8]
test dl, dl
jns 0x180062a59
mov r9d, edx
and r9d, 0x1f
lea r15, [r8 + 2]
mov qword [rsp + 0xc0], r15
movzx r15d, byte [r8 + 1]
and r15d, 0x3f
cmp dl, 0xdf
jbe 0x180062d1b
lea rbp, [r8 + 3]
mov qword [rsp + 0xc0], rbp
movzx ebp, byte [r8 + 2]
shl r15d, 6
and ebp, 0x3f
or ebp, r15d
cmp dl, 0xf0
jb 0x180062d2a
lea rdx, [r8 + 4]
mov qword [rsp + 0xc0], rdx
movzx edx, byte [r8 + 3]
and r9d, 7
shl r9d, 0x12
shl ebp, 6
and edx, 0x3f
or edx, ebp
or edx, r9d
cmp edx, 0x110000
jne case.0x1800626c1.0
mov qword [rsp + 0xc0], 0
cmp r14, r10
je 0x180062bfa
lea rdx, [r14 + 1]
mov qword [rsp + 0xa8], rdx
movzx r8d, byte [r14]
test r8b, r8b
js 0x180062520
mov r14, rdx
mov edx, r8d
lea r8d, [rdx - 0x2d]
cmp r8d, 2
jae 0x1800625d0
jmp 0x180062a59
mov edx, r8d
and edx, 0x1f
lea r9, [r14 + 2]
mov qword [rsp + 0xa8], r9
movzx ebp, byte [r14 + 1]
and ebp, 0x3f
cmp r8b, 0xdf
jbe 0x180062598
lea r15, [r14 + 3]
mov qword [rsp + 0xa8], r15
movzx r9d, byte [r14 + 2]
shl ebp, 6
and r9d, 0x3f
or r9d, ebp
cmp r8b, 0xf0
jb 0x1800625af
lea r8, [r14 + 4]
mov qword [rsp + 0xa8], r8
movzx ebp, byte [r14 + 3]
and edx, 7
shl edx, 0x12
shl r9d, 6
and ebp, 0x3f
or ebp, r9d
or ebp, edx
mov r14, r8
mov edx, ebp
lea r8d, [rdx - 0x2d]
cmp r8d, 2
jae 0x1800625d0
jmp 0x180062a59
shl edx, 6
or edx, ebp
mov r14, r9
lea r8d, [rdx - 0x2d]
cmp r8d, 2
jae 0x1800625d0
jmp 0x180062a59
shl edx, 0xc
or r9d, edx
mov r14, r15
mov edx, r9d
lea r8d, [rdx - 0x2d]
cmp r8d, 2
jb 0x180062a59
nop dword [rax]
cmp edx, 0x110000
je 0x180062bfa
lea r8d, [rdx - 0x61]
cmp r8d, 0x1a
jb 0x180062a59
lea r8d, [rdx - 0x30]
cmp r8d, 0xa
jb 0x180062a59
mov r8d, 0x75a
xor ebp, ebp
mov r9d, 0x75a
jmp 0x180062618
mov r9, r8
sub r8, rbp
jbe 0x18006264d
shr r8, 1
add r8, rbp
xor r15d, r15d
cmp dword [rsi + r8*8], edx
setne r15b
cmovb r15d, edi
cmp r15b, 1
je 0x180062610
movzx ebp, r15b
cmp ebp, 0xff
jne 0x180062660
inc r8
mov rbp, r8
mov r8, r9
sub r8, rbp
ja 0x180062618
dec rbp
mov r8, rbp
cmp rbp, 0x759
ja 0x18006669b
movzx ebp, word [rsi + r8*8 + 4]
mov r9d, ebp
and r9d, 0x7fff
test bp, bp
js 0x180062687
movzx r8d, word [rsi + r8*8]
mov ebp, edx
sub bp, r8w
movzx r9d, r9w
add r9d, ebp
movzx r8d, r9w
cmp r8d, 0x1f73
jae 0x18006669b
movzx r9d, r9w
movzx ebp, byte [rbx + r9*4]
mov r8d, 0
cmp ebp, 1
je case.default.0x1800626c1
mov r8d, ebp
lea r15, [0x180066b40]
movsxd r8, dword [r15 + r8*4]
add r8, r15
jmp r8
mov ecx, dword [rsp + 0x80]
mov rax, qword [rsp + 0xd8]
test ecx, ecx
je 0x180062795
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x98]
jmp 0x1800627b0
movzx r9d, word [rsp + 0x84]
lea r8, [rsp + 0x88]
cmp r9, 5
jae 0x18006669b
cmp rax, r9
jae 0x18006669b
mov r14d, dword [r8 + rax*8 + 4]
inc rax
cmp rax, rdx
jne 0x180062890
test ecx, ecx
je 0x18006289a
mov rax, qword [rsp + 0x98]
sub rax, rdx
je 0x1800628ab
xor ecx, ecx
nop word cs:[rax + rax]
mov rdx, qword [rsp + 0xe0]
add rdx, rcx
cmp dword [rsp + 0x80], 0
je 0x180062820
mov r8, qword [rsp + 0x98]
cmp rdx, r8
jae 0x18006669b
mov r9, qword [rsp + 0x88]
jmp 0x180062844
movzx r8d, word [rsp + 0x84]
cmp r8, 5
jae 0x18006669b
lea r9, [rsp + 0x88]
cmp rdx, r8
jae 0x18006669b
cmp rcx, r8
jae 0x18006669b
movzx r8d, byte [r9 + rdx*8]
mov edx, dword [r9 + rdx*8 + 4]
mov byte [r9 + rcx*8], r8b
mov dword [r9 + rcx*8 + 4], edx
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rax, rdx
jne 0x1800627f0
mov ecx, dword [rsp + 0x80]
test ecx, ecx
jne 0x1800628af
movzx ecx, word [rsp + 0x84]
cmp rax, rcx
jae 0x1800628c1
mov word [rsp + 0x84], ax
jmp 0x1800628c1
mov qword [rsp + 0xd8], rax
jmp 0x1800628cc
movzx eax, word [rsp + 0x84]
sub rax, rdx
jne 0x1800627e3
test ecx, ecx
je 0x180062877
cmp qword [rsp + 0x98], rax
jb 0x1800628c1
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0xd8]
movups xmmword [rax], xmm6
imul eax, r14d, 0x9e3779b9
imul ecx, r14d, 0x31415926
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x1f
and eax, 0xfffffffe
lea rdx, [0x1801e387c]
movzx eax, word [rax + rdx]
add eax, r14d
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x1e
and eax, 0xfffffffc
lea rcx, [0x1801e3fb0]
mov ebp, dword [rax + rcx]
mov eax, ebp
shr eax, 8
cmp eax, r14d
mov eax, 0
cmovne ebp, eax
mov r13d, dword [rsp + 0x110]
cmp r13d, 0x110000
jne 0x180062950
test bpl, bpl
jne 0x180062db0
mov dword [rsp + 0x110], r14d
jmp 0x1800623d9
cmp byte [rsp + 0x114], 0
je 0x180062978
cmp byte [rsp + 0x115], bpl
jae 0x1800629a0
mov ecx, r13d
mov edx, r14d
call fcn.18011c0b0
cmp eax, 0x110000
je 0x1800629a9
jmp 0x180062994
mov ecx, r13d
mov edx, r14d
call fcn.18011c0b0
cmp eax, 0x110000
jne 0x180062994
test bpl, bpl
jne 0x1800629a9
jmp 0x180062e22
mov dword [rsp + 0x110], eax
jmp 0x1800623d9
test bpl, bpl
je 0x180062dfe
cmp dword [rsp + 0xf0], 0
je 0x1800629f3
mov rdx, qword [rsp + 0x108]
cmp rdx, qword [rsp + 0x100]
jne 0x1800629da
lea rcx, [rsp + 0xf8]
call fcn.180060970
mov rdx, qword [rsp + 0x108]
mov rax, qword [rsp + 0xf8]
mov dword [rax + rdx*4], r14d
inc rdx
mov qword [rsp + 0x108], rdx
jmp 0x180062a17
movzx eax, word [rsp + 0xf4]
cmp rax, 3
ja 0x180062d38
mov dword [rsp + rax*4 + 0xf8], r14d
inc eax
mov word [rsp + 0xf4], ax
mov byte [rsp + 0x114], 1
mov byte [rsp + 0x115], bpl
jmp 0x1800623d9
cmp edx, 0x110000
je 0x180062bfa
cmp byte [rsp + 0xe8], 0
je 0x180062b25
cmp edx, 0x80
jb 0x1800623d1
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x18006236a
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x1f
and r8d, 0xfffffffe
lea r9, [0x1801ef814]
movzx r8d, word [r8 + r9]
add r8d, edx
imul r8d, r8d, 0x9e3779b9
xor r8d, eax
imul r8, r8, 0xee4
shr r8, 0x1d
and r8d, 0xfffffff8
lea r9, [0x1801f15dc]
mov r14, qword [r8 + r9]
cmp edx, r14d
jne 0x180062c6c
mov rax, r14
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0x1668
jae 0x18006669b
shr r14, 0x30
movzx eax, ax
mov ecx, 0x1667
sub rcx, rax
cmp rcx, r14
jb 0x18006669b
lea rcx, [0x1801f8cfc]
lea r13, [rcx + rax*4]
test r14, r14
jne 0x180062cee
jmp 0x1800623d9
cmp edx, 0x80
jb 0x1800623d1
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x18006236a
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x1801e7258]
movzx eax, word [r8 + rax*2]
add eax, edx
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea rcx, [0x1801e8274]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
jne 0x1800623d1
mov rax, r14
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0xd4f
jae 0x18006669b
shr r14, 0x30
movzx eax, ax
mov ecx, 0xd4e
sub rcx, rax
cmp rcx, r14
jb 0x18006669b
test r14, r14
je 0x1800623d9
lea rcx, [0x1801ec2dc]
lea r15, [rcx + rax*4]
shl r14, 2
xor r13d, r13d
nop word [rax + rax]
mov edx, dword [r15 + r13]
mov rcx, r12
call fcn.180060060
add r13, 4
cmp r14, r13
jne 0x180062be0
jmp 0x1800623d9
mov byte [rsp + 0xd0], 2
cmp dword [rsp + 0x80], 0
je 0x180062c1e
mov rax, qword [rsp + 0x98]
test rax, rax
jne 0x180062c2f
jmp 0x180062dc0
movzx eax, word [rsp + 0x84]
test rax, rax
je 0x180062dc0
mov rcx, r12
call fcn.180060240
mov ecx, dword [rsp + 0x80]
test ecx, ecx
je 0x180062c57
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0xe0], rdx
jmp 0x180062777
movzx edx, word [rsp + 0x84]
mov qword [rsp + 0xe0], rdx
jmp 0x180062777
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x1801e7258]
movzx ecx, word [r8 + rcx*2]
add ecx, edx
imul ecx, ecx, 0x9e3779b9
xor ecx, eax
imul rax, rcx, 0x80d
shr rax, 0x20
lea rcx, [0x1801e8274]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
jne 0x1800623d1
mov rax, r14
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0xd4f
jae 0x18006669b
shr r14, 0x30
movzx eax, ax
mov ecx, 0xd4e
sub rcx, rax
cmp rcx, r14
jb 0x18006669b
lea rcx, [0x1801ec2dc]
lea r13, [rcx + rax*4]
test r14, r14
je 0x1800623d9
shl r14, 2
xor r15d, r15d
nop word cs:[rax + rax]
mov edx, dword [r13 + r15]
mov rcx, r12
call fcn.180060060
add r15, 4
cmp r14, r15
jne 0x180062d00
jmp 0x1800623d9
shl r9d, 6
or r9d, r15d
mov edx, r9d
jmp 0x180062a59
shl r9d, 0xc
or ebp, r9d
mov edx, ebp
jmp 0x180062a59
lea rcx, [rsp + 0x1b0]
lea rdx, [rsp + 0xf4]
mov r8d, r14d
call fcn.180180820
cmp dword [rsp + 0xf0], 0
je 0x180062d7c
cmp qword [rsp + 0x100], 0
je 0x180062d7c
mov r8, qword [rsp + 0xf8]
mov rcx, qword [0x180219958]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
movdqu xmm0, xmmword [rsp + 0x1b0]
movdqu xmm1, xmmword [rsp + 0x1c0]
lea rax, [rsp + 0xd8]
movdqu xmmword [rax + 0x28], xmm1
movdqu xmmword [rax + 0x18], xmm0
jmp 0x180062a17
mov r13d, r14d
jmp 0x180062e30
mov qword [rsp + 0x70], 2
mov qword [rsp + 0x78], 0
mov r13d, dword [rsp + 0x110]
mov edx, 2
mov eax, 0
cmp r13d, 0x110000
je 0x1800622d2
mov dword [rsp + 0x110], 0x110000
jmp 0x180062e30
mov dword [rsp + 0x110], r14d
mov byte [rsp + 0x114], 0
mov qword [rsp + 0x70], 1
mov qword [rsp + 0x78], 0
jmp 0x180062e30
mov dword [rsp + 0x110], r14d
nop word [rax + rax]
mov rcx, qword [rsp + 0x158]
mov edx, r13d
call fcn.18000c7d0
mov rdx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x78]
jmp 0x1800622d2
cmp rax, r8
jb 0x180062e7a
mov qword [rsp + 0x108], 0
jmp 0x180062ec1
cmp r8w, 5
jae 0x18006669b
lea r9, [rsp + 0xf8]
cmp rax, r8
jae 0x180062eb0
mov r13d, dword [r9 + rax*4]
inc rax
mov qword [rsp + 0x70], 2
mov qword [rsp + 0x78], rax
jmp 0x180062e30
lea r9, [rsp + 0xf8]
mov r13d, dword [r9 + rax*4]
inc rax
mov qword [rsp + 0x70], 1
mov qword [rsp + 0x78], rax
jmp 0x180062e30
xor ecx, ecx
test r8, r8
je 0x180062ec1
mov word [rsp + 0xf4], 0
mov r13d, dword [rsp + 0x110]
mov dword [rsp + 0x110], 0x110000
cmp r13d, 0x110000
jne 0x180062e30
cmp dword [rsp + 0x80], 0
je 0x180063263
cmp qword [rsp + 0x90], 0
mov rbx, qword [rsp + 0x340]
je 0x18006326b
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x180219958]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [rsp + 0xf0]
jmp 0x18006326b
mov rax, qword [rbx + 8]
mov r12, qword [rbx + 0x10]
sub rax, r12
cmp rax, r14
jb 0x18006324c
mov rcx, qword [rbx]
add rcx, r12
mov rdx, r15
mov r8, r14
call fcn.180170ea0
add r12, r14
mov qword [rbx + 0x10], r12
xor r11d, r11d
xor r15d, r15d
xor r12d, r12d
xor edx, edx
xor r8d, r8d
xor r10d, r10d
xor r9d, r9d
xor r14d, r14d
mov dword [rsp + 0x130], 0
xor edi, edi
xor ebp, ebp
xor esi, esi
mov rax, qword [rsp + 0x158]
cmp byte [rax + 0x32], 0
je 0x180063176
mov dword [rsp + 0x30], r14d
mov rax, rbx
mov rbx, qword [rbx]
mov r14, qword [rax + 0x10]
movabs rax, 0x2e0000002e
test r14, r14
mov dword [rsp + 0x28], r9d
mov dword [rsp + 0x128], edi
mov dword [rsp + 0x24], esi
mov dword [rsp + 0x150], r10d
mov dword [rsp + 0x60], r11d
je 0x1800630b5
cmp byte [rbx + r14 - 1], 0x2e
jne 0x180062fdf
dec r14
je 0x1800630b5
mov dword [rsp + 0x68], ebp
mov dword [rsp + 0x170], r8d
mov esi, edx
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], r14
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0xa8], rax
mov word [rsp + 0xb0], 1
lea rdi, [rsp + 0x70]
nop word cs:[rax + rax]
mov rcx, rdi
call fcn.18005fd20
test rax, rax
je 0x180063062
test rdx, rdx
jne 0x180063050
test rax, rax
mov edx, esi
mov r8d, dword [rsp + 0x170]
mov esi, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x68]
mov r9d, dword [rsp + 0x28]
mov r10d, dword [rsp + 0x150]
mov r11d, dword [rsp + 0x60]
movabs rax, 0x2e0000002e
je 0x1800630a7
mov bpl, 1
cmp r14, 0xfd
ja 0x18006316e
jmp 0x1800630c8
cmp r14, 0xfd
jbe 0x1800630c8
jmp 0x18006316e
xor r14d, r14d
mov bpl, 1
cmp r14, 0xfd
ja 0x18006316e
mov dword [rsp + 0x68], ebp
mov ebp, r8d
mov esi, edx
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], r14
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0xa8], rax
mov word [rsp + 0xb0], 1
lea rdi, [rsp + 0x70]
nop word cs:[rax + rax]
mov rcx, rdi
call fcn.18005fd20
test rax, rax
je 0x180063143
cmp rdx, 0x40
jb 0x180063130
test rax, rax
mov edx, esi
mov r8d, ebp
mov r10d, dword [rsp + 0x150]
mov r9d, dword [rsp + 0x28]
mov edi, dword [rsp + 0x128]
mov esi, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x68]
mov r11d, dword [rsp + 0x60]
je 0x180063171
mov dil, 1
mov r14d, dword [rsp + 0x30]
mov eax, r12d
or al, r11b
mov ecx, edx
or cl, r8b
or cl, al
mov eax, r10d
or al, r9b
or al, r14b
or al, cl
mov ebx, dword [rsp + 0x130]
mov ecx, ebx
or cl, dil
or cl, al
or cl, bpl
jne 0x1800631ad
test r15b, r15b
jne 0x1800631ad
mov al, 2
test sil, sil
je 0x1800631dc
mov byte [r13 + 1], r15b
mov byte [r13 + 2], r12b
mov byte [r13 + 3], dl
mov byte [r13 + 4], r8b
mov byte [r13 + 5], r10b
mov byte [r13 + 6], r9b
mov byte [r13 + 7], r14b
mov byte [r13 + 8], bl
mov byte [r13 + 9], dil
mov byte [r13 + 0xa], bpl
mov byte [r13 + 0xb], sil
mov eax, r11d
mov byte [r13], al
movaps xmm6, xmmword [rsp + 0x230]
movaps xmm7, xmmword [rsp + 0x240]
movaps xmm8, xmmword [rsp + 0x250]
movaps xmm9, xmmword [rsp + 0x260]
movaps xmm10, xmmword [rsp + 0x270]
movaps xmm11, xmmword [rsp + 0x280]
movaps xmm12, xmmword [rsp + 0x290]
movaps xmm13, xmmword [rsp + 0x2a0]
movaps xmm14, xmmword [rsp + 0x2b0]
movaps xmm15, xmmword [rsp + 0x2c0]
add rsp, 0x2d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
mov rdx, r12
mov r8, r14
call fcn.18017fd30
mov r12, qword [rbx + 0x10]
jmp 0x180062f3d
mov rbx, qword [rsp + 0x340]
test ecx, ecx
je 0x180063291
cmp qword [rsp + 0x100], 0
je 0x180063291
mov r8, qword [rsp + 0xf8]
mov rcx, qword [0x180219958]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
movabs r12, 0x8080808080808080
mov qword [rsp + 0x190], 8
xorps xmm6, xmm6
movups xmmword [rsp + 0x198], xmm6
mov rcx, qword [rsp + 0x158]
mov rax, qword [rcx]
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x1b0], 0
mov qword [rsp + 0x1b8], rcx
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x1c8], rcx
mov qword [rsp + 0x1d0], 0
mov qword [rsp + 0x1d8], rcx
mov qword [rsp + 0x1e0], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x1e8], rax
mov word [rsp + 0x1f0], 1
mov rax, qword [rsp + 0x130]
and rax, 0xffffffffffff00ff
mov qword [rsp + 0x148], rax
xor ebp, ebp
movdqa xmm11, xmmword [0x18018bad0]
movdqa xmm12, xmmword [0x18018b8f0]
movdqa xmm13, xmmword [0x18018bae0]
movdqa xmm14, xmmword [0x18018baf0]
movdqa xmm15, xmmword [0x18018bb00]
movdqa xmm7, xmmword [0x18018bb10]
movdqa xmm8, xmmword [0x18018bb20]
movdqa xmm9, xmmword [0x18018bb30]
movdqa xmm10, xmmword [0x18018bb40]
xor esi, esi
mov dword [rsp + 0x24], 0
jmp 0x1800633ca
movabs r8, 0x8080808080808080
test qword [rcx], r8
mov rbx, qword [rsp + 0x340]
je 0x180064964
mov byte [rsp + 0x40], 1
mov sil, 1
mov al, 1
mov dword [rsp + 0x24], eax
movabs r12, 0x8080808080808080
xor ebp, ebp
lea rcx, [rsp + 0x1b0]
call fcn.18005fd20
test rax, rax
je 0x1800650c9
mov r13, rax
mov r14, rdx
test sil, 1
je 0x180063410
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x180063402
mov rcx, rbx
call fcn.18003b3f0
mov rdx, qword [rbx + 0x10]
mov rax, qword [rbx]
mov byte [rax + rdx], 0x2e
inc rdx
mov qword [rbx + 0x10], rdx
cmp r14, 4
jb 0x180063424
cmp dword [r13], 0x2d2d6e78
je 0x1800635e6
test byte [rsp + 0x24], 1
jne 0x180063590
test r14, r14
lea r15, [0x1801df4b4]
je 0x180063588
mov rax, r13
add rax, r14
mov rcx, r13
jmp 0x180063453
cmp rcx, rax
je 0x180063588
movzx edx, byte [rcx]
test dl, dl
js 0x18006345f
inc rcx
jmp 0x1800634d2
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x1800634b4
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x1800634c4
movzx edx, byte [rcx + 3]
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
cmp edx, 0x110000
je 0x180063588
add rcx, 4
jmp 0x1800634d2
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x1800634d2
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x18006344a
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x18006350c
mov r9, r8
sub r8, r10
jbe 0x18006344a
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
mov esi, dword [r15 + r11*4 + 4]
cmp esi, edx
mov edi, 0
sbb edi, edi
or dil, 1
cmp esi, edx
movzx edi, dil
mov esi, edi
cmovae esi, ebp
cmp dword [r15 + r11*4], edx
cmova esi, edi
cmp sil, 1
je 0x180063500
movzx r10d, sil
cmp r10d, 0xff
jne 0x180063560
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x18006350c
jmp 0x18006344a
movzx edx, byte [r15 + r11*4 + 8]
cmp rdx, 0x11
ja 0x18006344a
mov r8d, 0x20003
bt r8, rdx
jae 0x18006344a
mov al, 1
mov dword [rsp + 0x24], eax
jmp 0x180063590
mov dword [rsp + 0x24], 0
mov rcx, r13
mov rdx, r14
mov r8, qword [rsp + 0x130]
lea r9, [rsp + 0x40]
call fcn.180060a30
mov rax, qword [rbx + 8]
mov r12, qword [rbx + 0x10]
sub rax, r12
cmp rax, r14
jb 0x180063da8
mov rcx, qword [rbx]
add rcx, r12
mov rdx, r13
mov r8, r14
call fcn.180170ea0
add r14, r12
mov qword [rbx + 0x10], r14
mov sil, 1
movabs r12, 0x8080808080808080
jmp 0x1800633ca
lea rcx, [r13 + 4]
add r14, 0xfffffffffffffffc
mov qword [rsp + 0x1a0], 0
lea rdx, [r13 + 0xb]
and rdx, 0xfffffffffffffff8
mov rax, rdx
sub rax, rcx
mov r8, r13
add r8, 3
mov rbp, r14
jmp 0x180063627
cmp rbp, r14
movabs r12, 0x8080808080808080
ja 0x180063748
mov r11, rbp
sub r11, rax
and r11d, 0xf
cmp rbp, rax
mov r10d, 0
mov r9, rbp
cmova r9, rax
cmovae r10, r11
mov r11, rbp
sub r11, r10
jb 0x18006669b
lea rdi, [r8 + rbp]
xor esi, esi
nop word [rax + rax]
cmp r10, rsi
je 0x180063679
inc rsi
cmp byte [rdi], 0x2d
lea rdi, [rdi - 1]
jne 0x180063660
sub rbp, rsi
jmp 0x1800636fb
mov r10, r11
cmp r11, r9
jbe 0x1800636df
mov r11, qword [r13 + r10 - 0xc]
mov rsi, r11
not rsi
movabs rdi, 0x2d2d2d2d2d2d2d2d
xor r11, rdi
movabs rdi, 0xfefefefefefefeff
add r11, rdi
and rsi, r12
test rsi, r11
jne 0x1800636df
mov rsi, qword [r13 + r10 - 4]
mov rdi, rsi
not rdi
movabs r11, 0x2d2d2d2d2d2d2d2d
xor rsi, r11
movabs r11, 0xfefefefefefefeff
add rsi, r11
and rdi, r12
lea r11, [r10 - 0x10]
test rdi, rsi
je 0x180063679
cmp r10, rbp
ja 0x18006669b
mov rbp, r10
sub rbp, 1
jb 0x180063748
cmp byte [r8 + r10], 0x2d
mov r10, rbp
jne 0x1800636eb
mov r12, rbp
inc r12
je 0x180063614
cmp r14, r12
jb 0x180063614
cmp byte [rcx + rbp], 0x2d
jne 0x180063614
test rbp, rbp
je 0x18006489e
cmp rbp, r14
ja 0x18006670f
mov rdi, r14
sub rdi, r12
jbe 0x1800648a6
cmp byte [rcx + r12], 0xbf
jg 0x1800648ac
jmp 0x18006671f
lea rsi, str.description___is_deprecated__use_Display
xor ebp, ebp
mov r12, rcx
mov rdi, r14
test rdi, rdi
je 0x180063a0a
add rdi, r12
xor eax, eax
mov qword [rsp + 0x28], rax
mov r13d, 0x48
mov dword [rsp + 0x30], 0x80
mov eax, ebp
mov dword [rsp + 0x60], ebp
xor ecx, ecx
lea r9d, [r13 + 0x1a]
inc r12
mov r10d, r13d
neg r10d
mov r11d, 1
mov r14d, 0x24
mov r15d, ecx
movzx eax, byte [r12 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jb 0x1800637bf
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x1800637c3
add al, 0x9f
mov edx, eax
cmp al, 0x1a
jb 0x1800637c3
jmp 0x1800633b0
add al, 0xea
mov edx, eax
test r11d, r11d
je 0x18006669b
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x1800633b0
mov eax, r11d
imul eax, r8d
add ecx, eax
lea eax, [r10 + r14]
cmp r14d, r9d
mov edx, 0x1a
cmovae eax, edx
cmp r14d, r13d
mov edx, 1
cmovbe eax, edx
cmp eax, r8d
ja 0x18006384a
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x1800633b0
cmp r12, rdi
je 0x1800633b0
add r14d, 0x24
imul r11d, r8d
inc r12
movzx eax, byte [r12 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x1800637aa
jmp 0x1800637bf
mov r10d, dword [rsp + 0x60]
inc r10d
je 0x18006669b
mov eax, ecx
sub eax, r15d
test r15d, r15d
mov r8d, 2
mov edx, 0x2bc
cmove r8d, edx
xor r13d, r13d
xor edx, edx
div r8d
mov r8d, eax
xor edx, edx
div r10d
add eax, r8d
cmp eax, 0x1c8
mov r9d, 0xd41d41d5
jb 0x1800638bc
xor r13d, r13d
mov edx, eax
imul rdx, r9
shr rdx, 0x20
mov r8d, eax
sub r8d, edx
shr r8d, 1
add r8d, edx
shr r8d, 5
add r13d, 0x24
cmp eax, 0x3e57
mov eax, r8d
ja 0x180063892
jmp 0x1800638bf
mov r8d, eax
lea eax, [r8*4]
lea eax, [rax + rax*8]
add r8d, 0x26
xor edx, edx
div r8w
mov r14d, eax
mov eax, ecx
xor edx, edx
mov dword [rsp + 0x60], r10d
div r10d
add dword [rsp + 0x30], eax
jb 0x1800633b0
mov eax, ecx
xor edx, edx
div dword [rsp + 0x60]
mov eax, dword [rsp + 0x30]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x1800633b0
cmp dword [rsp + 0x30], 0x110000
je 0x1800633b0
mov r15d, edx
mov r8, qword [rsp + 0x190]
mov ebx, edx
cmp qword [rsp + 0x28], 0
je 0x180063959
mov rax, qword [rsp + 0x28]
shl rax, 4
xor ecx, ecx
jmp 0x180063947
add rcx, 0x10
cmp rax, rcx
je 0x180063959
mov rdx, qword [r8 + rcx]
cmp rdx, rbx
jb 0x18006393e
inc rdx
mov qword [r8 + rcx], rdx
jmp 0x18006393e
mov rdx, qword [rsp + 0x28]
cmp rdx, qword [rsp + 0x198]
jne 0x180063985
lea rcx, [rsp + 0x190]
call fcn.180072cc0
mov r8, qword [rsp + 0x190]
mov rdx, qword [rsp + 0x1a0]
movzx eax, r14w
add r13d, eax
mov rax, rdx
shl rax, 4
mov qword [r8 + rax], rbx
mov ecx, dword [rsp + 0x30]
mov dword [r8 + rax + 8], ecx
lea rcx, [rdx + 1]
mov rax, rcx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x1a0], rcx
mov ecx, r15d
inc ecx
cmp r12, rdi
mov rbx, qword [rsp + 0x340]
jne 0x180063780
mov qword [rsp + 0x50], r8
cmp qword [rsp + 0x28], 0x15
jae 0x1800649b2
cmp qword [rsp + 0x28], 2
jb 0x1800650ba
mov r8d, 1
mov rdi, qword [rsp + 0x50]
mov rcx, rdi
mov r13, qword [rsp + 0x28]
mov rdx, r13
call fcn.18005fc70
mov r10, rdi
jmp 0x1800650ad
mov r10, qword [rsp + 0x190]
xor r13d, r13d
mov r8, r13
add r8, rbp
mov rax, qword [rbx + 8]
mov rdi, qword [rbx + 0x10]
sub rax, rdi
cmp rax, r8
mov r12, r10
jb 0x1800647da
mov qword [rsp + 0x30], rdi
add rbp, rsi
xor edi, edi
xor ebx, ebx
mov qword [rsp + 0x28], r13
cmp rdi, r13
jae 0x180063ae7
test r10, r10
je 0x180063ae7
mov rax, rdi
shl rax, 4
cmp qword [r10 + rax], rbx
jne 0x180063a70
inc rdi
mov r14d, dword [r10 + rax + 8]
jmp 0x180063c1c
mov rcx, rsi
mov rsi, rbp
cmp rcx, rbp
je 0x180063a70
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x180063b7b
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xdf
jbe 0x180063b8d
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x180063b96
movzx r14d, byte [rcx + 3]
add rcx, 4
and eax, 7
shl eax, 0x12
shl edx, 6
and r14d, 0x3f
or r14d, edx
or r14d, eax
mov rsi, rcx
cmp r14d, 0x110000
je 0x180063a70
jmp 0x180063bfe
cmp rdi, r13
jb 0x180063b10
cmp rsi, rbp
je 0x180063d76
movzx r8d, byte [rsi]
test r8b, r8b
js 0x180063ba4
inc rsi
jmp 0x180063b81
mov rcx, rsi
mov rsi, rbp
cmp rcx, rbp
je 0x180063b10
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x180063b7b
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x180063b8d
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x180063b96
movzx r14d, byte [rcx + 3]
add rcx, 4
and eax, 7
shl eax, 0x12
shl edx, 6
and r14d, 0x3f
or r14d, edx
or r14d, eax
mov rsi, rcx
cmp r14d, 0x110000
je 0x180063b10
jmp 0x180063bfe
inc rcx
mov rsi, rcx
movzx r14d, r8b
inc rbx
jmp 0x180063c25
add rcx, 2
mov rsi, rcx
jmp 0x180063c13
add rcx, 3
mov rsi, rcx
shl eax, 0xc
or eax, edx
jmp 0x180063c19
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rsi + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x180063c0f
movzx edx, byte [rsi + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x180063d51
movzx r14d, byte [rsi + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and r14d, 0x3f
or r14d, edx
or r14d, eax
cmp r14d, 0x110000
je 0x180063d76
add rsi, 4
mov rcx, rsi
mov rsi, rcx
cmp r14d, 0x110000
jne 0x180063c1c
jmp 0x180063d76
add rsi, 2
shl eax, 6
or eax, r9d
mov r14d, eax
inc rbx
cmp r14d, 0x7f
ja 0x180063c62
mov r15, qword [rsp + 0x340]
mov rdx, qword [r15 + 0x10]
cmp rdx, qword [r15 + 8]
jne 0x180063c46
mov rcx, r15
call fcn.18003b3f0
mov r10, r12
mov rdx, qword [r15 + 0x10]
mov rax, qword [r15]
mov byte [rax + rdx], r14b
inc rdx
mov qword [r15 + 0x10], rdx
cmp rdi, r13
jb 0x180063a4c
jmp 0x180063ae7
mov dword [rsp + 0x70], 0
mov eax, r14d
cmp r14d, 0x800
jae 0x180063c94
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x70], al
and r14b, 0x3f
or r14b, 0x80
mov byte [rsp + 0x71], r14b
mov r14d, 2
jmp 0x180063d01
cmp r14d, 0x10000
jae 0x180063cc9
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x70], al
mov eax, r14d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x71], al
and r14b, 0x3f
or r14b, 0x80
mov byte [rsp + 0x72], r14b
mov r14d, 3
jmp 0x180063d01
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x70], al
mov eax, r14d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x71], al
mov eax, r14d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x72], al
and r14b, 0x3f
or r14b, 0x80
mov byte [rsp + 0x73], r14b
mov r14d, 4
mov rcx, qword [rsp + 0x340]
mov rax, qword [rcx + 8]
mov r13, qword [rcx + 0x10]
sub rax, r13
cmp rax, r14
jb 0x180063d5a
mov r15, qword [rsp + 0x340]
mov rcx, qword [r15]
add rcx, r13
lea rdx, [rsp + 0x70]
mov r8, r14
call fcn.180170ea0
add r13, r14
mov qword [r15 + 0x10], r13
mov r13, qword [rsp + 0x28]
mov r10, r12
cmp rdi, r13
jb 0x180063a4c
jmp 0x180063ae7
add rsi, 3
jmp 0x180063b9d
mov r15, qword [rsp + 0x340]
mov rcx, r15
mov rdx, r13
mov r8, r14
call fcn.18017fd30
mov r13, qword [r15 + 0x10]
jmp 0x180063d19
mov rbx, qword [rsp + 0x340]
mov r14, qword [rbx]
mov rdx, qword [rbx + 0x10]
mov r8, qword [rsp + 0x30]
test r8, r8
je 0x180063dbf
mov r13, rdx
sub r13, r8
mov ebp, 0
jbe 0x180063dc6
cmp byte [r14 + r8], 0xbf
jg 0x180063dcc
jmp 0x180066702
mov rcx, rbx
mov rdx, r12
mov r8, r14
call fcn.18017fd30
mov r12, qword [rbx + 0x10]
jmp 0x1800635bc
mov r13, rdx
xor ebp, ebp
jmp 0x180063dcc
jne 0x180066702
add r14, r8
test byte [rsp + 0x24], 1
movabs r12, 0x8080808080808080
jne 0x180063f3b
test r13, r13
je 0x180063f33
lea rax, [r14 + r13]
mov rcx, r14
jmp 0x180063dff
cmp rcx, rax
je 0x180063f33
movzx edx, byte [rcx]
test dl, dl
js 0x180063e0b
inc rcx
jmp 0x180063e7e
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x180063e60
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x180063e70
movzx edx, byte [rcx + 3]
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
cmp edx, 0x110000
je 0x180063f33
add rcx, 4
jmp 0x180063e7e
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x180063e7e
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x180063df6
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x180063ea9
mov r9, r8
sub r8, r10
jbe 0x180063df6
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
lea r15, [0x1801df4b4]
mov esi, dword [r15 + r11*4 + 4]
cmp esi, edx
mov edi, 0
sbb edi, edi
or dil, 1
cmp esi, edx
movzx edi, dil
mov esi, edi
cmovae esi, ebp
cmp dword [r15 + r11*4], edx
cmova esi, edi
cmp sil, 1
je 0x180063e9d
movzx r10d, sil
cmp r10d, 0xff
jne 0x180063f04
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x180063ea9
jmp 0x180063df6
lea rdx, [0x1801df4b4]
movzx edx, byte [rdx + r11*4 + 8]
cmp rdx, 0x11
ja 0x180063df6
mov r8d, 0x20003
bt r8, rdx
jae 0x180063df6
mov al, 1
mov dword [rsp + 0x24], eax
jmp 0x180063f3b
mov dword [rsp + 0x24], 0
movq xmm0, qword [rsp + 0x42]
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd eax, xmm1
or al, byte [rsp + 0x40]
or al, byte [rsp + 0x4a]
mov sil, 1
jne 0x1800633ca
cmp byte [rsp + 0x41], 0
jne 0x1800633ca
cmp byte [rsp + 0x4b], 0
jne 0x1800633ca
test r13, r13
je 0x180064881
lea rdi, [r14 + r13]
xor r8d, r8d
xor eax, eax
mov rcx, r14
movzx edx, byte [rcx]
test dl, dl
js 0x180063fb3
inc rcx
jmp 0x18006403f
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp dl, 0xe0
jb 0x180064008
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x180064018
movzx edx, byte [rcx + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and edx, 0x3f
or edx, r10d
or edx, r9d
cmp edx, 0x110000
je 0x18006465a
add rcx, 4
jmp 0x180064026
add rcx, 2
shl r9d, 6
or r9d, r11d
mov edx, r9d
jmp 0x180064026
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
cmp edx, 0x7f
jbe 0x18006403f
jmp 0x1800640cd
inc rcx
cmp edx, 0x80
jae 0x1800640ca
cmp rcx, rdi
je 0x18006465a
movzx edx, byte [rcx]
test dl, dl
jns 0x180064030
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x1800640a4
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x1800640b7
movzx edx, byte [rcx + 3]
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
cmp edx, 0x110000
je 0x18006465a
add rcx, 4
jmp 0x180064033
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x180064033
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
jmp 0x180064033
xor r8d, r8d
mov r9d, r8d
imul r8d, edx, 0x9e3779b9
imul r10d, edx, 0x31415926
xor r8d, r10d
imul r8, r8, 0x39a
shr r8, 0x1f
and r8d, 0xfffffffe
lea r11, [0x1801e387c]
movzx r8d, word [r8 + r11]
add r8d, edx
imul r8d, r8d, 0x9e3779b9
xor r8d, r10d
imul r8, r8, 0x39a
shr r8, 0x1e
and r8d, 0xfffffffc
lea r10, [0x1801e3fb0]
mov r8d, dword [r8 + r10]
mov r10d, r8d
shr r10d, 8
cmp r10d, edx
cmovne r8d, ebp
cmp r9b, r8b
jbe 0x18006413f
test r8b, r8b
jne case.0x180064321.3907
lea r9d, [rdx - 0x340]
cmp r9d, 4
ja 0x180064156
cmp r9d, 2
jne case.0x180064321.3907
cmp edx, 0xd56
jg 0x1800641bd
cmp edx, 0x9de
jg 0x180064215
cmp edx, 0x93b
jg 0x180064364
lea r9d, [rdx - 0x30f]
cmp r9d, 0x36
ja 0x180064197
movabs r10, 0x48020000001005
bt r10, r9
jb 0x1800644bb
lea r9d, [rdx - 0x374]
cmp r9d, 0x13
ja case.0x180064321.3908
mov r10d, 0x80401
bt r10d, r9d
jb case.0x180064321.3907
jmp case.0x180064321.3908
cmp edx, 0x11126
jg 0x180064293
cmp edx, 0x102d
jle 0x1800642d9
cmp edx, 0x1f70
jg 0x1800643b6
cmp edx, 0x102e
mov rbx, qword [rsp + 0x340]
movabs r12, 0x8080808080808080
mov ebp, 0
je 0x1800644bb
cmp edx, 0x1b35
je 0x1800644bb
jmp case.0x180064321.3908
cmp edx, 0xbd6
jg 0x180064324
cmp edx, 0xbbd
jg 0x18006449c
lea r9d, [rdx - 0xb3e]
cmp r9d, 0x19
mov rbx, qword [rsp + 0x340]
movabs r12, 0x8080808080808080
mov ebp, 0
ja 0x180064261
mov r10d, 0x3000001
bt r10d, r9d
jb 0x1800644bb
lea r9d, [rdx - 0xa33]
cmp r9d, 0x2b
ja 0x180064282
movabs r10, 0x80000000009
bt r10, r9
jb case.0x180064321.3907
cmp edx, 0x9df
jne case.0x180064321.3908
jmp case.0x180064321.3907
cmp edx, 0x114af
jle 0x18006438d
lea r9d, [rdx - 0x114b0]
cmp r9d, 0xd
ja 0x1800642bc
mov r10d, 0x2401
bt r10d, r9d
jb 0x1800644bb
cmp edx, 0x115af
je 0x1800644bb
cmp edx, 0x11930
je 0x1800644bb
jmp case.0x180064321.3908
lea r9d, [rdx - 0xdca]
cmp r9d, 0x15
ja 0x1800642f6
mov r10d, 0x200021
bt r10d, r9d
jb 0x1800644bb
cmp edx, 0xd57
je 0x1800644bb
lea r9d, [rdx - 0xf43]
cmp r9d, 0x76
ja case.0x180064321.3908
lea r10, [0x180066730]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xcc1
jg 0x18006442c
cmp edx, 0xbd7
mov rbx, qword [rsp + 0x340]
movabs r12, 0x8080808080808080
mov ebp, 0
je 0x1800644bb
cmp edx, 0xc56
je 0x1800644bb
jmp case.0x180064321.3908
cmp edx, 0x93c
je 0x1800644bb
cmp edx, 0x9be
je 0x1800644bb
cmp edx, 0x9d7
je 0x1800644bb
jmp case.0x180064321.3908
cmp edx, 0x11127
je 0x1800644bb
cmp edx, 0x1133e
je 0x1800644bb
cmp edx, 0x11357
je 0x1800644bb
jmp case.0x180064321.3908
cmp edx, 0xfa0f
jle 0x180064458
cmp edx, 0x110ba
mov rbx, qword [rsp + 0x340]
movabs r12, 0x8080808080808080
mov ebp, 0
je 0x1800644bb
lea r9d, [rdx - 0xfa10]
cmp r9d, 0x12
ja 0x180064402
mov r10d, 0x50005
bt r10d, r9d
jb case.0x180064321.3907
lea r9d, [rdx - 0xfb1d]
cmp r9d, 0x21
ja case.0x180064321.3908
movabs r10, 0x200000005
bt r10, r9
jb case.0x180064321.3907
jmp case.0x180064321.3908
cmp edx, 0xcc2
mov rbx, qword [rsp + 0x340]
movabs r12, 0x8080808080808080
mov ebp, 0
je 0x1800644bb
cmp edx, 0xd3e
je 0x1800644bb
jmp case.0x180064321.3908
cmp edx, 0x2125
jg 0x1800644cb
lea r9d, [rdx - 0x1f71]
cmp r9d, 0x8c
mov rbx, qword [rsp + 0x340]
movabs r12, 0x8080808080808080
mov ebp, 0
ja case.0x180064321.3908
lea r10, [0x18006690c]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xbbe
mov rbx, qword [rsp + 0x340]
movabs r12, 0x8080808080808080
mov ebp, 0
jne case.0x180064321.3908
mov al, 2
cmp rcx, rdi
jne 0x180063fa4
jmp 0x18006465a
lea r9d, [rdx - 0x2329]
cmp r9d, 2
mov rbx, qword [rsp + 0x340]
movabs r12, 0x8080808080808080
mov ebp, 0
jb case.0x180064321.3907
cmp edx, 0x2126
je case.0x180064321.3907
cmp edx, 0x2adc
je case.0x180064321.3907
movd xmm1, edx
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x18018baa0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x18018bab0]
pxor xmm3, xmm12
movdqa xmm4, xmm14
pcmpgtd xmm4, xmm3
pxor xmm2, xmm12
movdqa xmm3, xmm15
pcmpgtd xmm3, xmm2
packssdw xmm3, xmm4
pmovmskb r9d, xmm3
test r9d, r9d
jne case.0x180064321.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x18018ba90]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x18018bac0]
movdqa xmm3, xmm0
paddd xmm3, xmm11
pxor xmm3, xmm12
movdqa xmm4, xmm13
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r9d, xmm4
test r9b, r9b
jne case.0x180064321.3907
lea r9d, [rdx - 0x1d1bb]
cmp r9d, 6
jb case.0x180064321.3907
lea r9d, [rdx - 0x2f800]
cmp r9d, 0x21e
jb case.0x180064321.3907
movd r9d, xmm1
cmp r9d, 0x2000
je case.0x180064321.3907
cmp r9d, 0x212a
je case.0x180064321.3907
cmp r9d, 0xfb40
je case.0x180064321.3907
movdqa xmm1, xmm0
paddd xmm1, xmm7
paddd xmm0, xmm8
pxor xmm0, xmm12
movdqa xmm2, xmm9
pcmpgtd xmm2, xmm0
pxor xmm1, xmm12
movdqa xmm0, xmm10
pcmpgtd xmm0, xmm1
packssdw xmm2, xmm0
pmovmskb r10d, xmm2
test r10d, r10d
jne 0x1800644bb
lea r10d, [rdx - 0x11a8]
cmp r10d, 0x1b
jb 0x1800644bb
add edx, 0xffffcf67
cmp edx, 2
jb 0x1800644bb
cmp r9d, 0x330
jne 0x1800644bd
jmp 0x1800644bb
test al, al
je 0x180064881
movzx eax, al
cmp eax, 1
je case.0x180064321.3907
lea rcx, [rsp + 0xb8]
movups xmmword [rcx], xmm6
movups xmmword [rsp + 0x220], xmm6
mov qword [rsp + 0x70], 0
mov dword [rsp + 0x80], 0
mov word [rsp + 0x84], 0
mov byte [rsp + 0x88], 0
mov dword [rsp + 0x8c], 0
mov byte [rsp + 0x90], 0
mov dword [rsp + 0x94], 0
mov byte [rsp + 0x98], 0
mov dword [rsp + 0x9c], 0
mov byte [rsp + 0xa0], 0
mov dword [rsp + 0xa4], 0
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0xb0], rdi
mov byte [rsp + 0xc8], 0
mov dword [rsp + 0xd0], 0
mov word [rsp + 0xd4], 0
movzx eax, word [rsp + 0x22e]
mov word [rcx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0x21e]
movdqu xmmword [rcx + 0x1e], xmm0
mov dword [rsp + 0xf0], 0x110000
mov byte [rsp + 0xf4], 0
mov rbx, r14
cmp rbx, rdi
je 0x1800647ed
movzx ebp, byte [rbx]
test bpl, bpl
js 0x18006475e
inc rbx
jmp 0x1800647bc
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rbx + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x1800647a4
movzx ecx, byte [rbx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x1800647b1
movzx ebp, byte [rbx + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebp, 0x3f
or ebp, ecx
or ebp, eax
cmp ebp, 0x110000
je 0x1800647ed
add rbx, 4
jmp 0x1800647bc
add rbx, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x1800647bc
add rbx, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
lea rcx, [rsp + 0x70]
call fcn.180060d00
mov r15b, 1
cmp eax, 0x110000
je 0x180064803
cmp eax, ebp
je 0x180064748
jmp 0x180064803
mov rcx, rbx
mov rdx, rdi
call fcn.18017fd30
mov r10, r12
jmp 0x180063a32
lea rcx, [rsp + 0x70]
call fcn.180060d00
cmp eax, 0x110000
setne r15b
neg r15b
cmp dword [rsp + 0x80], 0
je 0x18006482f
cmp qword [rsp + 0x90], 0
je 0x18006482f
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x180219958]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [rsp + 0xd0], 0
je 0x18006485b
cmp qword [rsp + 0xe0], 0
je 0x18006485b
mov r8, qword [rsp + 0xd8]
mov rcx, qword [0x180219958]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r15b, r15b
mov rbx, qword [rsp + 0x340]
movabs r12, 0x8080808080808080
mov ebp, 0
je 0x180064881
mov byte [rsp + 0x45], 1
jmp 0x1800633ca
mov rcx, r14
mov rdx, r13
mov r8, qword [rsp + 0x148]
lea r9, [rsp + 0x40]
call fcn.180060a30
jmp 0x1800633ca
mov rsi, rcx
jmp 0x18006374f
jne 0x18006671f
add r12, rcx
cmp rbp, 8
jae 0x180063395
cmp byte [rcx + rbp - 1], 0
mov rbx, qword [rsp + 0x340]
js 0x1800633b0
mov rax, rbp
dec rax
je 0x18006495c
cmp byte [rcx + rbp - 2], 0
js 0x1800633b0
mov rax, rbp
add rax, 0xfffffffffffffffe
je 0x18006495c
cmp byte [rcx + rbp - 3], 0
js 0x1800633b0
mov rax, rbp
add rax, 0xfffffffffffffffd
je 0x18006495c
cmp byte [rcx + rbp - 4], 0
js 0x1800633b0
mov rax, rbp
add rax, 0xfffffffffffffffc
je 0x18006495c
cmp byte [rcx + rbp - 5], 0
js 0x1800633b0
mov rax, rbp
add rax, 0xfffffffffffffffb
je 0x18006495c
cmp byte [rcx + rbp - 6], 0
js 0x1800633b0
mov rax, rbp
add rax, 0xfffffffffffffffa
je 0x18006495c
cmp byte [rcx + rbp - 7], 0
js 0x1800633b0
mov rax, rbp
mov rsi, rcx
add rax, 0xfffffffffffffff9
je 0x180063757
jmp 0x1800633b0
mov rsi, rcx
jmp 0x180063757
cmp rdx, rcx
mov edx, 8
cmove rax, rdx
lea rdx, [rbp - 8]
cmp rax, rdx
jae 0x180064996
movabs r8, 0x8080808080808080
test qword [rcx + rax], r8
jne 0x1800633b0
add rax, 8
cmp rax, rdx
jb 0x180064979
mov rsi, rcx
movabs rax, 0x8080808080808080
test qword [rcx + rdx], rax
jne 0x1800633b0
jmp 0x180063757
mov rdi, rdx
mov rax, qword [0x180219958]
test rax, rax
jne 0x1800649d7
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18006669b
mov qword [0x180219958], rax
mov rcx, qword [rsp + 0x28]
lea r8, [rcx*8]
movabs rcx, 0x7ffffffffffffff0
and r8, rcx
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x58], rax
test rax, rax
je 0x18006669b
mov rax, qword [0x180219958]
test rax, rax
jne 0x180064a2c
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18006669b
mov qword [0x180219958], rax
mov r8d, 0x100
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18006669b
mov r12, rax
mov eax, 1
sub rax, rdi
mov qword [rsp + 0x180], rax
mov r10, qword [rsp + 0x50]
lea rax, [r10 + 0x20]
mov qword [rsp + 0x178], rax
lea rax, [r10 + 8]
mov qword [rsp + 0x208], rax
lea rax, [r10 - 8]
mov qword [rsp + 0x200], rax
lea rax, [r10 - 0x10]
mov qword [rsp + 0x1a8], rax
mov eax, 0x10
mov qword [rsp + 0x188], rax
xor eax, eax
xor ebx, ebx
mov r13, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x58]
jmp 0x180064ac1
mov ebx, 1
mov rax, qword [rsp + 0x160]
cmp rax, r13
jae 0x18006507f
mov r15, rax
mov r8, r13
sub r8, rax
shl rax, 4
lea rcx, [r10 + rax]
cmp r8, 2
jae 0x180064ae0
mov rdx, r13
jmp 0x180064c54
mov rdx, qword [rcx]
mov r9, qword [rcx + 0x10]
cmp r9, rdx
jae 0x180064b01
cmp r8, 2
jne 0x180064b20
lea rdx, [r15 + 2]
mov r8d, 2
jmp 0x180064bd0
cmp r8, 2
jne 0x180064b65
lea rdx, [r15 + 2]
mov r8d, 2
mov r10, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
jmp 0x180064c54
mov r10, qword [rsp + 0x180]
mov r13, r15
lea r11, [r10 + r15]
mov r10, qword [rsp + 0x178]
lea rdi, [r10 + rax]
mov r10d, 2
mov r14, r9
mov r15, r14
mov r14, qword [rdi]
cmp r14, r15
jae 0x180064bab
lea r15, [r11 + r10]
inc r15
inc r10
add rdi, 0x10
cmp r15, 2
jne 0x180064b44
jmp 0x180064ba8
mov r10, qword [rsp + 0x180]
mov r13, r15
lea r11, [r10 + r15]
mov r10, qword [rsp + 0x178]
lea rdi, [r10 + rax]
mov r10d, 2
mov r14, r9
mov r15, r14
mov r14, qword [rdi]
cmp r14, r15
jb 0x180064bab
lea r15, [r11 + r10]
inc r15
inc r10
add rdi, 0x10
cmp r15, 2
jne 0x180064b89
mov r10, r8
mov r15, r13
lea r11, [r10 + r13]
mov r8, r10
cmp r9, rdx
mov rdx, r11
mov r13, qword [rsp + 0x28]
mov r10, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
jae 0x180064c54
mov qword [rsp + 0x30], rcx
cmp rdx, r15
jb 0x18006669b
cmp rdx, r13
ja 0x18006669b
mov rcx, r15
mov r15, rdx
cmp r8, 2
jb 0x180064c3a
mov rdx, r8
shr rdx, 1
add rax, qword [rsp + 0x208]
lea r9, [rcx + r8]
shl r9, 4
add r9, qword [rsp + 0x200]
mov r10, qword [rax - 8]
mov r11d, dword [rax]
mov rdi, qword [r9 - 8]
mov r14d, dword [r9]
mov qword [rax - 8], rdi
mov dword [rax], r14d
mov qword [r9 - 8], r10
mov dword [r9], r11d
add rax, 0x10
add r9, 0xfffffffffffffff0
dec rdx
jne 0x180064c11
mov r13, qword [rsp + 0x28]
mov r10, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov rdx, r15
mov r15, rcx
mov rcx, qword [rsp + 0x30]
mov r14, rdx
sub r14, r15
jb 0x18006669b
cmp rdx, r13
ja 0x18006669b
jae 0x180064ca9
cmp r8, 0xa
jae 0x180064ca9
lea r14, [r15 + 0xa]
cmp r14, r13
cmovae r14, r13
mov qword [rsp + 0x160], r14
sub r14, r15
jb 0x18006669b
cmp r8, 2
mov eax, 1
cmovb r8, rax
mov rdx, r14
call fcn.18005fc70
mov r10, qword [rsp + 0x50]
jmp 0x180064cb1
mov qword [rsp + 0x160], rdx
cmp rbx, qword [rsp + 0x188]
jne 0x180064d41
mov qword [rsp + 0x30], r15
mov r15, r12
mov rax, qword [0x180219958]
test rax, rax
jne 0x180064ce9
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18006669b
mov qword [0x180219958], rax
mov r8, rbx
shl r8, 5
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18006669b
mov r12, rax
lea rax, [rbx + rbx]
mov qword [rsp + 0x188], rax
mov r8, rbx
shl r8, 4
mov rcx, r12
mov rdx, r15
call fcn.180170ea0
mov rcx, qword [0x180219958]
xor edx, edx
mov r8, r15
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r10, qword [rsp + 0x50]
mov r15, qword [rsp + 0x30]
mov rax, rbx
shl rax, 4
mov qword [r12 + rax], r14
mov qword [r12 + rax + 8], r15
inc rbx
mov rax, rbx
cmp rbx, 2
mov qword [rsp + 0x38], r12
jae 0x180064de9
jmp 0x180064ab0
mov r15, rcx
mov r13, r14
mov rdx, rdi
sub r12, rdx
mov rcx, r13
mov r8, r12
call fcn.180170ea0
mov rax, qword [rsp + 0x170]
add rax, r15
mov rcx, qword [rsp + 0x120]
mov qword [rcx], rax
mov rax, qword [rsp + 0x168]
mov qword [rax], rbx
mov rcx, qword [rsp + 0x138]
lea rdx, [rcx + 0x10]
mov rax, qword [rsp + 0x60]
not rax
mov r8, qword [rsp + 0x30]
add r8, rax
shl r8, 4
call fcn.180170ea0
mov rax, qword [rsp + 0x150]
cmp rax, 1
mov r13, qword [rsp + 0x28]
mov r10, qword [rsp + 0x50]
mov r12, qword [rsp + 0x38]
jbe 0x180064aab
mov rbx, rax
lea r11, [rax - 1]
mov rcx, r11
shl rcx, 4
mov rax, qword [r12 + rcx]
mov rcx, qword [r12 + rcx + 8]
add rcx, rax
cmp rcx, r13
je 0x180064e54
mov rdx, rbx
shl rdx, 4
mov r8, qword [rdx + r12 - 0x20]
cmp r8, rax
jbe 0x180064e54
cmp rbx, 3
jb 0x18006506b
lea r14, [rbx - 3]
mov rcx, r14
shl rcx, 4
mov rcx, qword [r12 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x180064e69
cmp rbx, 4
jb 0x180065075
add r8, rcx
cmp qword [rdx + r12 - 0x40], r8
jbe 0x180064e69
jmp 0x180064ab0
cmp rbx, 3
jb 0x180064e6e
lea r14, [rbx - 3]
mov rcx, r14
shl rcx, 4
mov rcx, qword [r12 + rcx]
cmp rcx, rax
jb 0x180064e72
lea r14, [rbx - 2]
cmp rbx, r14
jbe 0x18006669b
lea rax, [r14 + 1]
mov qword [rsp + 0x30], rbx
cmp rbx, rax
jbe 0x18006669b
mov rcx, r14
shl rcx, 4
mov rdx, qword [r12 + rcx + 8]
shl rax, 4
mov r8, qword [r12 + rax]
mov r15, qword [r12 + rax + 8]
add r15, r8
mov rdi, r15
sub rdi, rdx
jb 0x18006669b
mov qword [rsp + 0x60], r14
cmp r15, r13
ja 0x18006669b
mov qword [rsp + 0x170], r8
mov qword [rsp + 0x150], r11
lea r8, [r12 + rcx]
mov qword [rsp + 0x138], r8
mov r8, qword [r12 + rcx]
lea rcx, [r12 + rax]
mov qword [rsp + 0x120], rcx
lea rax, [r12 + rax + 8]
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x128], rdx
mov r13, rdx
shl r13, 4
add r13, r10
mov r12, r8
shl r12, 4
lea r14, [r12 + r13]
shl r15, 4
mov rbx, rdi
sub rbx, r8
mov qword [rsp + 0x140], r8
cmp rbx, r8
jae 0x180064fb6
mov r12, rbx
shl r12, 4
mov rdi, qword [rsp + 0x58]
mov rcx, rdi
mov rdx, r14
mov r8, r12
call fcn.180170ea0
add r12, rdi
mov rcx, qword [rsp + 0x140]
test rcx, rcx
jle 0x18006503e
test rbx, rbx
jle 0x18006503e
add r15, qword [rsp + 0x1a8]
mov rbx, qword [rsp + 0x128]
mov rax, qword [r12 - 0x10]
cmp rax, qword [r14 - 0x10]
jb 0x180064f8f
add r12, 0xfffffffffffffff0
mov rax, r12
jmp 0x180064f96
add r14, 0xfffffffffffffff0
mov rax, r14
movdqu xmm0, xmmword [rax]
movdqu xmmword [r15], xmm0
cmp r14, r13
jbe 0x180064d6b
add r15, 0xfffffffffffffff0
cmp r12, rdi
ja 0x180064f7b
jmp 0x180064d6b
mov rbx, qword [rsp + 0x58]
mov rcx, rbx
mov rdx, r13
mov r8, r12
call fcn.180170ea0
add r12, rbx
mov r10, qword [rsp + 0x140]
test r10, r10
jle 0x180065046
cmp rdi, r10
mov rbx, qword [rsp + 0x128]
jle 0x18006505e
add r15, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov rdx, rdi
mov r8, rdx
mov rcx, qword [r14]
xor eax, eax
xor edx, edx
cmp rcx, qword [r8]
setb cl
setae dl
mov r9, r14
cmovae r9, r8
shl rdx, 4
add rdx, r8
movdqu xmm0, xmmword [r9]
movdqu xmmword [r13], xmm0
add r13, 0x10
cmp rdx, r12
jae 0x180065036
mov al, cl
shl rax, 4
add r14, rax
cmp r14, r15
jb 0x180064ff3
mov r15, r10
jmp 0x180064d74
mov r15, rcx
mov r13, r14
jmp 0x18006504e
mov r15, r10
mov rdi, qword [rsp + 0x58]
mov rdx, rdi
mov rbx, qword [rsp + 0x128]
jmp 0x180064d74
mov r15, r10
mov rdi, qword [rsp + 0x58]
jmp 0x180064d71
mov ebx, 2
jmp 0x180064ab0
mov ebx, 3
jmp 0x180064ab0
mov rcx, qword [0x180219958]
xor edx, edx
mov r8, r12
mov rax, qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, rdi
mov rdi, rax
call rax
mov rcx, qword [0x180219958]
xor edx, edx
mov r8, rbx
call rdi
mov r10, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x340]
jmp 0x180063a15
mov r13, qword [rsp + 0x28]
mov r10, qword [rsp + 0x50]
jmp 0x180063a15
mov rcx, qword [rbx]
mov rdx, qword [rbx + 0x10]
mov rax, rdx
mov r8, qword [rsp + 0x68]
test r8, r8
je 0x1800650f7
mov rax, rdx
sub rax, r8
jbe 0x1800650f1
cmp byte [rcx + r8], 0xbf
jg 0x1800650f7
jmp 0x180066705
jne 0x180066705
mov qword [rsp + 0x138], rdx
add rcx, r8
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0xa8], rax
mov word [rsp + 0xb0], 1
test byte [rsp + 0x24], 1
jne 0x18006517a
lea r15, [rsp + 0x70]
mov rcx, r15
call fcn.18005fd20
test rax, rax
jne 0x180065168
jmp 0x180065bb5
xor esi, esi
mov ebx, 0x62f8
lea rcx, [rsp + 0x70]
call fcn.18005fd20
test rax, rax
je 0x180065bb5
test rdx, rdx
je 0x180065181
movzx ecx, byte [rax]
test cl, cl
js 0x1800651a6
lea r9, [rax + 1]
jmp 0x180065215
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x1800651f7
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x180065207
movzx ecx, byte [rax + 3]
and r8d, 7
shl r8d, 0x12
shl r10d, 6
and ecx, 0x3f
or ecx, r10d
or ecx, r8d
cmp ecx, 0x110000
je 0x180065181
lea r9, [rax + 4]
jmp 0x180065215
lea r9, [rax + 2]
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x180065215
lea r9, [rax + 3]
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
add rdx, rax
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x180065235
mov r10, r8
sub r8, r11
jbe 0x1800652b9
shr r8, 1
add r8, r11
lea r13, [r8 + r8*2]
lea r15, [0x1801df4b4]
mov ebp, dword [r15 + r13*4 + 4]
cmp ebp, ecx
mov r14d, 0
sbb r14d, r14d
or r14b, 1
cmp ebp, ecx
movzx r14d, r14b
mov ebp, r14d
cmovae ebp, esi
cmp dword [r15 + r13*4], ecx
cmova ebp, r14d
cmp bpl, 1
je 0x180065229
movzx r11d, bpl
cmp r11d, 0xff
jne 0x180065291
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x180065235
jmp 0x1800652b9
lea rcx, [0x1801df4b4]
movzx ecx, byte [rcx + r13*4 + 8]
test rcx, rcx
je 0x180065436
cmp ecx, 0x11
je 0x180065436
cmp ecx, 9
jne 0x180065bb0
cmp r9, rdx
je 0x1800653e5
movzx ecx, byte [r9]
test cl, cl
js 0x1800652cf
inc r9
jmp 0x180065343
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [r9 + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x180065325
movzx r10d, byte [r9 + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x180065335
movzx ecx, byte [r9 + 3]
and r8d, 7
shl r8d, 0x12
shl r10d, 6
and ecx, 0x3f
or ecx, r10d
or ecx, r8d
cmp ecx, 0x110000
je 0x1800653e5
add r9, 4
jmp 0x180065343
add r9, 2
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x180065343
add r9, 3
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x180065360
mov r10, r8
sub r8, r11
jbe 0x1800652b9
shr r8, 1
add r8, r11
lea r13, [r8 + r8*2]
lea r15, [0x1801df4b4]
mov ebp, dword [r15 + r13*4 + 4]
cmp ebp, ecx
mov r14d, 0
sbb r14d, r14d
or r14b, 1
cmp ebp, ecx
movzx r14d, r14b
mov ebp, r14d
cmovae ebp, esi
cmp dword [r15 + r13*4], ecx
cmova ebp, r14d
cmp bpl, 1
je 0x180065354
movzx r11d, bpl
cmp r11d, 0xff
jne 0x1800653bf
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x180065360
jmp 0x1800652b9
lea rcx, [0x1801df4b4]
movzx ecx, byte [rcx + r13*4 + 8]
cmp rcx, 0xe
ja 0x180065bb0
bt rbx, rcx
jb 0x1800652b9
jmp 0x180065bb0
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x1800653f5
dec rdx
jmp 0x180065712
movzx r8d, byte [rdx - 2]
add rdx, 0xfffffffffffffffe
cmp r8b, 0xc0
jge 0x1800655b5
movzx r9d, byte [rdx - 1]
dec rdx
cmp r9b, 0xc0
jge 0x1800656f9
movzx r10d, byte [rdx - 1]
dec rdx
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x1800656fd
cmp r9, rdx
je 0x1800655be
xor r8d, r8d
mov dword [rsp + 0x130], 0
movzx r10d, byte [r9]
test r10b, r10b
js 0x18006545b
inc r9
jmp 0x1800654d1
mov r11d, r10d
and r11d, 0x1f
movzx r12d, byte [r9 + 1]
and r12d, 0x3f
cmp r10b, 0xdf
jbe 0x1800654b3
movzx ebp, byte [r9 + 2]
shl r12d, 6
and ebp, 0x3f
or ebp, r12d
cmp r10b, 0xf0
jb 0x1800654c3
movzx r10d, byte [r9 + 3]
and r11d, 7
shl r11d, 0x12
shl ebp, 6
and r10d, 0x3f
or r10d, ebp
or r10d, r11d
cmp r10d, 0x110000
je 0x1800655cc
add r9, 4
jmp 0x1800654d1
add r9, 2
shl r11d, 6
or r11d, r12d
mov r10d, r11d
jmp 0x1800654d1
add r9, 3
shl r11d, 0xc
or ebp, r11d
mov r10d, ebp
mov r11d, 0x5a6
xor ebp, ebp
mov r13d, 0x5a6
jmp 0x1800654f7
mov r13, r11
sub r11, rbp
movabs r12, 0x8080808080808080
jbe 0x180065bb0
shr r11, 1
add r11, rbp
lea r12, [r11 + r11*2]
lea r15, [0x1801df4b4]
mov r14d, dword [r15 + r12*4 + 4]
cmp r14d, r10d
mov ecx, 0
sbb ecx, ecx
or cl, 1
cmp r14d, r10d
movzx ecx, cl
mov r14d, ecx
cmovae r14d, esi
cmp dword [r15 + r12*4], r10d
cmova r14d, ecx
cmp r14b, 1
je 0x1800654e1
movzx ecx, r14b
cmp ecx, 0xff
jne 0x18006555e
inc r11
mov rbp, r11
mov r11, r13
sub r11, rbp
movabs r12, 0x8080808080808080
ja 0x1800654f7
jmp 0x180065bb0
lea rcx, [0x1801df4b4]
movzx r10d, byte [rcx + r12*4 + 8]
cmp r10d, 1
je 0x180065582
cmp r10d, 5
jne 0x180065587
mov cl, 1
mov dword [rsp + 0x130], ecx
jmp 0x1800655aa
mov r8d, r10d
jmp 0x1800655aa
cmp r10, 0x11
movabs r12, 0x8080808080808080
ja 0x180065bb0
mov ecx, 0x260fb
bt rcx, r10
jae 0x180065bb0
cmp r9, rdx
jne 0x18006544d
jmp 0x1800655cc
and r8d, 0x1f
jmp 0x180065708
mov dword [rsp + 0x130], 0
xor r8d, r8d
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x1800659ce
dec rdx
cmp rdx, rax
jne 0x180065a9f
cmp r9d, 0x110000
movabs r12, 0x8080808080808080
je 0x180065bb0
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
lea rcx, [0x1801df4b4]
jmp 0x18006561b
mov rdx, rax
sub rax, r10
jbe 0x180065674
shr rax, 1
add rax, r10
lea r11, [rax + rax*2]
mov ebp, dword [rcx + r11*4 + 4]
cmp ebp, r9d
mov r14d, 0
sbb r14d, r14d
or r14b, 1
cmp ebp, r9d
movzx r14d, r14b
mov ebp, r14d
cmovae ebp, esi
cmp dword [rcx + r11*4], r9d
cmova ebp, r14d
cmp bpl, 1
je 0x180065613
movzx r10d, bpl
cmp r10d, 0xff
jne 0x180065a68
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x18006561b
movabs r12, 0x8080808080808080
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x180065699
mov rdx, rax
sub rax, r10
jbe 0x180065bb0
shr rax, 1
add rax, r10
lea r11, [rax + rax*2]
lea r14, [0x1801df4b4]
mov ecx, dword [r14 + r11*4 + 4]
cmp ecx, r9d
mov ebp, 0
sbb ebp, ebp
or bpl, 1
cmp ecx, r9d
movzx ecx, bpl
mov ebp, ecx
cmovae ebp, esi
cmp dword [r14 + r11*4], r9d
cmova ebp, ecx
cmp bpl, 1
je 0x18006568d
movzx ecx, bpl
cmp ecx, 0xff
jne 0x180065a24
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x180065699
jmp 0x180065bb0
and r9d, 0xf
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp rdx, rax
je 0x18006582c
cmp ecx, 0x110000
je 0x180065181
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x180065744
mov r9, r8
sub r8, r10
jbe 0x1800658c1
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
lea r15, [0x1801df4b4]
mov ebp, dword [r15 + r11*4 + 4]
cmp ebp, ecx
mov r14d, 0
sbb r14d, r14d
or r14b, 1
cmp ebp, ecx
movzx r14d, r14b
mov ebp, r14d
cmovae ebp, esi
cmp dword [r15 + r11*4], ecx
cmova ebp, r14d
cmp bpl, 1
je 0x180065738
movzx r10d, bpl
cmp r10d, 0xff
jne 0x1800657a3
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x180065744
jmp 0x1800658c1
lea r8, [0x1801df4b4]
cmp byte [r8 + r11*4 + 8], 0xd
jne 0x1800658c1
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x1800657c6
dec rdx
jmp 0x180065712
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x1800657f6
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jge 0x180065800
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x180065808
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x180065813
add rdx, 0xfffffffffffffffd
and r9d, 0xf
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
movabs r12, 0x8080808080808080
jmp 0x180065712
cmp ecx, 0x110000
je 0x180065181
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x18006584f
mov rdx, rax
sub rax, r8
jbe 0x1800658c1
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
lea r14, [0x1801df4b4]
mov r10d, dword [r14 + r9*4 + 4]
cmp r10d, ecx
mov r11d, 0
sbb r11d, r11d
or r11b, 1
cmp r10d, ecx
movzx r11d, r11b
mov r10d, r11d
cmovae r10d, esi
cmp dword [r14 + r9*4], ecx
cmova r10d, r11d
cmp r10b, 1
je 0x180065847
movzx r8d, r10b
cmp r8d, 0xff
jne 0x1800658ae
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x18006584f
jmp 0x1800658c1
lea rax, [0x1801df4b4]
cmp byte [rax + r9*4 + 8], 0xd
je 0x180065181
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x1800658dc
mov rdx, rax
sub rax, r8
jbe 0x180065181
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
lea r14, [0x1801df4b4]
mov r10d, dword [r14 + r9*4 + 4]
cmp r10d, ecx
mov r11d, 0
sbb r11d, r11d
or r11b, 1
cmp r10d, ecx
movzx r11d, r11b
mov r10d, r11d
cmovae r10d, esi
cmp dword [r14 + r9*4], ecx
cmova r10d, r11d
cmp r10b, 1
je 0x1800658d0
movzx r8d, r10b
cmp r8d, 0xff
jne 0x18006593e
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x1800658dc
jmp 0x180065181
lea rax, [0x1801df4b4]
cmp byte [rax + r9*4 + 8], 9
je 0x180065181
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x18006596c
mov rdx, rax
sub rax, r8
jbe 0x180065bb0
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
lea r14, [0x1801df4b4]
mov r10d, dword [r14 + r9*4 + 4]
cmp r10d, ecx
mov r11d, 0
sbb r11d, r11d
or r11b, 1
cmp r10d, ecx
movzx r11d, r11b
mov r10d, r11d
cmovae r10d, esi
cmp dword [r14 + r9*4], ecx
cmova r10d, r11d
cmp r10b, 1
je 0x180065960
movzx r8d, r10b
cmp r8d, 0xff
jne 0x180065a0c
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x18006596c
jmp 0x180065bb0
movzx r10d, byte [rdx - 2]
add rdx, 0xfffffffffffffffe
cmp r10b, 0xc0
jge 0x180065a87
movzx r11d, byte [rdx - 1]
dec rdx
cmp r11b, 0xc0
jge 0x180065b9c
movzx ebp, byte [rdx - 1]
dec rdx
and ebp, 7
shl ebp, 6
and r11d, 0x3f
or r11d, ebp
jmp 0x180065ba0
lea rax, [0x1801df4b4]
cmp byte [rax + r9*4 + 8], 5
je 0x180065181
jmp 0x180065bb0
lea rax, [0x1801df4b4]
movzx eax, byte [rax + r11*4 + 8]
cmp rax, 0x11
ja 0x180065bb0
mov ecx, 0x20023
bt rcx, rax
jae 0x180065bb0
test r8b, 1
je 0x180065181
mov eax, dword [rsp + 0x130]
and al, 1
je 0x180065181
jmp 0x180065bb0
cmp byte [rcx + r11*4 + 8], 0xd
movabs r12, 0x8080808080808080
jne 0x18006567e
jmp 0x180065bb0
add rdx, 0xfffffffffffffffe
and r10d, 0x1f
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp rdx, rax
je 0x1800655e6
cmp r9d, 0x110000
movabs r12, 0x8080808080808080
je 0x180065bb0
mov r10d, 0x5a6
xor r13d, r13d
mov r11d, 0x5a6
jmp 0x180065ad3
mov r11, r10
sub r10, r13
jbe 0x180065674
shr r10, 1
add r10, r13
lea r12, [r10 + r10*2]
lea r14, [0x1801df4b4]
mov ecx, dword [r14 + r12*4 + 4]
cmp ecx, r9d
mov ebp, 0
sbb ebp, ebp
or bpl, 1
cmp ecx, r9d
movzx ecx, bpl
mov ebp, ecx
cmovae ebp, esi
cmp dword [r14 + r12*4], r9d
cmova ebp, ecx
cmp bpl, 1
je 0x180065ac7
movzx ecx, bpl
cmp ecx, 0xff
jne 0x180065b2f
inc r10
mov r13, r10
mov r10, r11
sub r10, r13
ja 0x180065ad3
jmp 0x180065674
lea rcx, [0x1801df4b4]
cmp byte [rcx + r12*4 + 8], 0xd
movabs r12, 0x8080808080808080
jne 0x18006567e
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x180065b67
dec rdx
cmp rdx, rax
jne 0x180065a9f
jmp 0x1800655e6
movzx r10d, byte [rdx - 2]
cmp r10b, 0xc0
jge 0x180065a83
movzx r11d, byte [rdx - 3]
cmp r11b, 0xc0
jge 0x180065b98
movzx ecx, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and ecx, 7
shl ecx, 6
and r11d, 0x3f
or r11d, ecx
jmp 0x180065ba0
add rdx, 0xfffffffffffffffd
and r11d, 0xf
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
jmp 0x180065a8b
mov byte [rsp + 0x42], 1
movzx eax, byte [rsp + 0x40]
mov dword [rsp + 0x60], eax
movzx eax, byte [rsp + 0x41]
mov dword [rsp + 0x188], eax
movzx eax, byte [rsp + 0x42]
mov dword [rsp + 0x180], eax
movzx eax, byte [rsp + 0x43]
movzx edx, byte [rsp + 0x44]
movzx r9d, byte [rsp + 0x45]
movzx r11d, byte [rsp + 0x46]
movzx r14d, byte [rsp + 0x47]
movzx ecx, byte [rsp + 0x48]
mov dword [rsp + 0x130], ecx
movzx edi, byte [rsp + 0x49]
movzx ebp, byte [rsp + 0x4a]
movzx ecx, byte [rsp + 0x4b]
mov dword [rsp + 0x24], ecx
cmp qword [rsp + 0x198], 0
mov rbx, qword [rsp + 0x340]
mov dword [rsp + 0x28], r11d
mov r13d, r9d
mov rsi, qword [rsp + 0x138]
je 0x180065c5c
mov r15d, edx
mov r8, qword [rsp + 0x190]
mov rcx, qword [0x180219958]
mov esi, eax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r9d, r13d
mov edx, r15d
mov eax, esi
mov rsi, qword [rbx + 0x10]
test rsi, rsi
mov dword [rsp + 0x178], eax
mov dword [rsp + 0x170], edx
je 0x180065cb8
js 0x18006669b
mov rcx, qword [0x180219958]
test rcx, rcx
jne 0x180065c96
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x180065ca9
mov rcx, rax
mov qword [0x180219958], rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov r9d, r13d
jne 0x180065cbd
mov ecx, 1
mov rdx, rsi
call fcn.18017ea70
ud2
mov eax, 1
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x1c0], rcx
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x1b0], xmm0
mov qword [rbx], rax
mov qword [rbx + 8], rsi
mov qword [rbx + 0x10], 0
mov rax, qword [rsp + 0x158]
lea rsi, [rax + 0x18]
cmp qword [rax + 0x20], 0
je 0x180065d0b
mov r8, qword [rsi]
mov rcx, qword [0x180219958]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r9d, r13d
mov rax, qword [rsp + 0x1c0]
mov qword [rsi + 0x10], rax
movdqa xmm0, xmmword [rsp + 0x1b0]
movdqu xmmword [rsi], xmm0
mov rcx, qword [rsp + 0x158]
mov rax, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x28]
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0xa8], rax
mov word [rsp + 0xb0], 1
xor eax, eax
mov qword [rsp + 0x148], rax
mov dword [rsp + 0x150], r9d
mov esi, dword [rsp + 0x24]
mov dword [rsp + 0x68], ebp
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x128], edi
jmp 0x180065dc7
xor r13d, r13d
mov qword [rbx + 0x10], r13
mov al, 1
mov qword [rsp + 0x148], rax
lea rcx, [rsp + 0x70]
call fcn.18005fd20
mov qword [rsp + 0x38], rax
test rax, rax
je 0x18006669f
mov r13, rdx
test byte [rsp + 0x148], 1
mov r11d, dword [rsp + 0x28]
je 0x180065e1a
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x180065e0c
mov rcx, rbx
call fcn.18003b3f0
mov r11d, dword [rsp + 0x28]
mov rdx, qword [rbx + 0x10]
mov rax, qword [rbx]
mov byte [rax + rdx], 0x2e
inc rdx
mov qword [rbx + 0x10], rdx
cmp r13, 8
jae 0x180065ef7
test r13, r13
je 0x180066084
mov rax, qword [rsp + 0x38]
cmp byte [rax + r13 - 1], 0
js 0x180065f46
mov rax, r13
dec rax
je 0x180066084
mov rax, qword [rsp + 0x38]
cmp byte [rax + r13 - 2], 0
js 0x180065f46
mov rax, r13
add rax, 0xfffffffffffffffe
je 0x180066084
mov rax, qword [rsp + 0x38]
cmp byte [rax + r13 - 3], 0
js 0x180065f46
mov rax, r13
add rax, 0xfffffffffffffffd
je 0x180066084
mov rax, qword [rsp + 0x38]
cmp byte [rax + r13 - 4], 0
js 0x180065f46
mov rax, r13
add rax, 0xfffffffffffffffc
je 0x180066084
mov rax, qword [rsp + 0x38]
cmp byte [rax + r13 - 5], 0
js 0x180065f46
mov rax, r13
add rax, 0xfffffffffffffffb
je 0x180066084
mov rax, qword [rsp + 0x38]
cmp byte [rax + r13 - 6], 0
js 0x180065f46
mov rax, r13
add rax, 0xfffffffffffffffa
je 0x180066084
mov rax, qword [rsp + 0x38]
cmp byte [rax + r13 - 7], 0
js 0x180065f46
mov rax, r13
add rax, 0xfffffffffffffff9
jne 0x180065f46
jmp 0x180066084
mov rax, qword [rsp + 0x38]
test qword [rax], r12
jne 0x180065f46
mov rcx, qword [rsp + 0x38]
lea rax, [rcx + 7]
and rax, 0xfffffffffffffff8
sub rax, rcx
mov ecx, 8
cmove rax, rcx
lea rcx, [r13 - 8]
cmp rax, rcx
jae 0x180065f37
mov rdx, qword [rsp + 0x38]
test qword [rdx + rax], r12
jne 0x180065f46
add rax, 8
cmp rax, rcx
jb 0x180065f23
mov rax, qword [rsp + 0x38]
test qword [rax + rcx], r12
je 0x180066084
mov rcx, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
sub rcx, rax
mov qword [rsp + 0x160], rax
cmp rcx, 3
jbe 0x180066060
mov rcx, qword [rbx]
mov dword [rcx + rax], 0x2d2d6e78
add rax, 4
mov qword [rbx + 0x10], rax
mov al, 1
mov qword [rsp + 0x148], rax
test r13, r13
je 0x180065dc7
mov rbx, qword [rsp + 0x38]
mov rax, rbx
add rax, r13
mov r13, rax
xor esi, esi
mov dword [rsp + 0x140], 0
jmp 0x180065fb4
mov ebp, dword [rsp + 0x68]
inc esi
cmp rbx, r13
je 0x1800660be
movzx edx, byte [rbx]
test dl, dl
js 0x180065fc0
inc rbx
jmp 0x180066025
mov eax, edx
and eax, 0x1f
movzx r8d, byte [rbx + 1]
and r8d, 0x3f
cmp dl, 0xdf
jbe 0x18006600c
movzx ecx, byte [rbx + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x18006601a
movzx edx, byte [rbx + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or edx, eax
cmp edx, 0x110000
je 0x1800660b7
add rbx, 4
jmp 0x180066025
add rbx, 2
shl eax, 6
or eax, r8d
mov edx, eax
jmp 0x180066025
add rbx, 3
shl eax, 0xc
or ecx, eax
mov edx, ecx
mov eax, esi
inc eax
mov dword [rsp + 0x168], eax
je 0x18006661a
cmp edx, 0x80
jae 0x180065fa5
mov rcx, qword [rsp + 0x340]
call fcn.18000c7d0
mov r11d, dword [rsp + 0x28]
inc dword [rsp + 0x140]
jmp 0x180065fa5
mov r8d, 4
mov rcx, rbx
mov rdx, qword [rsp + 0x160]
call fcn.18017fd30
mov r11d, dword [rsp + 0x28]
mov rax, qword [rbx + 0x10]
jmp 0x180065f63
mov rax, qword [rbx + 8]
mov rbp, qword [rbx + 0x10]
sub rax, rbp
cmp rax, r13
jb 0x180066684
mov rcx, qword [rbx]
add rcx, rbp
mov rdx, qword [rsp + 0x38]
mov r8, r13
call fcn.180170ea0
add r13, rbp
mov ebp, dword [rsp + 0x68]
jmp 0x180065db9
mov dword [rsp + 0x168], esi
cmp dword [rsp + 0x140], 0
mov rbx, qword [rsp + 0x340]
mov esi, dword [rsp + 0x24]
je 0x1800660fd
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x1800660ef
mov rcx, rbx
call fcn.18003b3f0
mov r11d, dword [rsp + 0x28]
mov rdx, qword [rbx + 0x10]
mov rax, qword [rbx]
mov byte [rax + rdx], 0x2d
inc rdx
mov qword [rbx + 0x10], rdx
mov ecx, dword [rsp + 0x140]
cmp ecx, dword [rsp + 0x168]
jae 0x180065dc7
mov eax, 0x80
mov edx, 0x48
mov qword [rsp + 0x138], rdx
xor r8d, r8d
mov edx, ecx
mov qword [rsp + 0x1a8], r13
mov rcx, qword [rsp + 0x38]
mov ebx, edx
jmp 0x180066144
inc rcx
cmp eax, ebp
jbe 0x1800661d9
cmp rcx, r13
je 0x18006669b
movzx ebp, byte [rcx]
test bpl, bpl
jns 0x180066139
mov edx, ebp
and edx, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp bpl, 0xdf
jbe 0x1800661a7
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp bpl, 0xf0
jb 0x1800661b5
movzx ebp, byte [rcx + 3]
and edx, 7
shl edx, 0x12
shl r9d, 6
and ebp, 0x3f
or ebp, r9d
or ebp, edx
cmp ebp, 0x110000
je 0x18006669b
add rcx, 4
jmp 0x18006613c
add rcx, 2
shl edx, 6
or edx, r10d
mov ebp, edx
jmp 0x18006613c
add rcx, 3
shl edx, 0xc
or r9d, edx
mov ebp, r9d
jmp 0x18006613c
inc rcx
cmp ebp, edx
mov r9d, edx
cmovb r9d, ebp
cmp edx, eax
cmovae ebp, r9d
cmp rcx, r13
je 0x18006626c
movzx edx, byte [rcx]
test dl, dl
jns 0x1800661c7
mov esi, r11d
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp dl, 0xdf
jbe 0x180066240
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x180066256
movzx edx, byte [rcx + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and edx, 0x3f
or edx, r10d
or edx, r9d
cmp edx, 0x110000
mov r11d, esi
je 0x18006626c
add rcx, 4
jmp 0x1800661ca
add rcx, 2
shl r9d, 6
or r9d, r11d
mov edx, r9d
mov r11d, esi
jmp 0x1800661ca
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
mov r11d, esi
jmp 0x1800661ca
mov ecx, ebx
inc ecx
je 0x18006669b
mov r9d, ebp
sub r9d, eax
mov eax, r8d
not eax
xor edx, edx
div ecx
cmp r9d, eax
ja 0x18006661a
mov edx, r9d
imul edx, ecx
add edx, r8d
mov dword [rsp + 0x120], edx
mov r10, qword [rsp + 0x38]
mov esi, dword [rsp + 0x24]
jmp 0x1800662c1
mov r9d, ebx
mov r8d, dword [rsp + 0x120]
mov esi, dword [rsp + 0x24]
cmp r10, r13
je 0x1800665eb
movzx eax, byte [r10]
test al, al
js 0x1800662ce
inc r10
jmp 0x180066332
mov ecx, eax
and ecx, 0x1f
movzx r8d, byte [r10 + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x180066319
movzx edx, byte [r10 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp al, 0xf0
jb 0x180066327
movzx eax, byte [r10 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and eax, 0x3f
or eax, edx
or eax, ecx
cmp eax, 0x110000
je 0x18006660d
add r10, 4
jmp 0x180066332
add r10, 2
shl ecx, 6
or ecx, r8d
mov eax, ecx
jmp 0x180066332
add r10, 3
shl ecx, 0xc
or edx, ecx
mov eax, edx
cmp eax, ebp
jae 0x180066343
inc dword [rsp + 0x120]
je 0x18006661a
cmp eax, ebp
jne 0x1800662a9
mov qword [rsp + 0x50], r10
mov dword [rsp + 0x58], ebx
mov r11, qword [rsp + 0x138]
lea r15d, [r11 + 0x1a]
lea ecx, [r11 - 0x24]
neg ecx
cmp r15d, 0x25
mov r9d, 0x1a
cmovb ecx, r9d
cmp r11d, 0x24
mov r10d, 1
cmovae ecx, r10d
mov eax, dword [rsp + 0x120]
mov r13d, eax
cmp eax, ecx
mov rbx, qword [rsp + 0x340]
jae 0x18006646c
mov edx, 0x61
cmp r13d, 0x1a
jb 0x1800663b6
mov edx, 0x16
cmp r13d, 0x24
jae 0x18006669b
add edx, r13d
mov rcx, rbx
call fcn.18000c7d0
mov ecx, dword [rsp + 0x58]
mov r9d, ecx
inc r9d
mov r11d, dword [rsp + 0x28]
mov edi, dword [rsp + 0x128]
mov esi, dword [rsp + 0x24]
mov eax, dword [rsp + 0x140]
je 0x18006669b
cmp ecx, eax
mov ecx, 2
mov eax, 0x2bc
cmove ecx, eax
xor r8d, r8d
mov eax, dword [rsp + 0x120]
xor edx, edx
div ecx
mov ecx, eax
xor edx, edx
div r9d
add eax, ecx
cmp eax, 0x1c8
movabs r12, 0x8080808080808080
mov r14d, dword [rsp + 0x30]
mov ebx, 0xd41d41d5
mov r13, qword [rsp + 0x1a8]
jb 0x1800665ab
xor ecx, ecx
nop word [rax + rax]
mov edx, eax
imul rdx, rbx
shr rdx, 0x20
mov r10d, eax
sub r10d, edx
shr r10d, 1
add r10d, edx
shr r10d, 5
add ecx, 0x24
cmp eax, 0x3e57
mov eax, r10d
ja 0x180066440
jmp 0x1800665b0
mov r14d, r11d
neg r14d
mov r12d, 0x48
mov r13d, dword [rsp + 0x120]
jmp 0x1800664c6
mov rax, qword [rbx]
mov byte [rax + rdx], sil
inc rdx
mov qword [rbx + 0x10], rdx
mov eax, r13d
xor edx, edx
div edi
lea ecx, [r14 + r12]
cmp r12d, r15d
cmovae ecx, r9d
cmp r12d, r11d
cmovbe ecx, r10d
add r12d, 0x24
mov r13d, eax
cmp eax, ecx
jb 0x18006639c
mov edi, ecx
sub edi, 0x24
je 0x18006669b
sub r13d, ecx
neg edi
mov eax, r13d
xor edx, edx
div edi
add edx, ecx
mov esi, 0x61
cmp edx, 0x1a
jb 0x1800664f7
mov esi, 0x16
cmp edx, 0x24
jae 0x18006669b
add esi, edx
cmp esi, 0x7f
ja 0x180066530
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x180066490
mov rcx, rbx
call fcn.18003b3f0
mov r11, qword [rsp + 0x138]
mov r10d, 1
mov r9d, 0x1a
mov rdx, qword [rbx + 0x10]
jmp 0x180066490
mov rcx, rbx
movzx ebx, si
shr ebx, 6
mov rax, qword [rcx + 8]
mov rdx, qword [rcx + 0x10]
sub rax, rdx
cmp rax, 1
jbe 0x180066576
mov r8, qword [rsp + 0x340]
mov rax, qword [r8]
and esi, 0x3f
shl esi, 8
movzx ecx, bx
mov rbx, r8
or ecx, esi
or ecx, 0x80c0
mov word [rax + rdx], cx
add rdx, 2
jmp 0x18006649a
mov r8d, 2
mov rcx, qword [rsp + 0x340]
call fcn.18017fd30
mov r11, qword [rsp + 0x138]
mov r10d, 1
mov r9d, 0x1a
mov rax, qword [rsp + 0x340]
mov rdx, qword [rax + 0x10]
jmp 0x18006654a
xor ecx, ecx
mov r10d, eax
lea eax, [r10*4]
lea eax, [rax + rax*8]
add r10d, 0x26
xor edx, edx
div r10w
movzx eax, ax
add eax, ecx
mov qword [rsp + 0x138], rax
mov dword [rsp + 0x120], r8d
mov ebx, r9d
mov r10, qword [rsp + 0x50]
cmp r10, r13
jne 0x1800662c1
inc r8d
inc ebp
mov edx, r9d
mov eax, ebp
cmp r9d, dword [rsp + 0x168]
mov rbx, qword [rsp + 0x340]
jb 0x180066130
jmp 0x18006667b
mov r9d, ebx
mov r8d, dword [rsp + 0x120]
jmp 0x1800665eb
mov rbx, qword [rsp + 0x340]
mov rax, qword [rbx + 0x10]
mov cl, 1
mov dword [rsp + 0x60], ecx
mov cl, 1
mov qword [rsp + 0x148], rcx
mov r13, qword [rsp + 0x160]
cmp rax, r13
mov esi, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x68]
jb 0x180065dc7
mov cl, 1
mov dword [rsp + 0x60], ecx
test r13, r13
je 0x180065db6
cmp rax, r13
jbe 0x180066673
mov rax, qword [rbx]
cmp byte [rax + r13], 0xbf
jg 0x180065db9
jmp 0x18006669b
je 0x180065db9
jmp 0x18006669b
mov ebp, dword [rsp + 0x68]
jmp 0x180065dc7
mov rcx, rbx
mov rdx, rbp
mov r8, r13
call fcn.18017fd30
mov rbp, qword [rbx + 0x10]
jmp 0x180066098
ud2
mov r13, qword [rsp + 0x210]
mov r11d, dword [rsp + 0x60]
mov r15d, dword [rsp + 0x188]
mov r12d, dword [rsp + 0x180]
mov edx, dword [rsp + 0x178]
mov r8d, dword [rsp + 0x170]
mov r9d, dword [rsp + 0x28]
mov r10d, dword [rsp + 0x150]
mov rax, qword [rsp + 0x158]
cmp byte [rax + 0x32], 0
jne 0x180062f8f
jmp 0x180063176
ud2
mov rcx, r14
mov r9, rdx
call fcn.18017ece0
ud2
mov rdx, r14
xor r8d, r8d
mov r9, rbp
call fcn.18017ece0
ud2
mov rdx, r14
mov r8, r12
mov r9, r14
call fcn.18017ece0
ud2