Function at 0x180061f50
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 0x180062122
lea rax, [r15 + r14]
xor edx, edx
movdqa xmm0, xmmword [0x18018ca80]
mov rcx, r15
jmp 0x18006200f
xor r9d, r9d
mov rdx, r9
cmp rcx, rax
je 0x180062ee9
movzx r10d, byte [rcx]
test r10b, r10b
js 0x180062030
inc rcx
mov r8d, r10d
cmp r8d, 0x2e
jne 0x1800620c0
jmp 0x180062000
mov r8d, r10d
and r8d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp r10b, 0xdf
jbe 0x180062089
movzx r9d, byte [rcx + 2]
shl r11d, 6
and r9d, 0x3f
or r9d, r11d
cmp r10b, 0xf0
jb 0x18006209f
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 0x1800620c0
jmp 0x180062000
add rcx, 2
shl r8d, 6
or r8d, r11d
cmp r8d, 0x2e
jne 0x1800620c0
jmp 0x180062000
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov r8d, r9d
cmp r8d, 0x2e
je 0x180062000
nop word [rax + rax]
cmp r8d, 0x110000
je 0x180062ee9
test rdx, rdx
jne 0x1800620d8
cmp r8d, 0x2d
je 0x180062122
mov r9d, 5
cmp rdx, 5
jae 0x180062107
movdqa xmmword [rsp + 0x70], xmm0
cmp rdx, 4
je 0x1800665dc
cmp r8d, dword [rsp + rdx*4 + 0x70]
jne 0x180062107
inc rdx
mov r9, rdx
cmp rdx, 4
je 0x180062122
lea edx, [r8 - 0x7b]
cmp edx, 0xffffffe5
ja 0x180062003
add r8d, 0xffffffc6
cmp r8d, 0xfffffff6
jae 0x180062003
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 + 0x50]
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], 0
mov byte [rsp + 0xd4], cl
shl rcx, 0x20
or rcx, rax
mov qword [rsp + 0x120], rcx
mov qword [r8 + 0x10], 0
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x50], 0
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x118], 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, [0x1801cb42c]
mov edi, 0xff
lea rbx, [0x1801ceefc]
xor edx, edx
mov ecx, dword [rsp + 0xf0]
test ecx, ecx
je 0x1800622e0
test rdx, rdx
je 0x180062399
mov r9, qword [rsp + 0xf8]
mov r8, qword [rsp + 0x108]
cmp rdx, 1
jne 0x180062e0f
cmp rax, r8
jb 0x180062e59
mov qword [rsp + 0x108], 0
jmp 0x18006231f
test rdx, rdx
je 0x180062399
movzx r8d, word [rsp + 0xf4]
cmp rdx, 1
jne 0x180062e22
cmp r8w, 4
ja 0x1800665dc
cmp rax, r8
jb 0x180062e51
test r8, r8
je 0x18006231f
mov word [rsp + 0xf4], 0
mov qword [rsp + 0x70], 0
jmp 0x180062399
mov r14d, ebp
mov eax, 0xdee95c4d
imul r14, rax
shr r14, 0x29
lea edx, [r14 + 0x1100]
mov rcx, r12
call fcn.1800600e0
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.1800600e0
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 0x180062399
add ebp, 0x11a7
mov edx, ebp
mov rcx, r12
call fcn.1800600e0
mov rdx, qword [rsp + 0xe0]
test rdx, rdx
jne 0x180062730
movzx ecx, byte [rsp + 0xd0]
cmp cl, 2
je 0x180062bc2
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 0x18006249b
cmp r8, r13
je 0x18006248f
lea rdx, [r8 + 1]
mov qword [rsp + 0xc0], rdx
movzx edx, byte [r8]
test dl, dl
jns 0x180062a19
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 0x180062cdb
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 0x180062cea
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.0x180062681.0
mov qword [rsp + 0xc0], 0
cmp r14, r10
je 0x180062bba
lea rdx, [r14 + 1]
mov qword [rsp + 0xa8], rdx
movzx r8d, byte [r14]
test r8b, r8b
js 0x1800624e0
mov r14, rdx
mov edx, r8d
lea r8d, [rdx - 0x2d]
cmp r8d, 2
jae 0x180062590
jmp 0x180062a19
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 0x180062558
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 0x18006256f
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 0x180062590
jmp 0x180062a19
shl edx, 6
or edx, ebp
mov r14, r9
lea r8d, [rdx - 0x2d]
cmp r8d, 2
jae 0x180062590
jmp 0x180062a19
shl edx, 0xc
or r9d, edx
mov r14, r15
mov edx, r9d
lea r8d, [rdx - 0x2d]
cmp r8d, 2
jb 0x180062a19
nop dword [rax]
cmp edx, 0x110000
je 0x180062bba
lea r8d, [rdx - 0x61]
cmp r8d, 0x1a
jb 0x180062a19
lea r8d, [rdx - 0x30]
cmp r8d, 0xa
jb 0x180062a19
mov r8d, 0x75a
xor ebp, ebp
mov r9d, 0x75a
jmp 0x1800625d8
mov r9, r8
sub r8, rbp
jbe 0x18006260d
shr r8, 1
add r8, rbp
xor r15d, r15d
cmp dword [rsi + r8*8], edx
setne r15b
cmovb r15d, edi
cmp r15b, 1
je 0x1800625d0
movzx ebp, r15b
cmp ebp, 0xff
jne 0x180062620
inc r8
mov rbp, r8
mov r8, r9
sub r8, rbp
ja 0x1800625d8
dec rbp
mov r8, rbp
cmp rbp, 0x759
ja 0x1800665dc
movzx ebp, word [rsi + r8*8 + 4]
mov r9d, ebp
and r9d, 0x7fff
test bp, bp
js 0x180062647
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 0x1800665dc
movzx r9d, r9w
movzx ebp, byte [rbx + r9*4]
mov r8d, 0
cmp ebp, 1
je case.default.0x180062681
mov r8d, ebp
lea r15, [0x180066a68]
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 0x180062755
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x98]
jmp 0x180062770
movzx r9d, word [rsp + 0x84]
lea r8, [rsp + 0x88]
cmp r9, 5
jae 0x1800665dc
cmp rax, r9
jae 0x1800665dc
mov r14d, dword [r8 + rax*8 + 4]
inc rax
cmp rax, rdx
jne 0x180062850
test ecx, ecx
je 0x18006285a
mov rax, qword [rsp + 0x98]
sub rax, rdx
je 0x18006286b
xor ecx, ecx
nop word cs:[rax + rax]
mov rdx, qword [rsp + 0xe0]
add rdx, rcx
cmp dword [rsp + 0x80], 0
je 0x1800627e0
mov r8, qword [rsp + 0x98]
cmp rdx, r8
jae 0x1800665dc
mov r9, qword [rsp + 0x88]
jmp 0x180062804
movzx r8d, word [rsp + 0x84]
cmp r8, 5
jae 0x1800665dc
lea r9, [rsp + 0x88]
cmp rdx, r8
jae 0x1800665dc
cmp rcx, r8
jae 0x1800665dc
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 0x1800627b0
mov ecx, dword [rsp + 0x80]
test ecx, ecx
jne 0x18006286f
movzx ecx, word [rsp + 0x84]
cmp rax, rcx
jae 0x180062881
mov word [rsp + 0x84], ax
jmp 0x180062881
mov qword [rsp + 0xd8], rax
jmp 0x18006288c
movzx eax, word [rsp + 0x84]
sub rax, rdx
jne 0x1800627a3
test ecx, ecx
je 0x180062837
cmp qword [rsp + 0x98], rax
jb 0x180062881
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, [0x1801e47bc]
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, [0x1801e4ef0]
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 0x180062910
test bpl, bpl
jne 0x180062d70
mov dword [rsp + 0x110], r14d
jmp 0x180062399
cmp byte [rsp + 0x114], 0
je 0x180062938
cmp byte [rsp + 0x115], bpl
jae 0x180062960
mov ecx, r13d
mov edx, r14d
call fcn.18011d710
cmp eax, 0x110000
je 0x180062969
jmp 0x180062954
mov ecx, r13d
mov edx, r14d
call fcn.18011d710
cmp eax, 0x110000
jne 0x180062954
test bpl, bpl
jne 0x180062969
jmp 0x180062de2
mov dword [rsp + 0x110], eax
jmp 0x180062399
test bpl, bpl
je 0x180062dbe
cmp dword [rsp + 0xf0], 0
je 0x1800629b3
mov rdx, qword [rsp + 0x108]
cmp rdx, qword [rsp + 0x100]
jne 0x18006299a
lea rcx, [rsp + 0xf8]
call fcn.18011efc0
mov rdx, qword [rsp + 0x108]
mov rax, qword [rsp + 0xf8]
mov dword [rax + rdx*4], r14d
inc rdx
mov qword [rsp + 0x108], rdx
jmp 0x1800629d7
movzx eax, word [rsp + 0xf4]
cmp rax, 3
ja 0x180062cf8
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 0x180062399
cmp edx, 0x110000
je 0x180062bba
cmp byte [rsp + 0xe8], 0
je 0x180062ae5
cmp edx, 0x80
jb 0x180062391
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x18006232a
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x1f
and r8d, 0xfffffffe
lea r9, [0x1801f0754]
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, [0x1801f251c]
mov r14, qword [r8 + r9]
cmp edx, r14d
jne 0x180062c2c
mov rax, r14
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0x1668
jae 0x1800665dc
shr r14, 0x30
movzx eax, ax
mov ecx, 0x1667
sub rcx, rax
cmp rcx, r14
jb 0x1800665dc
lea rcx, [0x1801f9c3c]
lea r13, [rcx + rax*4]
test r14, r14
jne 0x180062cae
jmp 0x180062399
cmp edx, 0x80
jb 0x180062391
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x18006232a
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x1801e8198]
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, [0x1801e91b4]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
jne 0x180062391
mov rax, r14
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0xd4f
jae 0x1800665dc
shr r14, 0x30
movzx eax, ax
mov ecx, 0xd4e
sub rcx, rax
cmp rcx, r14
jb 0x1800665dc
test r14, r14
je 0x180062399
lea rcx, [0x1801ed21c]
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.1800600e0
add r13, 4
cmp r14, r13
jne 0x180062ba0
jmp 0x180062399
mov byte [rsp + 0xd0], 2
cmp dword [rsp + 0x80], 0
je 0x180062bde
mov rax, qword [rsp + 0x98]
test rax, rax
jne 0x180062bef
jmp 0x180062d80
movzx eax, word [rsp + 0x84]
test rax, rax
je 0x180062d80
mov rcx, r12
call fcn.1800602c0
mov ecx, dword [rsp + 0x80]
test ecx, ecx
je 0x180062c17
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0xe0], rdx
jmp 0x180062737
movzx edx, word [rsp + 0x84]
mov qword [rsp + 0xe0], rdx
jmp 0x180062737
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x1801e8198]
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, [0x1801e91b4]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
jne 0x180062391
mov rax, r14
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0xd4f
jae 0x1800665dc
shr r14, 0x30
movzx eax, ax
mov ecx, 0xd4e
sub rcx, rax
cmp rcx, r14
jb 0x1800665dc
lea rcx, [0x1801ed21c]
lea r13, [rcx + rax*4]
test r14, r14
je 0x180062399
shl r14, 2
xor r15d, r15d
nop word cs:[rax + rax]
mov edx, dword [r13 + r15]
mov rcx, r12
call fcn.1800600e0
add r15, 4
cmp r14, r15
jne 0x180062cc0
jmp 0x180062399
shl r9d, 6
or r9d, r15d
mov edx, r9d
jmp 0x180062a19
shl r9d, 0xc
or ebp, r9d
mov edx, ebp
jmp 0x180062a19
lea rcx, [rsp + 0x1b0]
lea rdx, [rsp + 0xf4]
mov r8d, r14d
call fcn.180181c70
cmp dword [rsp + 0xf0], 0
je 0x180062d3c
cmp qword [rsp + 0x100], 0
je 0x180062d3c
mov r8, qword [rsp + 0xf8]
mov rcx, qword [0x18021a960]
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 0x1800629d7
mov r13d, r14d
jmp 0x180062df0
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 0x180062295
mov dword [rsp + 0x110], 0x110000
jmp 0x180062df0
mov dword [rsp + 0x110], r14d
mov byte [rsp + 0x114], 0
mov qword [rsp + 0x70], 1
mov qword [rsp + 0x78], 0
jmp 0x180062df0
mov dword [rsp + 0x110], r14d
nop word [rax + rax]
mov rcx, qword [rsp + 0x158]
mov edx, r13d
call fcn.18000cec0
mov rdx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x78]
jmp 0x180062295
cmp rax, r8
jb 0x180062e3a
mov qword [rsp + 0x108], 0
jmp 0x180062e81
cmp r8w, 5
jae 0x1800665dc
lea r9, [rsp + 0xf8]
cmp rax, r8
jae 0x180062e70
mov r13d, dword [r9 + rax*4]
inc rax
mov qword [rsp + 0x70], 2
mov qword [rsp + 0x78], rax
jmp 0x180062df0
lea r9, [rsp + 0xf8]
mov r13d, dword [r9 + rax*4]
inc rax
mov qword [rsp + 0x70], 1
mov qword [rsp + 0x78], rax
jmp 0x180062df0
xor ecx, ecx
test r8, r8
je 0x180062e81
mov word [rsp + 0xf4], 0
mov r13d, dword [rsp + 0x110]
mov dword [rsp + 0x110], 0x110000
cmp r13d, 0x110000
jne 0x180062df0
cmp dword [rsp + 0x80], 0
je 0x18006323a
cmp qword [rsp + 0x90], 0
mov rbx, qword [rsp + 0x340]
je 0x180063242
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x18021a960]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [rsp + 0xf0]
jmp 0x180063242
mov rax, qword [rbx + 8]
mov r12, qword [rbx + 0x10]
sub rax, r12
cmp rax, r14
jb 0x180063223
mov rcx, qword [rbx]
add rcx, r12
mov rdx, r15
mov r8, r14
call fcn.180171d20
add r12, r14
mov qword [rbx + 0x10], r12
mov dword [rsp + 0x118], 0
xor edi, edi
xor r11d, r11d
xor edx, edx
xor r8d, r8d
xor r14d, r14d
xor ebp, ebp
xor r15d, r15d
xor r12d, r12d
mov dword [rsp + 0x2c], 0
mov dword [rsp + 0x120], 0
xor esi, esi
mov rax, qword [rsp + 0x158]
cmp byte [rax + 0x32], 0
je 0x180063141
mov dword [rsp + 0x150], ebp
mov dword [rsp + 0x30], r14d
mov rax, rbx
mov rbx, qword [rbx]
mov r14, qword [rax + 0x10]
movabs rcx, 0x2e0000002e
test r14, r14
mov dword [rsp + 0x68], esi
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x140], r11d
je 0x180063073
cmp byte [rbx + r14 - 1], 0x2e
jne 0x180062fa6
dec r14
je 0x180063073
mov ebp, r12d
mov esi, r15d
mov r12d, r8d
mov r15d, 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], rcx
mov word [rsp + 0xb0], 1
lea rdi, [rsp + 0x70]
nop word [rax + rax]
mov rcx, rdi
call fcn.180056650
test rax, rax
je 0x180063022
test rdx, rdx
jne 0x180063010
test rax, rax
mov edx, r15d
mov r8d, r12d
mov r15d, esi
mov r12d, ebp
mov esi, dword [rsp + 0x68]
mov edi, dword [rsp + 0x38]
mov r11d, dword [rsp + 0x140]
movabs rcx, 0x2e0000002e
je 0x180063065
mov al, 1
mov dword [rsp + 0x120], eax
cmp r14, 0xfd
ja 0x180063124
jmp 0x18006308c
cmp r14, 0xfd
jbe 0x18006308c
jmp 0x180063124
xor r14d, r14d
mov al, 1
mov dword [rsp + 0x120], eax
cmp r14, 0xfd
ja 0x180063124
mov ebp, r12d
mov esi, r15d
mov r12d, r8d
mov r15d, 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], rcx
mov word [rsp + 0xb0], 1
lea rdi, [rsp + 0x70]
nop dword [rax]
mov rcx, rdi
call fcn.180056650
test rax, rax
je 0x180063103
cmp rdx, 0x40
jb 0x1800630f0
test rax, rax
mov edx, r15d
mov r8d, r12d
mov r15d, esi
mov r12d, ebp
mov esi, dword [rsp + 0x68]
mov edi, dword [rsp + 0x38]
mov r11d, dword [rsp + 0x140]
je 0x180063135
mov r9b, 1
mov r14d, dword [rsp + 0x30]
mov ebp, dword [rsp + 0x150]
jmp 0x180063146
mov r14d, dword [rsp + 0x30]
mov ebp, dword [rsp + 0x150]
mov r9d, dword [rsp + 0x2c]
mov eax, r11d
mov ebx, dword [rsp + 0x118]
or al, bl
mov ecx, edx
or cl, r8b
or cl, al
mov eax, r14d
or al, bpl
or al, r15b
or al, cl
mov ecx, r12d
or cl, r9b
or cl, al
mov r10d, dword [rsp + 0x120]
or cl, r10b
jne 0x180063185
test dil, dil
jne 0x180063185
mov al, 2
test sil, sil
je 0x1800631b3
mov byte [r13 + 1], dil
mov byte [r13 + 2], r11b
mov byte [r13 + 3], dl
mov byte [r13 + 4], r8b
mov byte [r13 + 5], r14b
mov byte [r13 + 6], bpl
mov byte [r13 + 7], r15b
mov byte [r13 + 8], r12b
mov byte [r13 + 9], r9b
mov byte [r13 + 0xa], r10b
mov byte [r13 + 0xb], sil
mov eax, ebx
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.180181bc0
mov r12, qword [rbx + 0x10]
jmp 0x180062efd
mov rbx, qword [rsp + 0x340]
test ecx, ecx
je 0x180063268
cmp qword [rsp + 0x100], 0
je 0x180063268
mov r8, qword [rsp + 0xf8]
mov rcx, qword [0x18021a960]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
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 + 0x120]
and rax, 0xffffffffffff00ff
mov qword [rsp + 0x180], rax
xor r15d, r15d
lea rbp, [rsp + 0x1b0]
lea r12, [0x1801e03f4]
movdqa xmm11, xmmword [0x18018cad0]
movdqa xmm12, xmmword [0x18018c8f0]
movdqa xmm13, xmmword [0x18018cae0]
movdqa xmm14, xmmword [0x18018caf0]
movdqa xmm15, xmmword [0x18018cb00]
movdqa xmm7, xmmword [0x18018cb10]
movdqa xmm8, xmmword [0x18018cb20]
movdqa xmm9, xmmword [0x18018cb30]
movdqa xmm10, xmmword [0x18018cb40]
xor esi, esi
mov dword [rsp + 0x2c], 0
jmp 0x1800633ad
movabs r8, 0x8080808080808080
test qword [rcx], r8
mov rbx, qword [rsp + 0x340]
je 0x18006495c
mov byte [rsp + 0x50], 1
mov sil, 1
mov al, 1
mov dword [rsp + 0x2c], eax
lea r12, [0x1801e03f4]
xor r15d, r15d
lea rbp, [rsp + 0x1b0]
mov rcx, rbp
call fcn.180056650
test rax, rax
je 0x1800650c1
mov r13, rax
mov r14, rdx
test sil, 1
je 0x1800633ee
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x1800633e0
mov rcx, rbx
call fcn.18011f470
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 0x180063402
cmp dword [r13], 0x2d2d6e78
je 0x1800635b4
test byte [rsp + 0x2c], 1
jne 0x180063561
test r14, r14
je 0x180063559
mov rax, r13
add rax, r14
mov rcx, r13
jmp 0x18006342a
cmp rcx, rax
je 0x180063559
movzx edx, byte [rcx]
test dl, dl
js 0x180063436
inc rcx
jmp 0x1800634a9
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x18006348b
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x18006349b
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 0x180063559
add rcx, 4
jmp 0x1800634a9
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x1800634a9
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x180063421
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x1800634dc
mov r9, r8
sub r8, r10
jbe 0x180063421
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
mov esi, dword [r12 + 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, r15d
cmp dword [r12 + r11*4], edx
cmova esi, edi
cmp sil, 1
je 0x1800634d0
movzx r10d, sil
cmp r10d, 0xff
jne 0x180063531
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x1800634dc
jmp 0x180063421
movzx edx, byte [r12 + r11*4 + 8]
cmp rdx, 0x11
ja 0x180063421
mov r8d, 0x20003
bt r8, rdx
jae 0x180063421
mov al, 1
mov dword [rsp + 0x2c], eax
jmp 0x180063561
mov dword [rsp + 0x2c], 0
mov rcx, r13
mov rdx, r14
mov r8, qword [rsp + 0x120]
lea r9, [rsp + 0x50]
call fcn.1800609f0
mov rax, qword [rbx + 8]
mov r12, qword [rbx + 0x10]
sub rax, r12
cmp rax, r14
jb 0x180063d71
mov rcx, qword [rbx]
add rcx, r12
mov rdx, r13
mov r8, r14
call fcn.180171d20
add r14, r12
mov qword [rbx + 0x10], r14
mov sil, 1
lea r12, [0x1801e03f4]
jmp 0x1800633ad
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 0x1800635eb
cmp rbp, r14
ja 0x180063701
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 0x1800665dc
lea rdi, [r8 + rbp]
xor esi, esi
movabs r15, 0xfefefefefefefeff
movabs r12, 0x2d2d2d2d2d2d2d2d
nop
cmp r10, rsi
je 0x180063646
inc rsi
cmp byte [rdi], 0x2d
lea rdi, [rdi - 1]
jne 0x180063630
sub rbp, rsi
jmp 0x1800636b4
mov r10, r11
cmp r11, r9
jbe 0x180063698
mov r11, qword [r13 + r10 - 0xc]
mov rsi, r11
not rsi
xor r11, r12
add r11, r15
movabs rdi, 0x8080808080808080
and rsi, rdi
test rsi, r11
jne 0x180063698
mov rsi, qword [r13 + r10 - 4]
mov rdi, rsi
not rdi
xor rsi, r12
add rsi, r15
movabs r11, 0x8080808080808080
and rdi, r11
lea r11, [r10 - 0x10]
test rdi, rsi
je 0x180063646
cmp r10, rbp
ja 0x1800665dc
mov rbp, r10
sub rbp, 1
jb 0x180063701
cmp byte [r8 + r10], 0x2d
mov r10, rbp
jne 0x1800636a4
mov r12, rbp
inc r12
je 0x1800635e2
cmp r14, r12
jb 0x1800635e2
cmp byte [rcx + rbp], 0x2d
jne 0x1800635e2
test rbp, rbp
je 0x180064896
cmp rbp, r14
ja 0x180066636
mov rdi, r14
sub rdi, r12
jbe 0x18006489e
cmp byte [rcx + r12], 0xbf
jg 0x1800648a4
jmp 0x180066646
lea rsi, str.description___is_deprecated__use_DisplayP_
xor ebp, ebp
mov r12, rcx
mov rdi, r14
test rdi, rdi
je 0x1800639c3
add rdi, r12
xor eax, eax
mov qword [rsp + 0x30], rax
mov r13d, 0x48
mov dword [rsp + 0x38], 0x80
mov eax, ebp
mov dword [rsp + 0x68], 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 0x180063778
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x18006377c
add al, 0x9f
mov edx, eax
cmp al, 0x1a
jb 0x18006377c
jmp 0x18006338d
add al, 0xea
mov edx, eax
test r11d, r11d
je 0x1800665dc
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x18006338d
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 0x180063803
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x18006338d
cmp r12, rdi
je 0x18006338d
add r14d, 0x24
imul r11d, r8d
inc r12
movzx eax, byte [r12 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x180063763
jmp 0x180063778
mov r10d, dword [rsp + 0x68]
inc r10d
je 0x1800665dc
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 0x180063875
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 0x18006384b
jmp 0x180063878
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 + 0x68], r10d
div r10d
add dword [rsp + 0x38], eax
jb 0x18006338d
mov eax, ecx
xor edx, edx
div dword [rsp + 0x68]
mov eax, dword [rsp + 0x38]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x18006338d
cmp dword [rsp + 0x38], 0x110000
je 0x18006338d
mov r15d, edx
mov r8, qword [rsp + 0x190]
mov ebx, edx
cmp qword [rsp + 0x30], 0
je 0x180063912
mov rax, qword [rsp + 0x30]
shl rax, 4
xor ecx, ecx
jmp 0x180063900
add rcx, 0x10
cmp rax, rcx
je 0x180063912
mov rdx, qword [r8 + rcx]
cmp rdx, rbx
jb 0x1800638f7
inc rdx
mov qword [r8 + rcx], rdx
jmp 0x1800638f7
mov rdx, qword [rsp + 0x30]
cmp rdx, qword [rsp + 0x198]
jne 0x18006393e
lea rcx, [rsp + 0x190]
call fcn.180114890
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 + 0x38]
mov dword [r8 + rax + 8], ecx
lea rcx, [rdx + 1]
mov rax, rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x1a0], rcx
mov ecx, r15d
inc ecx
cmp r12, rdi
mov rbx, qword [rsp + 0x340]
jne 0x180063739
mov qword [rsp + 0x60], r8
cmp qword [rsp + 0x30], 0x15
jae 0x1800649aa
cmp qword [rsp + 0x30], 2
jb 0x1800650b2
mov r8d, 1
mov rdi, qword [rsp + 0x60]
mov rcx, rdi
mov r13, qword [rsp + 0x30]
mov rdx, r13
call fcn.180060030
mov r10, rdi
jmp 0x1800650a5
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 0x1800647cc
mov qword [rsp + 0x38], rdi
add rbp, rsi
xor edi, edi
xor ebx, ebx
mov qword [rsp + 0x30], r13
cmp rdi, r13
jae 0x180063aa7
test r10, r10
je 0x180063aa7
mov rax, rdi
shl rax, 4
cmp qword [r10 + rax], rbx
jne 0x180063a30
inc rdi
mov r14d, dword [r10 + rax + 8]
jmp 0x180063bdc
mov rcx, rsi
mov rsi, rbp
cmp rcx, rbp
je 0x180063a30
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x180063b3b
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xdf
jbe 0x180063b4d
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x180063b56
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 0x180063a30
jmp 0x180063bbe
cmp rdi, r13
jb 0x180063ad0
cmp rsi, rbp
je 0x180063d36
movzx r8d, byte [rsi]
test r8b, r8b
js 0x180063b64
inc rsi
jmp 0x180063b41
mov rcx, rsi
mov rsi, rbp
cmp rcx, rbp
je 0x180063ad0
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x180063b3b
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x180063b4d
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x180063b56
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 0x180063ad0
jmp 0x180063bbe
inc rcx
mov rsi, rcx
movzx r14d, r8b
inc rbx
jmp 0x180063be5
add rcx, 2
mov rsi, rcx
jmp 0x180063bd3
add rcx, 3
mov rsi, rcx
shl eax, 0xc
or eax, edx
jmp 0x180063bd9
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rsi + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x180063bcf
movzx edx, byte [rsi + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x180063d11
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 0x180063d36
add rsi, 4
mov rcx, rsi
mov rsi, rcx
cmp r14d, 0x110000
jne 0x180063bdc
jmp 0x180063d36
add rsi, 2
shl eax, 6
or eax, r9d
mov r14d, eax
inc rbx
cmp r14d, 0x7f
ja 0x180063c22
mov r15, qword [rsp + 0x340]
mov rdx, qword [r15 + 0x10]
cmp rdx, qword [r15 + 8]
jne 0x180063c06
mov rcx, r15
call fcn.18011f470
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 0x180063a05
jmp 0x180063aa7
mov dword [rsp + 0x70], 0
mov eax, r14d
cmp r14d, 0x800
jae 0x180063c54
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 0x180063cc1
cmp r14d, 0x10000
jae 0x180063c89
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 0x180063cc1
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 0x180063d1a
mov r15, qword [rsp + 0x340]
mov rcx, qword [r15]
add rcx, r13
lea rdx, [rsp + 0x70]
mov r8, r14
call fcn.180171d20
add r13, r14
mov qword [r15 + 0x10], r13
mov r13, qword [rsp + 0x30]
mov r10, r12
cmp rdi, r13
jb 0x180063a05
jmp 0x180063aa7
add rsi, 3
jmp 0x180063b5d
mov r15, qword [rsp + 0x340]
mov rcx, r15
mov rdx, r13
mov r8, r14
call fcn.180181bc0
mov r13, qword [r15 + 0x10]
jmp 0x180063cd9
mov rbx, qword [rsp + 0x340]
mov r14, qword [rbx]
mov rdx, qword [rbx + 0x10]
mov r8, qword [rsp + 0x38]
test r8, r8
je 0x180063d88
mov r13, rdx
sub r13, r8
mov r15d, 0
lea rbp, [rsp + 0x1b0]
jbe 0x180063d98
cmp byte [r14 + r8], 0xbf
jg 0x180063d9e
jmp 0x180066629
mov rcx, rbx
mov rdx, r12
mov r8, r14
call fcn.180181bc0
mov r12, qword [rbx + 0x10]
jmp 0x18006358d
mov r13, rdx
xor r15d, r15d
lea rbp, [rsp + 0x1b0]
jmp 0x180063d9e
jne 0x180066629
add r14, r8
test byte [rsp + 0x2c], 1
lea r12, [0x1801e03f4]
jne 0x180063efd
test r13, r13
je 0x180063ef5
lea rax, [r14 + r13]
mov rcx, r14
jmp 0x180063dce
cmp rcx, rax
je 0x180063ef5
movzx edx, byte [rcx]
test dl, dl
js 0x180063dda
inc rcx
jmp 0x180063e4d
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x180063e2f
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x180063e3f
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 0x180063ef5
add rcx, 4
jmp 0x180063e4d
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x180063e4d
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x180063dc5
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x180063e78
mov r9, r8
sub r8, r10
jbe 0x180063dc5
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
mov esi, dword [r12 + 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, r15d
cmp dword [r12 + r11*4], edx
cmova esi, edi
cmp sil, 1
je 0x180063e6c
movzx r10d, sil
cmp r10d, 0xff
jne 0x180063ecd
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x180063e78
jmp 0x180063dc5
movzx edx, byte [r12 + r11*4 + 8]
cmp rdx, 0x11
ja 0x180063dc5
mov r8d, 0x20003
bt r8, rdx
jae 0x180063dc5
mov al, 1
mov dword [rsp + 0x2c], eax
jmp 0x180063efd
mov dword [rsp + 0x2c], 0
movq xmm0, qword [rsp + 0x52]
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 + 0x50]
or al, byte [rsp + 0x5a]
mov sil, 1
jne 0x1800633ad
cmp byte [rsp + 0x51], 0
jne 0x1800633ad
cmp byte [rsp + 0x5b], 0
jne 0x1800633ad
test r13, r13
je 0x180064879
lea rdi, [r14 + r13]
xor r8d, r8d
xor eax, eax
mov rcx, r14
movzx edx, byte [rcx]
test dl, dl
js 0x180063f75
inc rcx
jmp 0x180064001
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp dl, 0xe0
jb 0x180063fca
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x180063fda
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 0x18006464c
add rcx, 4
jmp 0x180063fe8
add rcx, 2
shl r9d, 6
or r9d, r11d
mov edx, r9d
jmp 0x180063fe8
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
cmp edx, 0x7f
jbe 0x180064001
jmp 0x18006408f
inc rcx
cmp edx, 0x80
jae 0x18006408c
cmp rcx, rdi
je 0x18006464c
movzx edx, byte [rcx]
test dl, dl
jns 0x180063ff2
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x180064066
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x180064079
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 0x18006464c
add rcx, 4
jmp 0x180063ff5
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x180063ff5
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
jmp 0x180063ff5
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, [0x1801e47bc]
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, [0x1801e4ef0]
mov r8d, dword [r8 + r10]
mov r10d, r8d
shr r10d, 8
cmp r10d, edx
cmovne r8d, r15d
cmp r9b, r8b
jbe 0x180064101
test r8b, r8b
jne case.0x1800642ef.3907
lea r9d, [rdx - 0x340]
cmp r9d, 4
ja 0x180064118
cmp r9d, 2
jne case.0x1800642ef.3907
cmp edx, 0xd56
jg 0x18006417f
cmp edx, 0x9de
jg 0x1800641dd
cmp edx, 0x93b
jg 0x180064338
lea r9d, [rdx - 0x30f]
cmp r9d, 0x36
ja 0x180064159
movabs r10, 0x48020000001005
bt r10, r9
jb 0x1800644a7
lea r9d, [rdx - 0x374]
cmp r9d, 0x13
ja case.0x1800642ef.3908
mov r10d, 0x80401
bt r10d, r9d
jb case.0x1800642ef.3907
jmp case.0x1800642ef.3908
cmp edx, 0x11126
jg 0x180064261
cmp edx, 0x102d
jle 0x1800642a7
cmp edx, 0x1f70
jg 0x18006438a
cmp edx, 0x102e
mov rbx, qword [rsp + 0x340]
lea r12, [0x1801e03f4]
mov r15d, 0
lea rbp, [rsp + 0x1b0]
je 0x1800644a7
cmp edx, 0x1b35
je 0x1800644a7
jmp case.0x1800642ef.3908
cmp edx, 0xbd6
jg 0x1800642f2
cmp edx, 0xbbd
jg 0x180064482
lea r9d, [rdx - 0xb3e]
cmp r9d, 0x19
mov rbx, qword [rsp + 0x340]
lea r12, [0x1801e03f4]
mov r15d, 0
lea rbp, [rsp + 0x1b0]
ja 0x18006422f
mov r10d, 0x3000001
bt r10d, r9d
jb 0x1800644a7
lea r9d, [rdx - 0xa33]
cmp r9d, 0x2b
ja 0x180064250
movabs r10, 0x80000000009
bt r10, r9
jb case.0x1800642ef.3907
cmp edx, 0x9df
jne case.0x1800642ef.3908
jmp case.0x1800642ef.3907
cmp edx, 0x114af
jle 0x180064361
lea r9d, [rdx - 0x114b0]
cmp r9d, 0xd
ja 0x18006428a
mov r10d, 0x2401
bt r10d, r9d
jb 0x1800644a7
cmp edx, 0x115af
je 0x1800644a7
cmp edx, 0x11930
je 0x1800644a7
jmp case.0x1800642ef.3908
lea r9d, [rdx - 0xdca]
cmp r9d, 0x15
ja 0x1800642c4
mov r10d, 0x200021
bt r10d, r9d
jb 0x1800644a7
cmp edx, 0xd57
je 0x1800644a7
lea r9d, [rdx - 0xf43]
cmp r9d, 0x76
ja case.0x1800642ef.3908
lea r10, [0x180066658]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xcc1
jg 0x180064406
cmp edx, 0xbd7
mov rbx, qword [rsp + 0x340]
lea r12, [0x1801e03f4]
mov r15d, 0
lea rbp, [rsp + 0x1b0]
je 0x1800644a7
cmp edx, 0xc56
je 0x1800644a7
jmp case.0x1800642ef.3908
cmp edx, 0x93c
je 0x1800644a7
cmp edx, 0x9be
je 0x1800644a7
cmp edx, 0x9d7
je 0x1800644a7
jmp case.0x1800642ef.3908
cmp edx, 0x11127
je 0x1800644a7
cmp edx, 0x1133e
je 0x1800644a7
cmp edx, 0x11357
je 0x1800644a7
jmp case.0x1800642ef.3908
cmp edx, 0xfa0f
jle 0x180064438
cmp edx, 0x110ba
mov rbx, qword [rsp + 0x340]
lea r12, [0x1801e03f4]
mov r15d, 0
lea rbp, [rsp + 0x1b0]
je 0x1800644a7
lea r9d, [rdx - 0xfa10]
cmp r9d, 0x12
ja 0x1800643dc
mov r10d, 0x50005
bt r10d, r9d
jb case.0x1800642ef.3907
lea r9d, [rdx - 0xfb1d]
cmp r9d, 0x21
ja case.0x1800642ef.3908
movabs r10, 0x200000005
bt r10, r9
jb case.0x1800642ef.3907
jmp case.0x1800642ef.3908
cmp edx, 0xcc2
mov rbx, qword [rsp + 0x340]
lea r12, [0x1801e03f4]
mov r15d, 0
lea rbp, [rsp + 0x1b0]
je 0x1800644a7
cmp edx, 0xd3e
je 0x1800644a7
jmp case.0x1800642ef.3908
cmp edx, 0x2125
jg 0x1800644b7
lea r9d, [rdx - 0x1f71]
cmp r9d, 0x8c
mov rbx, qword [rsp + 0x340]
lea r12, [0x1801e03f4]
mov r15d, 0
lea rbp, [rsp + 0x1b0]
ja case.0x1800642ef.3908
lea r10, [0x180066834]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xbbe
mov rbx, qword [rsp + 0x340]
lea r12, [0x1801e03f4]
mov r15d, 0
lea rbp, [rsp + 0x1b0]
jne case.0x1800642ef.3908
mov al, 2
cmp rcx, rdi
jne 0x180063f66
jmp 0x18006464c
lea r9d, [rdx - 0x2329]
cmp r9d, 2
mov rbx, qword [rsp + 0x340]
lea r12, [0x1801e03f4]
mov r15d, 0
lea rbp, [rsp + 0x1b0]
jb case.0x1800642ef.3907
cmp edx, 0x2126
je case.0x1800642ef.3907
cmp edx, 0x2adc
je case.0x1800642ef.3907
movd xmm1, edx
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x18018caa0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x18018cab0]
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.0x1800642ef.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x18018ca90]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x18018cac0]
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.0x1800642ef.3907
lea r9d, [rdx - 0x1d1bb]
cmp r9d, 6
jb case.0x1800642ef.3907
lea r9d, [rdx - 0x2f800]
cmp r9d, 0x21e
jb case.0x1800642ef.3907
movd r9d, xmm1
cmp r9d, 0x2000
je case.0x1800642ef.3907
cmp r9d, 0x212a
je case.0x1800642ef.3907
cmp r9d, 0xfb40
je case.0x1800642ef.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 0x1800644a7
lea r10d, [rdx - 0x11a8]
cmp r10d, 0x1b
jb 0x1800644a7
add edx, 0xffffcf67
cmp edx, 2
jb 0x1800644a7
cmp r9d, 0x330
jne 0x1800644a9
jmp 0x1800644a7
test al, al
je 0x180064879
movzx eax, al
cmp eax, 1
je case.0x1800642ef.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 0x1800647df
movzx ebp, byte [rbx]
test bpl, bpl
js 0x180064750
inc rbx
jmp 0x1800647ae
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rbx + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x180064796
movzx ecx, byte [rbx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x1800647a3
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 0x1800647df
add rbx, 4
jmp 0x1800647ae
add rbx, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x1800647ae
add rbx, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
lea rcx, [rsp + 0x70]
call fcn.180060cc0
mov r15b, 1
cmp eax, 0x110000
je 0x1800647f5
cmp eax, ebp
je 0x18006473a
jmp 0x1800647f5
mov rcx, rbx
mov rdx, rdi
call fcn.180181bc0
mov r10, r12
jmp 0x1800639eb
lea rcx, [rsp + 0x70]
call fcn.180060cc0
cmp eax, 0x110000
setne r15b
neg r15b
cmp dword [rsp + 0x80], 0
je 0x180064821
cmp qword [rsp + 0x90], 0
je 0x180064821
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x18021a960]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [rsp + 0xd0], 0
je 0x18006484d
cmp qword [rsp + 0xe0], 0
je 0x18006484d
mov r8, qword [rsp + 0xd8]
mov rcx, qword [0x18021a960]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r15b, r15b
mov rbx, qword [rsp + 0x340]
lea r12, [0x1801e03f4]
mov r15d, 0
lea rbp, [rsp + 0x1b0]
je 0x180064879
mov byte [rsp + 0x55], 1
jmp 0x1800633ad
mov rcx, r14
mov rdx, r13
mov r8, qword [rsp + 0x180]
lea r9, [rsp + 0x50]
call fcn.1800609f0
jmp 0x1800633ad
mov rsi, rcx
jmp 0x180063708
jne 0x180066646
add r12, rcx
cmp rbp, 8
jae 0x180063372
cmp byte [rcx + rbp - 1], 0
mov rbx, qword [rsp + 0x340]
js 0x18006338d
mov rax, rbp
dec rax
je 0x180064954
cmp byte [rcx + rbp - 2], 0
js 0x18006338d
mov rax, rbp
add rax, 0xfffffffffffffffe
je 0x180064954
cmp byte [rcx + rbp - 3], 0
js 0x18006338d
mov rax, rbp
add rax, 0xfffffffffffffffd
je 0x180064954
cmp byte [rcx + rbp - 4], 0
js 0x18006338d
mov rax, rbp
add rax, 0xfffffffffffffffc
je 0x180064954
cmp byte [rcx + rbp - 5], 0
js 0x18006338d
mov rax, rbp
add rax, 0xfffffffffffffffb
je 0x180064954
cmp byte [rcx + rbp - 6], 0
js 0x18006338d
mov rax, rbp
add rax, 0xfffffffffffffffa
je 0x180064954
cmp byte [rcx + rbp - 7], 0
js 0x18006338d
mov rax, rbp
mov rsi, rcx
add rax, 0xfffffffffffffff9
je 0x180063710
jmp 0x18006338d
mov rsi, rcx
jmp 0x180063710
cmp rdx, rcx
mov edx, 8
cmove rax, rdx
lea rdx, [rbp - 8]
cmp rax, rdx
jae 0x18006498e
movabs r8, 0x8080808080808080
test qword [rcx + rax], r8
jne 0x18006338d
add rax, 8
cmp rax, rdx
jb 0x180064971
mov rsi, rcx
movabs rax, 0x8080808080808080
test qword [rcx + rdx], rax
jne 0x18006338d
jmp 0x180063710
mov rdi, rdx
mov rax, qword [0x18021a960]
test rax, rax
jne 0x1800649cf
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x1800665dc
mov qword [0x18021a960], rax
mov rcx, qword [rsp + 0x30]
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 + 0x48], rax
test rax, rax
je 0x1800665dc
mov rax, qword [0x18021a960]
test rax, rax
jne 0x180064a24
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x1800665dc
mov qword [0x18021a960], rax
mov r8d, 0x100
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x1800665dc
mov r12, rax
mov eax, 1
sub rax, rdi
mov qword [rsp + 0x170], rax
mov r10, qword [rsp + 0x60]
lea rax, [r10 + 0x20]
mov qword [rsp + 0x168], 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 + 0x178], rax
xor eax, eax
xor ebx, ebx
mov r13, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x48]
jmp 0x180064ab9
mov ebx, 1
mov rax, qword [rsp + 0x148]
cmp rax, r13
jae 0x180065077
mov r15, rax
mov r8, r13
sub r8, rax
shl rax, 4
lea rcx, [r10 + rax]
cmp r8, 2
jae 0x180064ad8
mov rdx, r13
jmp 0x180064c4c
mov rdx, qword [rcx]
mov r9, qword [rcx + 0x10]
cmp r9, rdx
jae 0x180064af9
cmp r8, 2
jne 0x180064b18
lea rdx, [r15 + 2]
mov r8d, 2
jmp 0x180064bc8
cmp r8, 2
jne 0x180064b5d
lea rdx, [r15 + 2]
mov r8d, 2
mov r10, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x48]
jmp 0x180064c4c
mov r10, qword [rsp + 0x170]
mov r13, r15
lea r11, [r10 + r15]
mov r10, qword [rsp + 0x168]
lea rdi, [r10 + rax]
mov r10d, 2
mov r14, r9
mov r15, r14
mov r14, qword [rdi]
cmp r14, r15
jae 0x180064ba3
lea r15, [r11 + r10]
inc r15
inc r10
add rdi, 0x10
cmp r15, 2
jne 0x180064b3c
jmp 0x180064ba0
mov r10, qword [rsp + 0x170]
mov r13, r15
lea r11, [r10 + r15]
mov r10, qword [rsp + 0x168]
lea rdi, [r10 + rax]
mov r10d, 2
mov r14, r9
mov r15, r14
mov r14, qword [rdi]
cmp r14, r15
jb 0x180064ba3
lea r15, [r11 + r10]
inc r15
inc r10
add rdi, 0x10
cmp r15, 2
jne 0x180064b81
mov r10, r8
mov r15, r13
lea r11, [r10 + r13]
mov r8, r10
cmp r9, rdx
mov rdx, r11
mov r13, qword [rsp + 0x30]
mov r10, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x48]
jae 0x180064c4c
mov qword [rsp + 0x38], rcx
cmp rdx, r15
jb 0x1800665dc
cmp rdx, r13
ja 0x1800665dc
mov rcx, r15
mov r15, rdx
cmp r8, 2
jb 0x180064c32
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 0x180064c09
mov r13, qword [rsp + 0x30]
mov r10, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x48]
mov rdx, r15
mov r15, rcx
mov rcx, qword [rsp + 0x38]
mov r14, rdx
sub r14, r15
jb 0x1800665dc
cmp rdx, r13
ja 0x1800665dc
jae 0x180064ca1
cmp r8, 0xa
jae 0x180064ca1
lea r14, [r15 + 0xa]
cmp r14, r13
cmovae r14, r13
mov qword [rsp + 0x148], r14
sub r14, r15
jb 0x1800665dc
cmp r8, 2
mov eax, 1
cmovb r8, rax
mov rdx, r14
call fcn.180060030
mov r10, qword [rsp + 0x60]
jmp 0x180064ca9
mov qword [rsp + 0x148], rdx
cmp rbx, qword [rsp + 0x178]
jne 0x180064d39
mov qword [rsp + 0x38], r15
mov r15, r12
mov rax, qword [0x18021a960]
test rax, rax
jne 0x180064ce1
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x1800665dc
mov qword [0x18021a960], rax
mov r8, rbx
shl r8, 5
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x1800665dc
mov r12, rax
lea rax, [rbx + rbx]
mov qword [rsp + 0x178], rax
mov r8, rbx
shl r8, 4
mov rcx, r12
mov rdx, r15
call fcn.180171d20
mov rcx, qword [0x18021a960]
xor edx, edx
mov r8, r15
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r10, qword [rsp + 0x60]
mov r15, qword [rsp + 0x38]
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 + 0x40], r12
jae 0x180064de1
jmp 0x180064aa8
mov r15, rcx
mov r13, r14
mov rdx, rdi
sub r12, rdx
mov rcx, r13
mov r8, r12
call fcn.180171d20
mov rax, qword [rsp + 0x150]
add rax, r15
mov rcx, qword [rsp + 0x138]
mov qword [rcx], rax
mov rax, qword [rsp + 0x160]
mov qword [rax], rbx
mov rcx, qword [rsp + 0x128]
lea rdx, [rcx + 0x10]
mov rax, qword [rsp + 0x68]
not rax
mov r8, qword [rsp + 0x38]
add r8, rax
shl r8, 4
call fcn.180171d20
mov rax, qword [rsp + 0x140]
cmp rax, 1
mov r13, qword [rsp + 0x30]
mov r10, qword [rsp + 0x60]
mov r12, qword [rsp + 0x40]
jbe 0x180064aa3
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 0x180064e4c
mov rdx, rbx
shl rdx, 4
mov r8, qword [rdx + r12 - 0x20]
cmp r8, rax
jbe 0x180064e4c
cmp rbx, 3
jb 0x180065063
lea r14, [rbx - 3]
mov rcx, r14
shl rcx, 4
mov rcx, qword [r12 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x180064e61
cmp rbx, 4
jb 0x18006506d
add r8, rcx
cmp qword [rdx + r12 - 0x40], r8
jbe 0x180064e61
jmp 0x180064aa8
cmp rbx, 3
jb 0x180064e66
lea r14, [rbx - 3]
mov rcx, r14
shl rcx, 4
mov rcx, qword [r12 + rcx]
cmp rcx, rax
jb 0x180064e6a
lea r14, [rbx - 2]
cmp rbx, r14
jbe 0x1800665dc
lea rax, [r14 + 1]
mov qword [rsp + 0x38], rbx
cmp rbx, rax
jbe 0x1800665dc
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 0x1800665dc
mov qword [rsp + 0x68], r14
cmp r15, r13
ja 0x1800665dc
mov qword [rsp + 0x150], r8
mov qword [rsp + 0x140], r11
lea r8, [r12 + rcx]
mov qword [rsp + 0x128], r8
mov r8, qword [r12 + rcx]
lea rcx, [r12 + rax]
mov qword [rsp + 0x138], rcx
lea rax, [r12 + rax + 8]
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x130], 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 + 0x188], r8
cmp rbx, r8
jae 0x180064fae
mov r12, rbx
shl r12, 4
mov rdi, qword [rsp + 0x48]
mov rcx, rdi
mov rdx, r14
mov r8, r12
call fcn.180171d20
add r12, rdi
mov rcx, qword [rsp + 0x188]
test rcx, rcx
jle 0x180065036
test rbx, rbx
jle 0x180065036
add r15, qword [rsp + 0x1a8]
mov rbx, qword [rsp + 0x130]
mov rax, qword [r12 - 0x10]
cmp rax, qword [r14 - 0x10]
jb 0x180064f87
add r12, 0xfffffffffffffff0
mov rax, r12
jmp 0x180064f8e
add r14, 0xfffffffffffffff0
mov rax, r14
movdqu xmm0, xmmword [rax]
movdqu xmmword [r15], xmm0
cmp r14, r13
jbe 0x180064d63
add r15, 0xfffffffffffffff0
cmp r12, rdi
ja 0x180064f73
jmp 0x180064d63
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
mov rdx, r13
mov r8, r12
call fcn.180171d20
add r12, rbx
mov r10, qword [rsp + 0x188]
test r10, r10
jle 0x18006503e
cmp rdi, r10
mov rbx, qword [rsp + 0x130]
jle 0x180065056
add r15, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x48]
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 0x18006502e
mov al, cl
shl rax, 4
add r14, rax
cmp r14, r15
jb 0x180064feb
mov r15, r10
jmp 0x180064d6c
mov r15, rcx
mov r13, r14
jmp 0x180065046
mov r15, r10
mov rdi, qword [rsp + 0x48]
mov rdx, rdi
mov rbx, qword [rsp + 0x130]
jmp 0x180064d6c
mov r15, r10
mov rdi, qword [rsp + 0x48]
jmp 0x180064d69
mov ebx, 2
jmp 0x180064aa8
mov ebx, 3
jmp 0x180064aa8
mov rcx, qword [0x18021a960]
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 [0x18021a960]
xor edx, edx
mov r8, rbx
call rdi
mov r10, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x340]
jmp 0x1800639ce
mov r13, qword [rsp + 0x30]
mov r10, qword [rsp + 0x60]
jmp 0x1800639ce
mov rcx, qword [rbx]
mov rdi, qword [rbx + 0x10]
mov rax, rdi
mov r8, qword [rsp + 0x118]
test r8, r8
je 0x1800650f6
mov rax, rdi
sub rax, r8
jbe 0x1800650f4
cmp byte [rcx + r8], 0xbf
jg 0x1800650f6
mov rdx, rdi
mov r9, rdi
call fcn.18017fb10
ud2
jne 0x1800650e7
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 + 0x2c], 1
jne 0x180065171
lea r15, [rsp + 0x70]
mov rcx, r15
call fcn.180056650
test rax, rax
jne 0x18006515f
jmp 0x180065b2e
lea r15, [rsp + 0x70]
xor esi, esi
mov ebx, 0x62f8
mov rcx, r15
call fcn.180056650
test rax, rax
je 0x180065b2e
test rdx, rdx
je 0x18006517d
movzx ecx, byte [rax]
test cl, cl
js 0x1800651a0
lea r9, [rax + 1]
jmp 0x18006520f
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x1800651f1
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x180065201
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 0x18006517d
lea r9, [rax + 4]
jmp 0x18006520f
lea r9, [rax + 2]
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x18006520f
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 0x18006522b
mov r10, r8
sub r8, r11
jbe 0x1800652a1
shr r8, 1
add r8, r11
lea r13, [r8 + r8*2]
mov ebp, dword [r12 + 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 [r12 + r13*4], ecx
cmova ebp, r14d
cmp bpl, 1
je 0x180065223
movzx r11d, bpl
cmp r11d, 0xff
jne 0x180065280
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x18006522b
jmp 0x1800652a1
movzx ecx, byte [r12 + r13*4 + 8]
test rcx, rcx
je 0x180065410
cmp ecx, 0x11
je 0x180065410
cmp ecx, 9
jne 0x180065b29
cmp r9, rdx
je 0x1800653bf
movzx ecx, byte [r9]
test cl, cl
js 0x1800652b7
inc r9
jmp 0x18006532b
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [r9 + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x18006530d
movzx r10d, byte [r9 + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x18006531d
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 0x1800653bf
add r9, 4
jmp 0x18006532b
add r9, 2
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x18006532b
add r9, 3
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x180065348
mov r10, r8
sub r8, r11
jbe 0x1800652a1
shr r8, 1
add r8, r11
lea r13, [r8 + r8*2]
mov ebp, dword [r12 + 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 [r12 + r13*4], ecx
cmova ebp, r14d
cmp bpl, 1
je 0x18006533c
movzx r11d, bpl
cmp r11d, 0xff
jne 0x1800653a0
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x180065348
jmp 0x1800652a1
movzx ecx, byte [r12 + r13*4 + 8]
cmp rcx, 0xe
ja 0x180065b29
bt rbx, rcx
jb 0x1800652a1
jmp 0x180065b29
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x1800653cf
dec rdx
jmp 0x180065682
movzx r8d, byte [rdx - 2]
add rdx, 0xfffffffffffffffe
cmp r8b, 0xc0
jge 0x1800655a3
movzx r9d, byte [rdx - 1]
dec rdx
cmp r9b, 0xc0
jge 0x180065669
movzx r10d, byte [rdx - 1]
dec rdx
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x18006566d
cmp r9, rdx
je 0x1800655ac
mov dword [rsp + 0x120], 0
mov dword [rsp + 0x118], 0
movzx r10d, byte [r9]
test r10b, r10b
js 0x18006543d
inc r9
jmp 0x1800654ba
mov r11d, r10d
and r11d, 0x1f
movzx r12d, byte [r9 + 1]
and r12d, 0x3f
cmp r10b, 0xdf
jbe 0x180065495
movzx ebp, byte [r9 + 2]
shl r12d, 6
and ebp, 0x3f
or ebp, r12d
cmp r10b, 0xf0
jb 0x1800654a5
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 0x1800655c2
add r9, 4
jmp 0x1800654b3
add r9, 2
shl r11d, 6
or r11d, r12d
mov r10d, r11d
jmp 0x1800654b3
add r9, 3
shl r11d, 0xc
or ebp, r11d
mov r10d, ebp
lea r12, [0x1801e03f4]
mov r11d, 0x5a6
xor ebp, ebp
mov r13d, 0x5a6
jmp 0x1800654dd
mov r13, r11
sub r11, rbp
lea r12, [0x1801e03f4]
jbe 0x180065b29
shr r11, 1
add r11, rbp
lea r8, [r11 + r11*2]
mov r14d, dword [r12 + r8*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 [r12 + r8*4], r10d
cmova r14d, ecx
cmp r14b, 1
je 0x1800654ca
movzx ecx, r14b
cmp ecx, 0xff
jne 0x18006553a
inc r11
mov rbp, r11
mov r11, r13
sub r11, rbp
lea r12, [0x1801e03f4]
ja 0x1800654dd
jmp 0x180065b29
lea rcx, [0x1801e03f4]
movzx r10d, byte [rcx + r8*4 + 8]
cmp r10d, 1
je 0x180065565
cmp r10d, 5
jne 0x180065578
mov cl, 1
mov dword [rsp + 0x118], ecx
lea r12, [0x1801e03f4]
jmp 0x180065598
mov ecx, r10d
mov dword [rsp + 0x120], ecx
lea r12, [0x1801e03f4]
jmp 0x180065598
cmp r10, 0x11
lea r12, [0x1801e03f4]
ja 0x180065b29
mov ecx, 0x260fb
bt rcx, r10
jae 0x180065b29
cmp r9, rdx
jne 0x18006542f
jmp 0x1800655c2
and r8d, 0x1f
jmp 0x180065678
mov dword [rsp + 0x118], 0
mov dword [rsp + 0x120], 0
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x18006590a
dec rdx
cmp rdx, rax
jne 0x180065982
cmp r9d, 0x110000
lea r12, [0x1801e03f4]
je 0x180065b29
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x18006560b
mov rdx, rax
sub rax, r10
jbe 0x180065a3d
shr rax, 1
add rax, r10
lea r11, [rax + rax*2]
mov ebp, dword [r12 + 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 [r12 + r11*4], r9d
cmova ebp, r14d
cmp bpl, 1
je 0x1800655ff
movzx r10d, bpl
cmp r10d, 0xff
jne 0x180065955
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x18006560b
jmp 0x180065a3d
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 0x18006578b
cmp ecx, 0x110000
je 0x18006517d
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x1800656b4
mov r9, r8
sub r8, r10
jbe 0x180065812
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
mov ebp, dword [r12 + 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 [r12 + r11*4], ecx
cmova ebp, r14d
cmp bpl, 1
je 0x1800656a8
movzx r10d, bpl
cmp r10d, 0xff
jne 0x18006570c
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x1800656b4
jmp 0x180065812
cmp byte [r12 + r11*4 + 8], 0xd
jne 0x180065812
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x180065728
dec rdx
jmp 0x180065682
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x180065758
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jge 0x180065762
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x18006576a
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x180065775
add rdx, 0xfffffffffffffffd
and r9d, 0xf
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
lea r12, [0x1801e03f4]
jmp 0x180065682
cmp ecx, 0x110000
je 0x18006517d
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x1800657ae
mov rdx, rax
sub rax, r8
jbe 0x180065812
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
mov r10d, dword [r12 + 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 [r12 + r9*4], ecx
cmova r10d, r11d
cmp r10b, 1
je 0x1800657a6
movzx r8d, r10b
cmp r8d, 0xff
jne 0x180065806
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x1800657ae
jmp 0x180065812
cmp byte [r12 + r9*4 + 8], 0xd
je 0x18006517d
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x18006582d
mov rdx, rax
sub rax, r8
jbe 0x18006517d
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
mov r10d, dword [r12 + 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 [r12 + r9*4], ecx
cmova r10d, r11d
cmp r10b, 1
je 0x180065821
movzx r8d, r10b
cmp r8d, 0xff
jne 0x180065888
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x18006582d
jmp 0x18006517d
cmp byte [r12 + r9*4 + 8], 9
je 0x18006517d
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x1800658af
mov rdx, rax
sub rax, r8
jbe 0x180065b29
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
mov r10d, dword [r12 + 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 [r12 + r9*4], ecx
cmova r10d, r11d
cmp r10b, 1
je 0x1800658a3
movzx r8d, r10b
cmp r8d, 0xff
jne 0x180065944
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x1800658af
jmp 0x180065b29
movzx r10d, byte [rdx - 2]
add rdx, 0xfffffffffffffffe
cmp r10b, 0xc0
jge 0x18006596a
movzx r11d, byte [rdx - 1]
dec rdx
cmp r11b, 0xc0
jge 0x180065b15
movzx ebp, byte [rdx - 1]
dec rdx
and ebp, 7
shl ebp, 6
and r11d, 0x3f
or r11d, ebp
jmp 0x180065b19
cmp byte [r12 + r9*4 + 8], 5
je 0x18006517d
jmp 0x180065b29
cmp byte [r12 + r11*4 + 8], 0xd
jne 0x180065a3d
jmp 0x180065b29
add rdx, 0xfffffffffffffffe
and r10d, 0x1f
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp rdx, rax
je 0x1800655dc
cmp r9d, 0x110000
je 0x180065b29
mov r10d, 0x5a6
xor r13d, r13d
mov r11d, 0x5a6
jmp 0x1800659ac
mov r11, r10
sub r10, r13
jbe 0x180065a36
shr r10, 1
add r10, r13
lea r12, [r10 + r10*2]
lea r8, [0x1801e03f4]
mov ecx, dword [r8 + 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 [r8 + r12*4], r9d
cmova ebp, ecx
cmp bpl, 1
je 0x1800659a0
movzx ecx, bpl
cmp ecx, 0xff
jne 0x180065a05
inc r10
mov r13, r10
mov r10, r11
sub r10, r13
ja 0x1800659ac
jmp 0x180065a36
lea rcx, [0x1801e03f4]
cmp byte [rcx + r12*4 + 8], 0xd
mov r12, rcx
jne 0x180065a3d
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x180065ae0
dec rdx
cmp rdx, rax
jne 0x180065982
jmp 0x1800655dc
lea r12, [0x1801e03f4]
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x180065a58
mov rdx, rax
sub rax, r10
jbe 0x180065b29
shr rax, 1
add rax, r10
lea r11, [rax + rax*2]
mov ecx, dword [r12 + 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 [r12 + r11*4], r9d
cmova ebp, ecx
cmp bpl, 1
je 0x180065a4c
movzx ecx, bpl
cmp ecx, 0xff
jne 0x180065aaa
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x180065a58
jmp 0x180065b29
movzx eax, byte [r12 + r11*4 + 8]
cmp rax, 0x11
ja 0x180065b29
mov ecx, 0x20023
bt rcx, rax
jae 0x180065b29
test byte [rsp + 0x120], 1
je 0x18006517d
mov eax, dword [rsp + 0x118]
and al, 1
je 0x18006517d
jmp 0x180065b29
movzx r10d, byte [rdx - 2]
cmp r10b, 0xc0
jge 0x180065966
movzx r11d, byte [rdx - 3]
cmp r11b, 0xc0
jge 0x180065b11
movzx ecx, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and ecx, 7
shl ecx, 6
and r11d, 0x3f
or r11d, ecx
jmp 0x180065b19
add rdx, 0xfffffffffffffffd
and r11d, 0xf
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
jmp 0x18006596e
mov byte [rsp + 0x52], 1
movzx eax, byte [rsp + 0x50]
mov dword [rsp + 0x118], eax
movzx eax, byte [rsp + 0x51]
mov dword [rsp + 0x38], eax
movzx r11d, byte [rsp + 0x52]
movzx eax, byte [rsp + 0x53]
movzx edx, byte [rsp + 0x54]
movzx r14d, byte [rsp + 0x55]
movzx ebp, byte [rsp + 0x56]
movzx r15d, byte [rsp + 0x57]
movzx r12d, byte [rsp + 0x58]
movzx ecx, byte [rsp + 0x59]
mov dword [rsp + 0x2c], ecx
movzx ecx, byte [rsp + 0x5a]
mov dword [rsp + 0x120], ecx
movzx ecx, byte [rsp + 0x5b]
mov dword [rsp + 0x68], ecx
cmp qword [rsp + 0x198], 0
mov rbx, qword [rsp + 0x340]
mov r13d, r11d
je 0x180065bc4
mov esi, eax
mov edi, edx
mov r8, qword [rsp + 0x190]
mov rcx, qword [0x18021a960]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r11d, r13d
mov edx, edi
mov eax, esi
mov rdi, qword [rbx + 0x10]
test rdi, rdi
mov dword [rsp + 0x170], eax
mov dword [rsp + 0x168], edx
je 0x180065c20
js 0x1800665dc
mov rcx, qword [0x18021a960]
test rcx, rcx
jne 0x180065bfe
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x180065c11
mov rcx, rax
mov qword [0x18021a960], rax
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov r11d, r13d
jne 0x180065c25
mov ecx, 1
mov rdx, rdi
call fcn.18017f950
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], rdi
mov qword [rbx + 0x10], 0
mov rax, qword [rsp + 0x158]
lea rsi, [rax + 0x18]
cmp qword [rax + 0x20], 0
je 0x180065c73
mov r8, qword [rsi]
mov rcx, qword [0x18021a960]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r11d, 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 ecx, ecx
mov esi, dword [rsp + 0x68]
mov edi, dword [rsp + 0x38]
mov dword [rsp + 0x140], r11d
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x150], ebp
mov dword [rsp + 0x160], r15d
mov dword [rsp + 0x1a8], r12d
jmp 0x180065d2f
xor r13d, r13d
mov qword [rbx + 0x10], r13
mov cl, 1
mov qword [rsp + 0x180], rcx
lea rcx, [rsp + 0x70]
call fcn.180056650
mov qword [rsp + 0x40], rax
test rax, rax
je 0x1800665e0
mov r13, rdx
test byte [rsp + 0x180], 1
je 0x180065d80
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x180065d72
mov rcx, rbx
call fcn.18011f470
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 0x180065e61
test r13, r13
je 0x180066589
mov rax, qword [rsp + 0x40]
cmp byte [rax + r13 - 1], 0
js 0x180065ece
mov rax, r13
dec rax
je 0x180066589
mov rax, qword [rsp + 0x40]
cmp byte [rax + r13 - 2], 0
js 0x180065ece
mov rax, r13
add rax, 0xfffffffffffffffe
je 0x180066589
mov rax, qword [rsp + 0x40]
cmp byte [rax + r13 - 3], 0
js 0x180065ece
mov rax, r13
add rax, 0xfffffffffffffffd
je 0x180066589
mov rax, qword [rsp + 0x40]
cmp byte [rax + r13 - 4], 0
js 0x180065ece
mov rax, r13
add rax, 0xfffffffffffffffc
je 0x180066589
mov rax, qword [rsp + 0x40]
cmp byte [rax + r13 - 5], 0
js 0x180065ece
mov rax, r13
add rax, 0xfffffffffffffffb
je 0x180066589
mov rax, qword [rsp + 0x40]
cmp byte [rax + r13 - 6], 0
js 0x180065ece
mov rax, r13
add rax, 0xfffffffffffffffa
je 0x180066589
mov rax, qword [rsp + 0x40]
cmp byte [rax + r13 - 7], 0
js 0x180065ece
mov rax, r13
add rax, 0xfffffffffffffff9
jne 0x180065ece
jmp 0x180066589
movabs rax, 0x8080808080808080
mov rcx, qword [rsp + 0x40]
test qword [rcx], rax
jne 0x180065ece
mov rcx, qword [rsp + 0x40]
lea rax, [rcx + 7]
and rax, 0xfffffffffffffff8
sub rax, rcx
mov ecx, 8
cmove rax, rcx
lea rcx, [r13 - 8]
cmp rax, rcx
jae 0x180065eb5
movabs rdx, 0x8080808080808080
mov r8, qword [rsp + 0x40]
test qword [r8 + rax], rdx
jne 0x180065ece
add rax, 8
cmp rax, rcx
jb 0x180065e97
movabs rax, 0x8080808080808080
mov rdx, qword [rsp + 0x40]
test qword [rdx + rcx], rax
je 0x180066589
mov rax, qword [rbx + 8]
mov rdx, qword [rbx + 0x10]
sub rax, rdx
mov rcx, rdx
mov qword [rsp + 0x148], rdx
cmp rax, 3
jbe 0x180066501
mov rax, qword [rbx]
mov dword [rax + rdx], 0x2d2d6e78
add rdx, 4
mov qword [rbx + 0x10], rdx
mov cl, 1
mov qword [rsp + 0x180], rcx
test r13, r13
je 0x180065d37
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
add rcx, r13
mov r13, rcx
xor r10d, r10d
xor r11d, r11d
jmp 0x180065f40
mov byte [rax + rdx], dil
inc rdx
mov qword [rbx + 0x10], rdx
inc r11d
cmp rsi, r13
je 0x180066005
movzx edi, byte [rsi]
test dil, dil
js 0x180065f50
inc rsi
inc r10d
jmp 0x180065fc8
mov ecx, edi
and ecx, 0x1f
movzx r9d, byte [rsi + 1]
and r9d, 0x3f
cmp dil, 0xdf
jbe 0x180065f9e
movzx r8d, byte [rsi + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp dil, 0xf0
jb 0x180065fac
movzx edi, byte [rsi + 3]
and ecx, 7
shl ecx, 0x12
shl r8d, 6
and edi, 0x3f
or edi, r8d
or edi, ecx
cmp edi, 0x110000
je 0x180066005
add rsi, 4
jmp 0x180065fb9
add rsi, 2
shl ecx, 6
or ecx, r9d
mov edi, ecx
jmp 0x180065fb9
add rsi, 3
shl ecx, 0xc
or r8d, ecx
mov edi, r8d
inc r10d
cmp edi, 0x80
jae 0x180065f37
cmp rdx, qword [rbx + 8]
jne 0x180065f29
mov rcx, rbx
mov r15, r13
mov r13d, r10d
mov r14d, r11d
call fcn.18011f470
mov r11d, r14d
mov r14d, dword [rsp + 0x30]
mov r10d, r13d
mov r13, r15
mov r15d, dword [rsp + 0x160]
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
jmp 0x180065f29
test r11d, r11d
mov esi, dword [rsp + 0x68]
mov edi, dword [rsp + 0x38]
je 0x180066051
cmp rdx, qword [rbx + 8]
jne 0x180066043
mov rcx, rbx
mov r15, r13
mov r13d, r10d
mov r14d, r11d
call fcn.18011f470
mov r11d, r14d
mov r14d, dword [rsp + 0x30]
mov r10d, r13d
mov r13, r15
mov r15d, dword [rsp + 0x160]
mov rdx, qword [rbx + 0x10]
mov rax, qword [rbx]
mov byte [rax + rdx], 0x2d
inc rdx
mov qword [rbx + 0x10], rdx
cmp r11d, r10d
jae 0x180065d37
mov dword [rsp + 0x178], r10d
mov eax, 0x80
mov ecx, 0x48
mov qword [rsp + 0x130], rcx
xor r8d, r8d
mov dword [rsp + 0x60], r11d
mov dword [rsp + 0x138], r11d
mov r11d, dword [rsp + 0x140]
mov qword [rsp + 0x48], r13
mov rcx, qword [rsp + 0x40]
jmp 0x1800660a3
inc rcx
cmp eax, ebp
jbe 0x180066138
cmp rcx, r13
je 0x1800665dc
movzx ebp, byte [rcx]
test bpl, bpl
jns 0x180066098
mov edx, ebp
and edx, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp bpl, 0xdf
jbe 0x180066106
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp bpl, 0xf0
jb 0x180066114
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 0x1800665dc
add rcx, 4
jmp 0x18006609b
add rcx, 2
shl edx, 6
or edx, r10d
mov ebp, edx
jmp 0x18006609b
add rcx, 3
shl edx, 0xc
or r9d, edx
mov ebp, r9d
jmp 0x18006609b
inc rcx
cmp ebp, edx
mov r9d, edx
cmovb r9d, ebp
cmp edx, eax
cmovae ebp, r9d
cmp rcx, r13
je 0x1800661cf
movzx edx, byte [rcx]
test dl, dl
jns 0x180066126
mov r13d, r11d
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp dl, 0xdf
jbe 0x18006619f
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x1800661af
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, r13d
je 0x1800661ca
add rcx, 4
jmp 0x1800661c0
add rcx, 2
shl r9d, 6
or r9d, r11d
mov edx, r9d
jmp 0x1800661bd
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
mov r11d, r13d
mov r13, qword [rsp + 0x48]
jmp 0x180066129
mov r13, qword [rsp + 0x48]
mov ecx, dword [rsp + 0x138]
inc ecx
je 0x1800665dc
mov r9d, ebp
sub r9d, eax
mov eax, r8d
not eax
xor edx, edx
div ecx
cmp r9d, eax
ja 0x18006652c
mov edx, r9d
imul edx, ecx
add edx, r8d
mov dword [rsp + 0x128], edx
mov rcx, qword [rsp + 0x40]
jmp 0x180066226
mov r9d, dword [rsp + 0x138]
mov r8d, dword [rsp + 0x128]
cmp rcx, r13
je 0x1800664d0
movzx eax, byte [rcx]
test al, al
js 0x180066236
inc rcx
cmp eax, ebp
jae 0x1800662b1
jmp 0x1800662a4
mov r9, rcx
mov ecx, eax
and ecx, 0x1f
movzx r8d, byte [r9 + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x180066284
movzx edx, byte [r9 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp al, 0xf0
jb 0x180066292
movzx eax, byte [r9 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and eax, 0x3f
or eax, edx
or eax, ecx
cmp eax, 0x110000
je 0x1800664ef
add r9, 4
jmp 0x18006629d
add r9, 2
shl ecx, 6
or ecx, r8d
mov eax, ecx
jmp 0x18006629d
add r9, 3
shl ecx, 0xc
or edx, ecx
mov eax, edx
mov rcx, r9
cmp eax, ebp
jae 0x1800662b1
inc dword [rsp + 0x128]
je 0x18006652c
cmp eax, ebp
jne 0x18006620d
mov qword [rsp + 0x188], rcx
mov r8, qword [rsp + 0x130]
lea r12d, [r8 + 0x1a]
lea ecx, [r8 - 0x24]
neg ecx
cmp r12d, 0x25
mov eax, 0x1a
cmovb ecx, eax
cmp r8d, 0x24
mov eax, 1
cmovae ecx, eax
mov eax, dword [rsp + 0x128]
mov r13d, eax
cmp eax, ecx
jae 0x1800663cc
mov edx, 0x61
cmp r13d, 0x1a
jb 0x180066317
mov edx, 0x16
cmp r13d, 0x23
ja 0x1800665dc
add edx, r13d
mov rbx, qword [rsp + 0x340]
mov rcx, rbx
call fcn.18000cec0
mov eax, dword [rsp + 0x138]
mov r9d, eax
inc r9d
mov edi, dword [rsp + 0x38]
mov r11d, dword [rsp + 0x140]
mov r15d, dword [rsp + 0x160]
mov r12d, dword [rsp + 0x1a8]
je 0x1800665dc
cmp eax, dword [rsp + 0x60]
mov ecx, 2
mov eax, 0x2bc
cmove ecx, eax
xor r8d, r8d
mov eax, dword [rsp + 0x128]
xor edx, edx
div ecx
mov ecx, eax
xor edx, edx
div r9d
add eax, ecx
cmp eax, 0x1c8
mov r14d, dword [rsp + 0x30]
mov esi, dword [rsp + 0x68]
mov r13d, 0xd41d41d5
jb 0x180066483
xor ecx, ecx
nop dword [rax]
mov edx, eax
imul rdx, r13
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 0x1800663a0
jmp 0x180066488
mov esi, r8d
neg esi
mov ebx, 0x48
mov r13d, dword [rsp + 0x128]
jmp 0x18006641d
mov rax, qword [r15]
mov byte [rax + rdx], dil
inc rdx
mov qword [r15 + 0x10], rdx
mov eax, r13d
xor edx, edx
div r14d
lea ecx, [rsi + rbx]
cmp ebx, r12d
mov edx, 0x1a
cmovae ecx, edx
cmp ebx, r8d
mov edx, 1
cmovbe ecx, edx
add ebx, 0x24
mov r13d, eax
cmp eax, ecx
jb 0x1800662fd
mov r14d, ecx
sub r14d, 0x24
je 0x1800665dc
sub r13d, ecx
neg r14d
mov eax, r13d
xor edx, edx
div r14d
add edx, ecx
mov edi, 0x61
cmp edx, 0x1a
jb 0x180066452
mov edi, 0x16
cmp edx, 0x23
ja 0x1800665dc
add edi, edx
mov r15, qword [rsp + 0x340]
mov rdx, qword [r15 + 0x10]
cmp rdx, qword [r15 + 8]
jne 0x1800663e0
mov rcx, r15
call fcn.18011f470
mov r8, qword [rsp + 0x130]
mov rdx, qword [r15 + 0x10]
jmp 0x1800663e0
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 + 0x130], rax
mov dword [rsp + 0x128], r8d
mov dword [rsp + 0x138], r9d
mov r13, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x188]
cmp rcx, r13
jne 0x180066226
inc r8d
inc ebp
mov dword [rsp + 0x138], r9d
mov eax, ebp
cmp r9d, dword [rsp + 0x178]
jb 0x180066091
jmp 0x180066520
mov r9d, dword [rsp + 0x138]
mov r8d, dword [rsp + 0x128]
jmp 0x1800664d0
mov r8d, 4
mov rcx, rbx
mov rdx, qword [rsp + 0x148]
call fcn.180181bc0
mov rdx, qword [rbx + 0x10]
jmp 0x180065eee
mov ebp, dword [rsp + 0x150]
jmp 0x180065d37
mov rax, qword [rbx + 0x10]
mov cl, 1
mov dword [rsp + 0x118], ecx
mov cl, 1
mov r13, qword [rsp + 0x148]
cmp rax, r13
mov ebp, dword [rsp + 0x150]
jb 0x180065d2f
mov cl, 1
mov dword [rsp + 0x118], ecx
test r13, r13
je 0x180065d26
cmp rax, r13
jbe 0x1800665c0
mov rax, qword [rbx]
mov rcx, qword [rsp + 0x148]
cmp byte [rax + rcx], 0xbf
mov r13, qword [rsp + 0x148]
jg 0x180065d29
jmp 0x1800665dc
mov edi, ebp
mov rax, qword [rbx + 8]
mov rbp, qword [rbx + 0x10]
sub rax, rbp
cmp rax, r13
jb 0x1800665c8
mov rcx, qword [rbx]
add rcx, rbp
mov rdx, qword [rsp + 0x40]
mov r8, r13
call fcn.180171d20
add r13, rbp
mov ebp, edi
mov esi, dword [rsp + 0x68]
mov edi, dword [rsp + 0x38]
jmp 0x180065d29
je 0x180065d29
jmp 0x1800665dc
mov rcx, rbx
mov rdx, rbp
mov r8, r13
call fcn.180181bc0
mov rbp, qword [rbx + 0x10]
jmp 0x18006659b
ud2
mov r13, qword [rsp + 0x210]
mov edx, dword [rsp + 0x170]
mov r8d, dword [rsp + 0x168]
mov r11d, dword [rsp + 0x140]
mov rax, qword [rsp + 0x158]
cmp byte [rax + 0x32], 0
jne 0x180062f5c
jmp 0x180063141
ud2
mov rcx, r14
mov r9, rdx
call fcn.18017fb10
ud2
mov rdx, r14
xor r8d, r8d
mov r9, rbp
call fcn.18017fb10
ud2
mov rdx, r14
mov r8, r12
mov r9, r14
call fcn.18017fb10
ud2