Function at 0x18005b3b0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2c8
movdqa xmmword [rsp + 0x2b0], xmm15
movdqa xmmword [rsp + 0x2a0], xmm14
movdqa xmmword [rsp + 0x290], xmm13
movdqa xmmword [rsp + 0x280], xmm12
movdqa xmmword [rsp + 0x270], xmm11
movdqa xmmword [rsp + 0x260], xmm10
movdqa xmmword [rsp + 0x250], xmm9
movdqa xmmword [rsp + 0x240], xmm8
movdqa xmmword [rsp + 0x230], xmm7
movaps xmmword [rsp + 0x220], xmm6
mov r14, r9
mov r15, r8
mov qword [rsp + 0x140], rdx
mov r13, rcx
mov rbx, qword [rsp + 0x330]
test r9, r9
je 0x18005b575
lea rax, [r15 + r14]
xor edx, edx
movdqa xmm0, xmmword [0x180172ca0]
mov rcx, r15
jmp 0x18005b46f
xor r9d, r9d
mov rdx, r9
cmp rcx, rax
je 0x18005c2cf
movzx r10d, byte [rcx]
test r10b, r10b
js 0x18005b490
inc rcx
mov r8d, r10d
cmp r8d, 0x2e
je 0x18005b460
jmp 0x18005b520
mov r8d, r10d
and r8d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp r10b, 0xdf
jbe 0x18005b4ea
movzx r9d, byte [rcx + 2]
shl r11d, 6
and r9d, 0x3f
or r9d, r11d
cmp r10b, 0xf0
jb 0x18005b500
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
je 0x18005b460
jmp 0x18005b520
add rcx, 2
shl r8d, 6
or r8d, r11d
cmp r8d, 0x2e
jne 0x18005b520
jmp 0x18005b460
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov r8d, r9d
cmp r8d, 0x2e
je 0x18005b460
nop dword [rax + rax]
test rdx, rdx
jne 0x18005b52b
cmp r8d, 0x2d
je 0x18005b575
mov r9d, 5
cmp rdx, 5
jae 0x18005b55a
movdqa xmmword [rsp + 0x50], xmm0
cmp rdx, 4
je 0x18005f81c
cmp r8d, dword [rsp + rdx*4 + 0x50]
jne 0x18005b55a
inc rdx
mov r9, rdx
cmp rdx, 4
je 0x18005b575
lea edx, [r8 - 0x7b]
cmp edx, 0xffffffe5
ja 0x18005b463
add r8d, 0xffffffc6
cmp r8d, 0xfffffff6
jae 0x18005b463
mov qword [rsp + 0x200], r13
mov r8, qword [rsp + 0x140]
mov eax, dword [r8 + 0x30]
movzx ecx, byte [r8 + 0x34]
add r14, r15
xorps xmm6, xmm6
movups xmmword [rsp + 0xb8], xmm6
mov byte [rsp + 0xc8], 0
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x60], 0
mov word [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
mov byte [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
mov byte [rsp + 0x78], 0
mov dword [rsp + 0x7c], 0
mov byte [rsp + 0x80], 0
mov dword [rsp + 0x84], 0
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x90], r14
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xa0], 0
mov byte [rsp + 0xb4], cl
shl rcx, 0x20
or rcx, rax
mov qword [rsp + 0x118], rcx
mov qword [r8 + 0x10], 0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x138], rcx
movups xmmword [rsp + 0x182], xmm6
lea r12, [rsp + 0x60]
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0xd0], 0
mov word [rsp + 0xd4], 0
movzx eax, word [rsp + 0x190]
mov word [rsp + 0xe6], ax
movdqu xmm0, xmmword [rsp + 0x180]
movdqu xmmword [rsp + 0xd6], xmm0
mov dword [rsp + 0xf0], 0x110000
mov byte [rsp + 0xf4], 0
lea rsi, [0x1801ada94]
mov edi, 0xff
lea rbx, [0x1801b1564]
xor ecx, ecx
mov ebp, dword [rsp + 0xd0]
mov r14, qword [rsp + 0xd8]
test ebp, ebp
je 0x18005b720
test rcx, rcx
je 0x18005b7d7
mov rdx, qword [rsp + 0xe8]
cmp rcx, 1
jne 0x18005c215
cmp rax, rdx
jb 0x18005c255
mov qword [rsp + 0xe8], 0
jmp 0x18005b75d
test rcx, rcx
je 0x18005b7d7
movzx edx, word [rsp + 0xd4]
cmp rcx, 1
jne 0x18005c21f
cmp dx, 4
ja 0x18005f81c
cmp rax, rdx
jb 0x18005c24d
test rdx, rdx
je 0x18005b75d
mov word [rsp + 0xd4], 0
mov qword [rsp + 0x50], 0
jmp 0x18005b7d7
mov r14d, ebp
mov eax, 0xdee95c4d
imul r14, rax
shr r14, 0x29
lea edx, [r14 + 0x1100]
mov rcx, r12
call fcn.180059b80
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.180059b80
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 0x18005b7d7
add ebp, 0x11a7
mov edx, ebp
mov rcx, r12
call fcn.180059b80
mov rdx, qword [rsp + 0xc0]
test rdx, rdx
jne 0x18005bad0
movzx ecx, byte [rsp + 0xb0]
cmp cl, 2
je 0x18005bcd3
mov r8, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
mov r10, qword [rsp + 0x90]
mov rax, qword [rsp + 0x98]
movzx r11d, byte [rsp + 0xb1]
mov r13, qword [rsp + 0xa8]
test r8, r8
je 0x18005b844
cmp r8, r13
jne 0x18005bfbe
mov qword [rsp + 0xa0], 0
cmp r14, r10
je 0x18005bccb
lea rdx, [r14 + 1]
mov qword [rsp + 0x88], rdx
movzx r8d, byte [r14]
test r8b, r8b
js 0x18005b880
mov r14, rdx
mov edx, r8d
lea r8d, [rdx - 0x2d]
cmp r8d, 2
jae 0x18005b930
jmp 0x18005bb20
mov edx, r8d
and edx, 0x1f
lea r9, [r14 + 2]
mov qword [rsp + 0x88], r9
movzx ebp, byte [r14 + 1]
and ebp, 0x3f
cmp r8b, 0xdf
jbe 0x18005b8f8
lea r15, [r14 + 3]
mov qword [rsp + 0x88], r15
movzx r9d, byte [r14 + 2]
shl ebp, 6
and r9d, 0x3f
or r9d, ebp
cmp r8b, 0xf0
jb 0x18005b90f
lea r8, [r14 + 4]
mov qword [rsp + 0x88], 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 0x18005b930
jmp 0x18005bb20
shl edx, 6
or edx, ebp
mov r14, r9
lea r8d, [rdx - 0x2d]
cmp r8d, 2
jae 0x18005b930
jmp 0x18005bb20
shl edx, 0xc
or r9d, edx
mov r14, r15
mov edx, r9d
lea r8d, [rdx - 0x2d]
cmp r8d, 2
jb 0x18005bb20
nop dword [rax]
cmp edx, 0x110000
je 0x18005bccb
lea r8d, [rdx - 0x61]
cmp r8d, 0x1a
jb 0x18005bb20
lea r8d, [rdx - 0x30]
cmp r8d, 0xa
jb 0x18005bb20
mov r8d, 0x75a
xor ebp, ebp
mov r9d, 0x75a
jmp 0x18005b978
mov r9, r8
sub r8, rbp
jbe 0x18005b9ad
shr r8, 1
add r8, rbp
xor r15d, r15d
cmp dword [rsi + r8*8], edx
setne r15b
cmovb r15d, edi
cmp r15b, 1
je 0x18005b970
movzx ebp, r15b
cmp ebp, 0xff
jne 0x18005b9c0
inc r8
mov rbp, r8
mov r8, r9
sub r8, rbp
ja 0x18005b978
dec rbp
mov r8, rbp
cmp rbp, 0x759
ja 0x18005f81c
movzx ebp, word [rsi + r8*8 + 4]
mov r9d, ebp
and r9d, 0x7fff
test bp, bp
js 0x18005b9e7
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 0x18005f81c
movzx r9d, r9w
movzx ebp, byte [rbx + r9*4]
mov r8d, 0
cmp ebp, 1
je case.default.0x18005ba21
mov r8d, ebp
lea r15, [0x18005fcc4]
movsxd r8, dword [r15 + r8*4]
add r8, r15
jmp r8
mov ecx, dword [rsp + 0x60]
mov rax, qword [rsp + 0xb8]
test ecx, ecx
je 0x18005bd43
mov r8, qword [rsp + 0x68]
mov r9, qword [rsp + 0x78]
jmp 0x18005bd58
cmp edx, 0x110000
je 0x18005bccb
cmp byte [rsp + 0xc8], 0
je 0x18005bbec
cmp edx, 0x80
jb 0x18005b7cf
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x18005b768
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x1f
and r8d, 0xfffffffe
lea r9, [0x1801d27ac]
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, [0x1801d4574]
mov r14, qword [r8 + r9]
cmp edx, r14d
jne 0x18005bfe9
mov rax, r14
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0x1668
jae 0x18005f81c
shr r14, 0x30
movzx eax, ax
mov ecx, 0x1667
sub rcx, rax
cmp rcx, r14
jb 0x18005f81c
lea rcx, [0x1801dbc94]
lea r13, [rcx + rax*4]
test r14, r14
jne 0x18005c06b
jmp 0x18005b7d7
cmp edx, 0x80
jb 0x18005b7cf
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x18005b768
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x1801ca1f0]
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, [0x1801cb20c]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
jne 0x18005b7cf
mov rax, r14
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0xd4f
jae 0x18005f81c
shr r14, 0x30
movzx eax, ax
mov ecx, 0xd4e
sub rcx, rax
cmp rcx, r14
jb 0x18005f81c
test r14, r14
je 0x18005b7d7
lea rcx, [0x1801cf274]
lea r13, [rcx + rax*4]
shl r14, 2
xor r15d, r15d
nop word cs:[rax + rax]
mov edx, dword [r13 + r15]
mov rcx, r12
call fcn.180059b80
add r15, 4
cmp r14, r15
jne 0x18005bcb0
jmp 0x18005b7d7
mov byte [rsp + 0xb0], 2
cmp dword [rsp + 0x60], 0
je 0x18005bce9
mov rax, qword [rsp + 0x78]
test rax, rax
jne 0x18005bcf7
jmp 0x18005c1a0
movzx eax, word [rsp + 0x64]
test rax, rax
je 0x18005c1a0
mov rcx, r12
call fcn.180059430
mov ecx, dword [rsp + 0x60]
test ecx, ecx
je 0x18005bd26
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0xc0], rdx
mov rax, qword [rsp + 0xb8]
test ecx, ecx
jne 0x18005bae4
jmp 0x18005bd43
movzx edx, word [rsp + 0x64]
mov qword [rsp + 0xc0], rdx
mov rax, qword [rsp + 0xb8]
test ecx, ecx
jne 0x18005bae4
movzx r9d, word [rsp + 0x64]
lea r8, [rsp + 0x68]
cmp r9, 5
jae 0x18005f81c
cmp rax, r9
jae 0x18005f81c
mov r14d, dword [r8 + rax*8 + 4]
inc rax
cmp rax, rdx
jne 0x18005be20
test ecx, ecx
je 0x18005be2a
mov rax, qword [rsp + 0x78]
sub rax, rdx
je 0x18005be38
xor ecx, ecx
nop word [rax + rax]
mov rdx, qword [rsp + 0xc0]
add rdx, rcx
cmp dword [rsp + 0x60], 0
je 0x18005bdc0
mov r8, qword [rsp + 0x78]
cmp rdx, r8
jae 0x18005f81c
mov r9, qword [rsp + 0x68]
jmp 0x18005bdde
movzx r8d, word [rsp + 0x64]
cmp r8, 5
jae 0x18005f81c
lea r9, [rsp + 0x68]
cmp rdx, r8
jae 0x18005f81c
cmp rcx, r8
jae 0x18005f81c
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 0x18005bd90
mov ecx, dword [rsp + 0x60]
test ecx, ecx
jne 0x18005be3c
movzx ecx, word [rsp + 0x64]
cmp rax, rcx
jae 0x18005be48
mov word [rsp + 0x64], ax
jmp 0x18005be48
mov qword [rsp + 0xb8], rax
jmp 0x18005be53
movzx eax, word [rsp + 0x64]
sub rax, rdx
jne 0x18005bd88
test ecx, ecx
je 0x18005be0e
cmp qword [rsp + 0x78], rax
jb 0x18005be48
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0xb8]
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, [0x1801c6814]
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, [0x1801c6f48]
mov ebp, dword [rax + rcx]
mov eax, ebp
shr eax, 8
cmp eax, r14d
mov eax, 0
cmovne ebp, eax
mov r13d, dword [rsp + 0xf0]
cmp r13d, 0x110000
jne 0x18005bee0
test bpl, bpl
jne 0x18005c190
mov dword [rsp + 0xf0], r14d
jmp 0x18005b7d7
cmp byte [rsp + 0xf4], 0
je 0x18005bf12
cmp byte [rsp + 0xf5], bpl
jae 0x18005bf32
mov ecx, r13d
mov edx, r14d
call fcn.18010ae30
cmp eax, 0x110000
je 0x18005bf3b
mov dword [rsp + 0xf0], eax
jmp 0x18005b7d7
mov ecx, r13d
mov edx, r14d
call fcn.18010ae30
cmp eax, 0x110000
jne 0x18005bfdd
test bpl, bpl
jne 0x18005bf3b
jmp 0x18005c208
test bpl, bpl
je 0x18005c1e1
cmp dword [rsp + 0xd0], 0
je 0x18005bf85
mov rdx, qword [rsp + 0xe8]
cmp rdx, qword [rsp + 0xe0]
jne 0x18005bf6c
lea rcx, [rsp + 0xd8]
call fcn.180059d60
mov rdx, qword [rsp + 0xe8]
mov rax, qword [rsp + 0xd8]
mov dword [rax + rdx*4], r14d
inc rdx
mov qword [rsp + 0xe8], rdx
jmp 0x18005bfa9
movzx eax, word [rsp + 0xd4]
cmp rax, 3
ja 0x18005c115
mov dword [rsp + rax*4 + 0xd8], r14d
inc eax
mov word [rsp + 0xd4], ax
mov byte [rsp + 0xf4], 1
mov byte [rsp + 0xf5], bpl
jmp 0x18005b7d7
lea rax, [r8 + 1]
mov qword [rsp + 0xa0], rax
movzx eax, byte [r8]
test al, al
js 0x18005c09b
mov edx, eax
jmp 0x18005bb20
mov dword [rsp + 0xf0], eax
jmp 0x18005b7d7
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x1801ca1f0]
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, [0x1801cb20c]
mov r14, qword [rcx + rax*8]
cmp edx, r14d
jne 0x18005b7cf
mov rax, r14
shr rax, 0x20
movzx ecx, ax
cmp ecx, 0xd4f
jae 0x18005f81c
shr r14, 0x30
movzx eax, ax
mov ecx, 0xd4e
sub rcx, rax
cmp rcx, r14
jb 0x18005f81c
lea rcx, [0x1801cf274]
lea r13, [rcx + rax*4]
test r14, r14
je 0x18005b7d7
shl r14, 2
xor r15d, r15d
nop word cs:[rax + rax]
mov edx, dword [r13 + r15]
mov rcx, r12
call fcn.180059b80
add r15, 4
cmp r14, r15
jne 0x18005c080
jmp 0x18005b7d7
mov edx, eax
and edx, 0x1f
lea rcx, [r8 + 2]
mov qword [rsp + 0xa0], rcx
movzx r9d, byte [r8 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x18005c0fe
lea rcx, [r8 + 3]
mov qword [rsp + 0xa0], rcx
movzx ecx, byte [r8 + 2]
shl r9d, 6
and ecx, 0x3f
or ecx, r9d
cmp al, 0xf0
jb 0x18005c109
lea rax, [r8 + 4]
mov qword [rsp + 0xa0], rax
movzx eax, byte [r8 + 3]
and edx, 7
shl edx, 0x12
shl ecx, 6
and eax, 0x3f
or eax, ecx
or eax, edx
jmp 0x18005bfd6
shl edx, 6
or edx, r9d
jmp 0x18005bb20
shl edx, 0xc
or ecx, edx
mov edx, ecx
jmp 0x18005bb20
lea rcx, [rsp + 0x1b0]
lea rdx, [rsp + 0xd4]
mov r8d, r14d
call fcn.180168d20
cmp dword [rsp + 0xd0], 0
je 0x18005c159
cmp qword [rsp + 0xe0], 0
je 0x18005c159
mov r8, qword [rsp + 0xd8]
mov rcx, qword [0x1801fb9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
movdqu xmm0, xmmword [rsp + 0x1b0]
movdqu xmm1, xmmword [rsp + 0x1c0]
lea rax, [rsp + 0xb8]
movdqu xmmword [rax + 0x28], xmm1
movdqu xmmword [rax + 0x18], xmm0
jmp 0x18005bfa9
mov r13d, r14d
jmp 0x18005c2b0
mov qword [rsp + 0x50], 2
mov qword [rsp + 0x58], 0
mov r13d, dword [rsp + 0xf0]
mov ecx, 2
mov eax, 0
cmp r13d, 0x110000
je 0x18005b6cd
mov dword [rsp + 0xf0], 0x110000
jmp 0x18005c2b0
mov dword [rsp + 0xf0], r14d
mov byte [rsp + 0xf4], 0
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x58], 0
jmp 0x18005c2b0
mov dword [rsp + 0xf0], r14d
jmp 0x18005c2b0
cmp rax, rdx
jae 0x18005c26c
mov rcx, r14
jmp 0x18005c236
cmp dx, 5
jae 0x18005f81c
lea rcx, [rsp + 0xd8]
cmp rax, rdx
jae 0x18005c27a
mov r13d, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0x50], 2
mov qword [rsp + 0x58], rax
jmp 0x18005c2b0
lea r14, [rsp + 0xd8]
mov r13d, dword [r14 + rax*4]
inc rax
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x58], rax
jmp 0x18005c2b0
mov qword [rsp + 0xe8], 0
jmp 0x18005c289
test rdx, rdx
je 0x18005c289
mov word [rsp + 0xd4], 0
mov r13d, dword [rsp + 0xf0]
mov dword [rsp + 0xf0], 0x110000
cmp r13d, 0x110000
je 0x18005c618
nop dword [rax]
mov rcx, qword [rsp + 0x140]
mov edx, r13d
call fcn.18000b970
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
jmp 0x18005b6cd
mov rax, qword [rbx + 8]
mov r12, qword [rbx + 0x10]
sub rax, r12
cmp rax, r14
jb 0x18005c601
mov rcx, qword [rbx]
add rcx, r12
mov rdx, r15
mov r8, r14
call fcn.180164e10
add r12, r14
mov qword [rbx + 0x10], r12
xor ebp, ebp
xor r14d, r14d
mov dword [rsp + 0x118], 0
xor edx, edx
xor r8d, r8d
xor r9d, r9d
xor r10d, r10d
xor r11d, r11d
xor esi, esi
xor edi, edi
xor r12d, r12d
xor r15d, r15d
mov rax, qword [rsp + 0x140]
cmp byte [rax + 0x32], 0
je 0x18005c530
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], r11d
mov dword [rsp + 0x110], esi
mov dword [rsp + 0x158], edi
mov dword [rsp + 0x24], r15d
mov dword [rsp + 0x138], ebp
je 0x18005c45a
cmp byte [rbx + r14 - 1], 0x2e
jne 0x18005c387
dec r14
je 0x18005c46f
mov dword [rsp + 0x38], r12d
mov esi, r10d
mov ebp, r9d
mov r12d, r8d
mov r15d, edx
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x80], 1
mov qword [rsp + 0x88], rax
mov word [rsp + 0x90], 1
lea rdi, [rsp + 0x50]
nop word cs:[rax + rax]
mov rcx, rdi
call fcn.18004f230
test rax, rax
je 0x18005c402
test rdx, rdx
jne 0x18005c3f0
test rax, rax
mov edx, r15d
mov r8d, r12d
mov r9d, ebp
mov r10d, esi
mov r11d, dword [rsp + 0x28]
mov esi, dword [rsp + 0x110]
mov r15d, dword [rsp + 0x24]
mov r12d, dword [rsp + 0x38]
mov ebp, dword [rsp + 0x138]
movabs rax, 0x2e0000002e
je 0x18005c44c
mov r12b, 1
cmp r14, 0xfd
ja 0x18005c528
jmp 0x18005c482
cmp r14, 0xfd
jbe 0x18005c482
jmp 0x18005c528
xor r14d, r14d
mov r12b, 1
cmp r14, 0xfd
ja 0x18005c528
jmp 0x18005c482
xor r14d, r14d
mov r12b, 1
cmp r14, 0xfd
ja 0x18005c528
mov dword [rsp + 0x38], r12d
mov esi, r10d
mov ebp, r9d
mov r12d, r8d
mov r15d, edx
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x80], 1
mov qword [rsp + 0x88], rax
mov word [rsp + 0x90], 1
lea rdi, [rsp + 0x50]
nop dword [rax]
mov rcx, rdi
call fcn.18004f230
test rax, rax
je 0x18005c4f3
cmp rdx, 0x40
jb 0x18005c4e0
test rax, rax
mov edx, r15d
mov r8d, r12d
mov r9d, ebp
mov r10d, esi
mov r11d, dword [rsp + 0x28]
mov esi, dword [rsp + 0x110]
mov edi, dword [rsp + 0x158]
mov r15d, dword [rsp + 0x24]
mov r12d, dword [rsp + 0x38]
mov ebp, dword [rsp + 0x138]
je 0x18005c52b
mov dil, 1
mov r14d, dword [rsp + 0x30]
mov eax, r14d
or al, bpl
mov ebx, dword [rsp + 0x118]
mov ecx, ebx
or cl, dl
or cl, al
mov eax, r8d
or al, r9b
or al, r10b
or al, cl
mov ecx, r11d
or cl, sil
or cl, dil
or cl, r12b
or cl, al
mov al, 2
or cl, r15b
je 0x18005c591
mov byte [r13 + 1], r14b
mov byte [r13 + 2], bl
mov byte [r13 + 3], dl
mov byte [r13 + 4], r8b
mov byte [r13 + 5], r9b
mov byte [r13 + 6], r10b
mov byte [r13 + 7], r11b
mov byte [r13 + 8], sil
mov byte [r13 + 9], dil
mov byte [r13 + 0xa], r12b
mov byte [r13 + 0xb], r15b
mov eax, ebp
mov byte [r13], al
movaps xmm6, xmmword [rsp + 0x220]
movaps xmm7, xmmword [rsp + 0x230]
movaps xmm8, xmmword [rsp + 0x240]
movaps xmm9, xmmword [rsp + 0x250]
movaps xmm10, xmmword [rsp + 0x260]
movaps xmm11, xmmword [rsp + 0x270]
movaps xmm12, xmmword [rsp + 0x280]
movaps xmm13, xmmword [rsp + 0x290]
movaps xmm14, xmmword [rsp + 0x2a0]
movaps xmm15, xmmword [rsp + 0x2b0]
add rsp, 0x2c8
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.180165a60
mov r12, qword [rbx + 0x10]
jmp 0x18005c2e3
cmp dword [rsp + 0x60], 0
je 0x18005c63b
cmp qword [rsp + 0x70], 0
je 0x18005c63b
mov r8, qword [rsp + 0x68]
mov rcx, qword [0x1801fb9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
test ebp, ebp
mov rbx, qword [rsp + 0x330]
je 0x18005c664
cmp qword [rsp + 0xe0], 0
je 0x18005c664
mov rcx, qword [0x1801fb9b8]
xor edx, edx
mov r8, r14
call qword [sym.imp.kernel32.dll_HeapFree]
movabs rdi, 0x8080808080808080
mov qword [rsp + 0x180], 8
xorps xmm6, xmm6
movups xmmword [rsp + 0x188], xmm6
mov rcx, qword [rsp + 0x140]
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 + 0x118]
and rax, 0xffffffffffff00ff
mov qword [rsp + 0x1a0], rax
mov r15d, 0xff
movdqa xmm7, xmmword [0x180172cb0]
movdqa xmm8, xmmword [0x1801727b0]
movdqa xmm14, xmmword [0x180172ae0]
movdqa xmm15, xmmword [0x180172d10]
movdqa xmm9, xmmword [0x180172d20]
movdqa xmm10, xmmword [0x180172d30]
movdqa xmm12, xmmword [0x180172d50]
movdqa xmm13, xmmword [0x180172d60]
movdqa xmm11, xmmword [0x180172d70]
xor esi, esi
mov dword [rsp + 0x24], 0
jmp 0x18005c788
mov byte [rsp + 0x40], 1
mov sil, 1
mov al, 1
mov dword [rsp + 0x24], eax
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
lea rcx, [rsp + 0x1b0]
call fcn.18004f230
test rax, rax
je 0x18005e4c4
mov rbp, rax
mov r13, rdx
test sil, 1
je 0x18005c7ce
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x18005c7c0
mov rcx, rbx
call fcn.1800346d0
mov rdx, qword [rbx + 0x10]
mov rax, qword [rbx]
mov byte [rax + rdx], 0x2e
inc rdx
mov qword [rbx + 0x10], rdx
cmp r13, 4
jb 0x18005c7e1
cmp dword [rbp], 0x2d2d6e78
je 0x18005c97b
test byte [rsp + 0x24], 1
jne 0x18005c92f
test r13, r13
lea r14, [0x1801c244c]
je 0x18005c927
mov rax, rbp
add rax, r13
mov rcx, rbp
jmp 0x18005c810
cmp rcx, rax
je 0x18005c927
movzx r9d, byte [rcx]
test r9b, r9b
js 0x18005c821
inc rcx
mov edx, r9d
jmp 0x18005c884
mov edx, r9d
and edx, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp r9b, 0xdf
jbe 0x18005c86b
movzx r8d, byte [rcx + 2]
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
cmp r9b, 0xf0
jb 0x18005c877
movzx r9d, byte [rcx + 3]
add rcx, 4
and edx, 7
shl edx, 0x12
shl r8d, 6
and r9d, 0x3f
or r9d, r8d
or r9d, edx
jmp 0x18005c81c
add rcx, 2
shl edx, 6
or edx, r10d
jmp 0x18005c884
add rcx, 3
shl edx, 0xc
or r8d, edx
mov edx, r8d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x18005c807
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x18005c8bc
mov r9, r8
sub r8, r10
jbe 0x18005c807
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
xor esi, esi
cmp dword [r14 + r11*4], edx
seta sil
cmp dword [r14 + r11*4 + 4], edx
cmovb esi, r15d
cmp sil, 1
je 0x18005c8b0
movzx r10d, sil
cmp r10d, 0xff
jne 0x18005c8ff
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x18005c8bc
jmp 0x18005c807
movzx edx, byte [r14 + r11*4 + 8]
cmp rdx, 0x11
ja 0x18005c807
mov r8d, 0x20003
bt r8, rdx
jae 0x18005c807
mov al, 1
mov dword [rsp + 0x24], eax
jmp 0x18005c92f
mov dword [rsp + 0x24], 0
mov rcx, rbp
mov rdx, r13
mov r8, qword [rsp + 0x118]
lea r9, [rsp + 0x40]
call fcn.18005a650
mov rax, qword [rbx + 8]
mov r14, qword [rbx + 0x10]
sub rax, r14
cmp rax, r13
jb 0x18005cdb3
mov rcx, qword [rbx]
add rcx, r14
mov rdx, rbp
mov r8, r13
call fcn.180164e10
add r13, r14
mov qword [rbx + 0x10], r13
mov sil, 1
jmp 0x18005c788
lea r12, [rbp + 4]
add r13, 0xfffffffffffffffc
mov qword [rsp + 0x190], 0
lea rax, [rbp + 0xb]
and rax, 0xfffffffffffffff8
sub rax, r12
mov rcx, rbp
add rcx, 3
mov r14, r13
jmp 0x18005c9af
cmp r14, r13
ja 0x18005ca98
mov r8, r14
sub r8, rax
and r8d, 0xf
cmp r14, rax
mov r9d, 0
mov rdx, r14
cmova rdx, rax
cmovae r9, r8
mov r8, r14
sub r8, r9
jb 0x18005f81c
lea r11, [rcx + r14]
xor r10d, r10d
cmp r9, r10
je 0x18005c9f7
inc r10
cmp byte [r11], 0x2d
lea r11, [r11 - 1]
jne 0x18005c9e0
sub r14, r10
jmp 0x18005ca4a
mov r9, r8
cmp r8, rdx
jbe 0x18005ca2e
lea r8, [r9 - 0x10]
movdqu xmm0, xmmword [rbp + r9 - 0xc]
movdqa xmm1, xmm0
pxor xmm1, xmm7
paddq xmm1, xmm8
pandn xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
test r10, rdi
je 0x18005c9f7
cmp r9, r14
ja 0x18005f81c
mov r14, r9
sub r14, 1
jb 0x18005ca98
cmp byte [rcx + r9], 0x2d
mov r9, r14
jne 0x18005ca3a
mov r8, r14
inc r8
je 0x18005c9a6
cmp r13, r8
jb 0x18005c9a6
cmp byte [r12 + r14], 0x2d
jne 0x18005c9a6
test r14, r14
je 0x18005dadc
cmp r14, r13
ja 0x18005f891
mov rsi, r13
sub rsi, r8
jbe 0x18005dae6
cmp byte [r12 + r8], 0xbf
jg 0x18005daec
jmp 0x18005f8a4
lea rax, str.description___is_deprecated__use_Display
mov qword [rsp + 0x38], rax
xor r14d, r14d
mov rsi, r13
mov rcx, r14
cmp r14, 8
jb 0x18005db0e
mov rcx, qword [rsp + 0x38]
lea rdx, [rcx + 7]
and rdx, 0xfffffffffffffff8
mov rax, rdx
sub rax, rcx
mov rcx, r14
cmp rax, r14
ja 0x18005db0e
mov rcx, qword [rsp + 0x38]
test qword [rcx], rdi
jne 0x18005c76c
cmp rdx, qword [rsp + 0x38]
mov ecx, 8
cmove rax, rcx
lea rcx, [r14 - 8]
cmp rax, rcx
jae 0x18005cb13
mov rdx, qword [rsp + 0x38]
test qword [rdx + rax], rdi
jne 0x18005c76c
add rax, 8
cmp rax, rcx
jb 0x18005cafb
mov rax, qword [rsp + 0x38]
test qword [rax + rcx], rdi
jne 0x18005c76c
test rsi, rsi
je 0x18005cdca
add rsi, r12
xor eax, eax
mov qword [rsp + 0x28], rax
mov r15d, 0x48
mov dword [rsp + 0x30], 0x80
mov ebx, r14d
xor ebp, ebp
lea r9d, [r15 + 0x1a]
inc r12
mov r10d, r15d
neg r10d
mov r11d, 1
mov r13d, 0x24
mov ecx, ebp
movzx eax, byte [r12 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jb 0x18005cb86
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x18005cb8a
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x18005cb8a
jmp 0x18005c76c
add al, 0xea
mov edx, eax
test r11d, r11d
je 0x18005f81c
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x18005c76c
mov eax, r11d
imul eax, r8d
add ecx, eax
lea eax, [r10 + r13]
cmp r13d, r9d
mov edx, 0x1a
cmovae eax, edx
cmp r13d, r15d
mov edx, 1
cmovbe eax, edx
cmp eax, r8d
ja 0x18005cc11
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x18005c76c
cmp r12, rsi
je 0x18005c76c
add r13d, 0x24
imul r11d, r8d
inc r12
movzx eax, byte [r12 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x18005cb71
jmp 0x18005cb86
inc ebx
je 0x18005f81c
mov eax, ecx
sub eax, ebp
test ebp, ebp
mov r8d, 2
mov edx, 0x2bc
cmove r8d, edx
xor r15d, r15d
xor edx, edx
div r8d
mov r8d, eax
xor edx, edx
div ebx
add eax, r8d
cmp eax, 0x1c8
jb 0x18005cc7a
xor r15d, r15d
mov r9d, 0xd41d41d5
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 r15d, 0x24
cmp eax, 0x3e57
mov eax, r8d
ja 0x18005cc50
jmp 0x18005cc7d
mov r8d, eax
lea eax, [r8*4]
lea eax, [rax + rax*8]
add r8d, 0x26
xor edx, edx
div r8w
mov r13d, eax
mov eax, ecx
xor edx, edx
div ebx
add dword [rsp + 0x30], eax
jb 0x18005c76c
mov eax, ecx
xor edx, edx
div ebx
mov eax, dword [rsp + 0x30]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x18005c76c
mov ebp, edx
mov r8, qword [rsp + 0x180]
mov edi, edx
cmp qword [rsp + 0x28], 0
je 0x18005cd00
mov rax, qword [rsp + 0x28]
shl rax, 4
xor ecx, ecx
jmp 0x18005ccee
add rcx, 0x10
cmp rax, rcx
je 0x18005cd00
mov rdx, qword [r8 + rcx]
cmp rdx, rdi
jb 0x18005cce5
inc rdx
mov qword [r8 + rcx], rdx
jmp 0x18005cce5
mov rdx, qword [rsp + 0x28]
cmp rdx, qword [rsp + 0x188]
jne 0x18005cd2c
lea rcx, [rsp + 0x180]
call fcn.1800592c0
mov r8, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x190]
movzx eax, r13w
add r15d, eax
mov rax, rdx
shl rax, 4
mov qword [r8 + rax], rdi
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 + 0x190], rcx
inc ebp
cmp r12, rsi
movabs rdi, 0x8080808080808080
jne 0x18005cb48
mov qword [rsp + 0x100], r8
cmp qword [rsp + 0x28], 0x15
jae 0x18005db47
cmp qword [rsp + 0x28], 1
jbe 0x18005e27d
mov r8d, 1
mov rsi, qword [rsp + 0x100]
mov rcx, rsi
mov r13, qword [rsp + 0x28]
mov rdx, r13
call fcn.180059380
mov r9, rsi
jmp 0x18005cdd5
mov rcx, rbx
mov rdx, r14
mov r8, r13
call fcn.180165a60
mov r14, qword [rbx + 0x10]
jmp 0x18005c95b
mov r9, qword [rsp + 0x180]
xor r13d, r13d
lea r8, [r14 + r13]
mov rbx, qword [rsp + 0x330]
mov rax, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x110], rcx
sub rax, rcx
cmp rax, r8
mov r12, qword [rsp + 0x38]
mov rsi, r9
jb 0x18005db2f
lea rax, [r12 + r14]
mov qword [rsp + 0x30], rax
test r9, r9
mov r15d, 0xff
mov qword [rsp + 0x28], r13
je 0x18005d046
xor edi, edi
xor ebx, ebx
cmp rdi, r13
jb 0x18005cebd
cmp r12, qword [rsp + 0x30]
je 0x18005d054
movzx eax, byte [r12]
test al, al
js 0x18005ce4d
inc r12
mov ebp, eax
jmp 0x18005ced6
mov ebp, eax
and ebp, 0x1f
movzx edx, byte [r12 + 1]
and edx, 0x3f
cmp al, 0xdf
jbe 0x18005ce8d
movzx ecx, byte [r12 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp al, 0xf0
jb 0x18005ce98
movzx eax, byte [r12 + 3]
add r12, 4
and ebp, 7
shl ebp, 0x12
shl ecx, 6
and eax, 0x3f
or eax, ecx
or ebp, eax
jmp 0x18005ced6
add r12, 2
shl ebp, 6
or ebp, edx
jmp 0x18005ced6
add r12, 3
shl ebp, 0xc
or ebp, ecx
jmp 0x18005ced6
mov rax, qword [r14]
mov byte [rax + rdx], bpl
inc rdx
mov qword [r14 + 0x10], rdx
inc rbx
cmp rdi, r13
jae 0x18005ce2f
mov rax, rdi
shl rax, 4
cmp rbx, qword [r9 + rax]
jne 0x18005cf75
inc rdi
mov ebp, dword [r9 + rax + 8]
cmp ebp, 0x80
jae 0x18005cf01
mov r14, qword [rsp + 0x330]
mov rdx, qword [r14 + 0x10]
cmp rdx, qword [r14 + 8]
jne 0x18005cea3
mov rcx, r14
call fcn.1800346d0
mov r9, rsi
mov rdx, qword [r14 + 0x10]
jmp 0x18005cea3
mov dword [rsp + 0x50], 0
cmp ebp, 0x10000
mov r14d, 4
sbb r14, 0
cmp ebp, 0x800
mov eax, 2
cmovb r14, rax
cmp r14, 2
je 0x18005cf85
cmp r14, 3
je 0x18005cfa4
cmp r14, 4
jne 0x18005f81c
mov r13, r12
mov eax, ebp
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x50], al
mov eax, ebp
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x51], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x52], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x53], bpl
jmp 0x18005cfce
cmp r12, qword [rsp + 0x30]
jne 0x18005ce3a
jmp 0x18005e4c0
mov r13, r12
mov eax, ebp
shr eax, 6
and al, 0x1f
or al, 0xc0
mov byte [rsp + 0x50], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x51], bpl
jmp 0x18005cfce
mov r13, r12
mov eax, ebp
shr eax, 0xc
and al, 0xf
or al, 0xe0
mov byte [rsp + 0x50], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x51], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x52], bpl
mov rcx, qword [rsp + 0x330]
mov rax, qword [rcx + 8]
mov r12, qword [rcx + 0x10]
sub rax, r12
cmp rax, r14
jb 0x18005d02a
mov r15, qword [rsp + 0x330]
mov rcx, qword [r15]
add rcx, r12
lea rdx, [rsp + 0x50]
mov r8, r14
call fcn.180164e10
add r12, r14
mov qword [r15 + 0x10], r12
inc rbx
mov r15d, 0xff
mov r12, r13
mov r13, qword [rsp + 0x28]
mov r9, rsi
cmp rdi, r13
jae 0x18005ce2f
jmp 0x18005cebd
mov r15, qword [rsp + 0x330]
mov rcx, r15
mov rdx, r12
mov r8, r14
call fcn.180165a60
mov r12, qword [r15 + 0x10]
jmp 0x18005cfe6
test r14, r14
jne 0x18005d0af
test r13, r13
jne 0x18005e4c2
mov rbx, qword [rsp + 0x330]
mov r14, qword [rbx]
mov rdx, qword [rbx + 0x10]
mov r8, qword [rsp + 0x110]
test r8, r8
je 0x18005d24f
mov r12, rdx
sub r12, r8
movabs rdi, 0x8080808080808080
jbe 0x18005d25e
cmp byte [r14 + r8], 0xbf
jg 0x18005d264
jmp 0x18005f884
mov rax, qword [rbx]
mov byte [rax + rdx], dil
inc rdx
mov qword [rbx + 0x10], rdx
cmp r12, qword [rsp + 0x30]
je 0x18005d04b
movzx ecx, byte [r12]
test cl, cl
js 0x18005d0bf
inc r12
mov edi, ecx
jmp 0x18005d11d
mov edi, ecx
and edi, 0x1f
movzx edx, byte [r12 + 1]
and edx, 0x3f
cmp cl, 0xe0
jb 0x18005d101
movzx eax, byte [r12 + 2]
shl edx, 6
and eax, 0x3f
or eax, edx
cmp cl, 0xf0
jb 0x18005d10c
movzx ecx, byte [r12 + 3]
add r12, 4
and edi, 7
shl edi, 0x12
shl eax, 6
and ecx, 0x3f
or ecx, eax
or edi, ecx
jmp 0x18005d115
add r12, 2
shl edi, 6
or edi, edx
jmp 0x18005d115
add r12, 3
shl edi, 0xc
or edi, eax
cmp edi, 0x80
jae 0x18005d13c
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x18005d09a
mov rcx, rbx
call fcn.1800346d0
mov rdx, qword [rbx + 0x10]
jmp 0x18005d09a
mov dword [rsp + 0x50], 0
cmp edi, 0x10000
mov r14d, 4
sbb r14, 0
cmp edi, 0x800
mov eax, 2
cmovb r14, rax
cmp r14, 2
je 0x18005d1b0
cmp r14, 3
je 0x18005d1cf
cmp r14, 4
jne 0x18005f81c
mov r13, r12
mov eax, edi
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x50], al
mov eax, edi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x51], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x52], al
and dil, 0x3f
or dil, 0x80
mov byte [rsp + 0x53], dil
jmp 0x18005d1f9
mov r13, r12
mov eax, edi
shr eax, 6
and al, 0x1f
or al, 0xc0
mov byte [rsp + 0x50], al
and dil, 0x3f
or dil, 0x80
mov byte [rsp + 0x51], dil
jmp 0x18005d1f9
mov r13, r12
mov eax, edi
shr eax, 0xc
and al, 0xf
or al, 0xe0
mov byte [rsp + 0x50], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x51], al
and dil, 0x3f
or dil, 0x80
mov byte [rsp + 0x52], dil
mov rax, qword [rbx + 8]
mov r12, qword [rbx + 0x10]
sub rax, r12
cmp rax, r14
jb 0x18005d23b
mov rcx, qword [rbx]
add rcx, r12
lea rdx, [rsp + 0x50]
mov r8, r14
call fcn.180164e10
add r12, r14
mov qword [rbx + 0x10], r12
mov r12, r13
mov r13, qword [rsp + 0x28]
cmp r12, qword [rsp + 0x30]
jne 0x18005d0af
jmp 0x18005d04b
mov rcx, rbx
mov rdx, r12
mov r8, r14
call fcn.180165a60
mov r12, qword [rbx + 0x10]
jmp 0x18005d209
mov r12, rdx
movabs rdi, 0x8080808080808080
jmp 0x18005d264
jne 0x18005f884
add r14, r8
test byte [rsp + 0x24], 1
jne 0x18005d3b3
test r12, r12
je 0x18005d3ab
lea rax, [r14 + r12]
mov rcx, r14
jmp 0x18005d28d
cmp rcx, rax
je 0x18005d3ab
movzx r9d, byte [rcx]
test r9b, r9b
js 0x18005d29e
inc rcx
mov edx, r9d
jmp 0x18005d301
mov edx, r9d
and edx, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp r9b, 0xdf
jbe 0x18005d2e8
movzx r8d, byte [rcx + 2]
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
cmp r9b, 0xf0
jb 0x18005d2f4
movzx r9d, byte [rcx + 3]
add rcx, 4
and edx, 7
shl edx, 0x12
shl r8d, 6
and r9d, 0x3f
or r9d, r8d
or r9d, edx
jmp 0x18005d299
add rcx, 2
shl edx, 6
or edx, r10d
jmp 0x18005d301
add rcx, 3
shl edx, 0xc
or r8d, edx
mov edx, r8d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x18005d284
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x18005d32c
mov r9, r8
sub r8, r10
jbe 0x18005d284
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
xor esi, esi
lea r15, [0x1801c244c]
cmp dword [r15 + r11*4], edx
seta sil
cmp dword [r15 + r11*4 + 4], edx
mov r15d, 0xff
cmovb esi, r15d
cmp sil, 1
je 0x18005d320
movzx r10d, sil
cmp r10d, 0xff
jne 0x18005d37c
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x18005d32c
jmp 0x18005d284
lea rdx, [0x1801c244c]
movzx edx, byte [rdx + r11*4 + 8]
cmp rdx, 0x11
ja 0x18005d284
mov r8d, 0x20003
bt r8, rdx
jae 0x18005d284
mov al, 1
mov dword [rsp + 0x24], eax
jmp 0x18005d3b3
mov dword [rsp + 0x24], 0
movq xmm0, qword [rsp + 0x40]
movzx eax, byte [rsp + 0x49]
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 ecx, xmm1
or cl, byte [rsp + 0x48]
or al, byte [rsp + 0x4a]
or al, cl
mov sil, 1
or al, byte [rsp + 0x4b]
jne 0x18005c788
test r12, r12
je 0x18005e491
lea rdi, [r14 + r12]
xor r8d, r8d
xor eax, eax
mov rcx, r14
movzx edx, byte [rcx]
test dl, dl
js 0x18005d420
inc rcx
jmp 0x18005d4ba
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp dl, 0xe0
jb 0x18005d475
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x18005d485
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 0x18005e28f
add rcx, 4
jmp 0x18005d493
add rcx, 2
shl r9d, 6
or r9d, r11d
mov edx, r9d
jmp 0x18005d493
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
cmp edx, 0x7f
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
jbe 0x18005d4ba
jmp 0x18005d548
inc rcx
cmp edx, 0x80
jae 0x18005d545
cmp rcx, rdi
je 0x18005e29d
movzx edx, byte [rcx]
test dl, dl
jns 0x18005d4ab
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x18005d51f
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x18005d532
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 0x18005e29d
add rcx, 4
jmp 0x18005d4ae
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x18005d4ae
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
jmp 0x18005d4ae
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, [0x1801c6814]
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, [0x1801c6f48]
mov r8d, dword [r8 + r10]
mov r10d, r8d
shr r10d, 8
cmp r10d, edx
mov r10d, 0
cmovne r8d, r10d
cmp r9b, r8b
jbe 0x18005d5c0
test r8b, r8b
jne case.0x18005d7ba.3907
lea r9d, [rdx - 0x340]
cmp r9d, 4
ja 0x18005d5d7
cmp r9d, 2
jne case.0x18005d7ba.3907
cmp edx, 0xd56
jg 0x18005d64c
cmp edx, 0x9de
jg 0x18005d69b
cmp edx, 0x93b
jg 0x18005d7f4
lea r9d, [rdx - 0x30f]
cmp r9d, 0x36
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
ja 0x18005d626
movabs r10, 0x48020000001005
bt r10, r9
jb 0x18005d93f
lea r9d, [rdx - 0x374]
cmp r9d, 0x13
ja case.0x18005d7ba.3908
mov r10d, 0x80401
bt r10d, r9d
jb case.0x18005d7ba.3907
jmp case.0x18005d7ba.3908
cmp edx, 0x11126
jg 0x18005d710
cmp edx, 0x102d
jle 0x18005d764
cmp edx, 0x1f70
jg 0x18005d862
cmp edx, 0x102e
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
je 0x18005d93f
cmp edx, 0x1b35
je 0x18005d93f
jmp case.0x18005d7ba.3908
cmp edx, 0xbd6
jg 0x18005d7bd
cmp edx, 0xbbd
jg 0x18005d929
lea r9d, [rdx - 0xb3e]
cmp r9d, 0x19
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
ja 0x18005d6de
mov r10d, 0x3000001
bt r10d, r9d
jb 0x18005d93f
lea r9d, [rdx - 0xa33]
cmp r9d, 0x2b
ja 0x18005d6ff
movabs r10, 0x80000000009
bt r10, r9
jb case.0x18005d7ba.3907
cmp edx, 0x9df
jne case.0x18005d7ba.3908
jmp case.0x18005d7ba.3907
cmp edx, 0x114af
jle 0x18005d82b
lea r9d, [rdx - 0x114b0]
cmp r9d, 0xd
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
ja 0x18005d747
mov r10d, 0x2401
bt r10d, r9d
jb 0x18005d93f
cmp edx, 0x115af
je 0x18005d93f
cmp edx, 0x11930
je 0x18005d93f
jmp case.0x18005d7ba.3908
lea r9d, [rdx - 0xdca]
cmp r9d, 0x15
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
ja 0x18005d78f
mov r10d, 0x200021
bt r10d, r9d
jb 0x18005d93f
cmp edx, 0xd57
je 0x18005d93f
lea r9d, [rdx - 0xf43]
cmp r9d, 0x76
ja case.0x18005d7ba.3908
lea r10, [0x18005f8b4]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xcc1
jg 0x18005d8cf
cmp edx, 0xbd7
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
je 0x18005d93f
cmp edx, 0xc56
je 0x18005d93f
jmp case.0x18005d7ba.3908
cmp edx, 0x93c
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
je 0x18005d93f
cmp edx, 0x9be
je 0x18005d93f
cmp edx, 0x9d7
je 0x18005d93f
jmp case.0x18005d7ba.3908
cmp edx, 0x11127
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
je 0x18005d93f
cmp edx, 0x1133e
je 0x18005d93f
cmp edx, 0x11357
je 0x18005d93f
jmp case.0x18005d7ba.3908
cmp edx, 0xfa0f
jle 0x18005d8f2
cmp edx, 0x110ba
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
je 0x18005d93f
lea r9d, [rdx - 0xfa10]
cmp r9d, 0x12
ja 0x18005d8a5
mov r10d, 0x50005
bt r10d, r9d
jb case.0x18005d7ba.3907
lea r9d, [rdx - 0xfb1d]
cmp r9d, 0x21
ja case.0x18005d7ba.3908
movabs r10, 0x200000005
bt r10, r9
jb case.0x18005d7ba.3907
jmp case.0x18005d7ba.3908
cmp edx, 0xcc2
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
je 0x18005d93f
cmp edx, 0xd3e
je 0x18005d93f
jmp case.0x18005d7ba.3908
cmp edx, 0x2125
jg 0x18005d94f
lea r9d, [rdx - 0x1f71]
cmp r9d, 0x8c
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
ja case.0x18005d7ba.3908
lea r10, [0x18005fa90]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xbbe
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
jne case.0x18005d7ba.3908
mov al, 2
cmp rcx, rdi
jne 0x18005d411
jmp 0x18005e29d
lea r9d, [rdx - 0x2329]
cmp r9d, 2
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
jb case.0x18005d7ba.3907
cmp edx, 0x2126
je case.0x18005d7ba.3907
cmp edx, 0x2adc
je case.0x18005d7ba.3907
movd xmm1, edx
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x180172cd0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x180172ce0]
pxor xmm3, xmm14
movdqa xmm4, xmm9
pcmpgtd xmm4, xmm3
pxor xmm2, xmm14
movdqa xmm3, xmm10
pcmpgtd xmm3, xmm2
packssdw xmm3, xmm4
pmovmskb r9d, xmm3
test r9d, r9d
jne case.0x18005d7ba.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x180172cc0]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x180172cf0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x180172d00]
pxor xmm3, xmm14
movdqa xmm4, xmm15
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r9d, xmm4
test r9b, r9b
jne case.0x18005d7ba.3907
lea r9d, [rdx - 0x1d1bb]
cmp r9d, 6
jb case.0x18005d7ba.3907
lea r9d, [rdx - 0x2f800]
cmp r9d, 0x21e
jb case.0x18005d7ba.3907
movd r9d, xmm1
cmp r9d, 0x2000
je case.0x18005d7ba.3907
cmp r9d, 0x212a
je case.0x18005d7ba.3907
cmp r9d, 0xfb40
je case.0x18005d7ba.3907
movdqa xmm1, xmm0
paddd xmm1, xmmword [0x180172d40]
paddd xmm0, xmm12
pxor xmm0, xmm14
movdqa xmm2, xmm13
pcmpgtd xmm2, xmm0
pxor xmm1, xmm14
movdqa xmm0, xmm11
pcmpgtd xmm0, xmm1
packssdw xmm2, xmm0
pmovmskb r10d, xmm2
test r10d, r10d
jne 0x18005d93f
lea r10d, [rdx - 0x11a8]
cmp r10d, 0x1b
jb 0x18005d93f
add edx, 0xffffcf67
cmp edx, 2
jb 0x18005d93f
cmp r9d, 0x330
jne 0x18005d941
jmp 0x18005d93f
mov qword [rsp + 0x38], r12
jmp 0x18005caa4
jne 0x18005f8a4
add r8, r12
mov qword [rsp + 0x38], r12
mov r12, r8
movabs rdi, 0x8080808080808080
mov rcx, r14
cmp r14, 8
jae 0x18005cab7
mov rax, rcx
sub rax, 1
jb 0x18005cb22
mov rdx, qword [rsp + 0x38]
cmp byte [rdx + rcx - 1], 0
mov rcx, rax
jns 0x18005db0e
jmp 0x18005c76c
mov rcx, rbx
mov rdx, qword [rsp + 0x110]
call fcn.180165a60
mov r9, rsi
jmp 0x18005ce05
mov rsi, rdx
movzx eax, byte [0x1801fba30]
mov rax, qword [0x1801fb9b8]
test rax, rax
jne 0x18005db73
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x18005f81c
mov qword [0x1801fb9b8], 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 + 0x120], rax
test rax, rax
je 0x18005f81c
movzx eax, byte [0x1801fba30]
mov rax, qword [0x1801fb9b8]
test rax, rax
jne 0x18005dbd2
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x18005f81c
mov qword [0x1801fb9b8], rax
mov r8d, pe_nt_image_headers64
mov rcx, rax
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x18005f81c
mov r11, rax
mov eax, 1
sub rax, rsi
mov qword [rsp + 0x168], rax
mov r10, qword [rsp + 0x100]
lea rax, [r10 + 0x20]
mov qword [rsp + 0x160], rax
lea rax, [r10 + 8]
mov qword [rsp + 0x198], rax
lea rax, [r10 - 8]
mov qword [rsp + 0x1f8], rax
lea rax, [r10 - 0x10]
mov qword [rsp + 0x178], rax
mov eax, 0x10
mov qword [rsp + 0x170], rax
xor esi, esi
xor ebx, ebx
mov r13, qword [rsp + 0x28]
jmp 0x18005dc65
mov ebx, 1
mov rsi, qword [rsp + 0x148]
cmp rsi, r13
jae 0x18005e248
mov r8, r13
sub r8, rsi
mov rax, rsi
shl rax, 4
lea rcx, [r10 + rax]
cmp r8, 2
mov rbp, rbx
mov qword [rsp + 0x128], r11
jae 0x18005dc8f
mov rdx, r13
jmp 0x18005ddce
mov rdx, qword [rcx]
mov r9, qword [rcx + 0x10]
cmp r9, rdx
jae 0x18005dcb0
cmp r8, 2
jne 0x18005dcca
lea rdx, [rsi + 2]
mov r8d, 2
jmp 0x18005dd63
cmp r8, 2
jne 0x18005dd0c
lea rdx, [rsi + 2]
mov r8d, 2
mov r13, qword [rsp + 0x28]
jmp 0x18005ddce
mov r10, qword [rsp + 0x168]
lea r11, [r10 + rsi]
mov r10, qword [rsp + 0x160]
lea rdi, [r10 + rax]
mov r10d, 2
mov rbx, r9
mov r15, rbx
mov rbx, qword [rdi]
cmp rbx, r15
jae 0x18005dd4f
lea r15, [r11 + r10]
inc r15
inc r10
add rdi, 0x10
cmp r15, 2
jne 0x18005dceb
jmp 0x18005dd4c
mov r10, qword [rsp + 0x168]
lea r11, [r10 + rsi]
mov r10, qword [rsp + 0x160]
lea rdi, [r10 + rax]
mov r10d, 2
mov rbx, r9
mov r15, rbx
mov rbx, qword [rdi]
cmp rbx, r15
jb 0x18005dd4f
lea r15, [r11 + r10]
inc r15
inc r10
add rdi, 0x10
cmp r15, 2
jne 0x18005dd2d
mov r10, r8
lea r11, [r10 + rsi]
mov r8, r10
cmp r9, rdx
mov rdx, r11
mov r13, qword [rsp + 0x28]
jae 0x18005ddce
cmp rdx, rsi
jb 0x18005f81c
mov r15, rdx
cmp rdx, qword [rsp + 0x28]
ja 0x18005f81c
cmp r8, 2
jb 0x18005ddc6
mov rdx, r8
shr rdx, 1
add rax, qword [rsp + 0x198]
lea r9, [rsi + r8]
shl r9, 4
add r9, qword [rsp + 0x1f8]
mov r10, qword [rax - 8]
mov r11d, dword [rax]
mov rdi, qword [r9 - 8]
mov ebx, dword [r9]
mov qword [rax - 8], rdi
mov dword [rax], ebx
mov qword [r9 - 8], r10
mov dword [r9], r11d
add rax, 0x10
add r9, 0xfffffffffffffff0
dec rdx
jne 0x18005dd9e
mov r13, qword [rsp + 0x28]
mov rdx, r15
mov r12, rdx
sub r12, rsi
jb 0x18005f81c
cmp rdx, r13
ja 0x18005f81c
jae 0x18005de1e
cmp r8, 0xa
jae 0x18005de1e
lea r12, [rsi + 0xa]
cmp r12, r13
cmovae r12, r13
mov qword [rsp + 0x148], r12
sub r12, rsi
jb 0x18005f81c
cmp r8, 2
mov eax, 1
cmovb r8, rax
mov rdx, r12
call fcn.180059380
jmp 0x18005de26
mov qword [rsp + 0x148], rdx
mov rbx, rbp
cmp rbp, qword [rsp + 0x170]
jne 0x18005debe
movzx eax, byte [0x1801fba30]
mov rax, qword [0x1801fb9b8]
test rax, rax
jne 0x18005de60
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x18005f81c
mov qword [0x1801fb9b8], rax
mov rbx, rbp
mov r8, rbp
shl r8, 5
mov rcx, rax
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x18005f81c
mov r13, rax
lea rax, [rbx + rbx]
mov qword [rsp + 0x170], rax
mov r8, rbx
shl r8, 4
mov rcx, r13
mov rdi, qword [rsp + 0x128]
mov rdx, rdi
call fcn.180164e10
mov rcx, qword [0x1801fb9b8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
mov r11, r13
jmp 0x18005dec6
mov r11, qword [rsp + 0x128]
mov rax, rbx
shl rax, 4
mov qword [r11 + rax], r12
mov qword [r11 + rax + 8], rsi
inc rbx
mov rax, rbx
cmp rbx, 2
mov r13, qword [rsp + 0x28]
mov r10, qword [rsp + 0x100]
mov qword [rsp + 0x128], r11
jae 0x18005df8f
jmp 0x18005dc54
mov rdx, rsi
mov rsi, qword [rsp + 0x30]
mov r15, qword [rsp + 0xf8]
sub r12, rdx
mov rcx, rbp
mov r8, r12
call fcn.180164e10
mov rax, qword [rsp + 0x1a8]
add rax, rdi
mov rcx, qword [rsp + 0x150]
mov qword [rcx], rax
mov rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x130]
mov qword [rcx], rax
lea rdx, [r15 + 0x10]
mov rax, qword [rsp + 0x158]
not rax
add rsi, rax
shl rsi, 4
mov rcx, r15
mov r8, rsi
call fcn.180164e10
mov rax, qword [rsp + 0x110]
cmp rax, 1
mov r13, qword [rsp + 0x28]
mov r10, qword [rsp + 0x100]
mov r11, qword [rsp + 0x128]
jbe 0x18005dc4f
mov rbx, rax
lea rsi, [rax - 1]
mov rcx, rsi
shl rcx, 4
mov rax, qword [r11 + rcx]
mov rcx, qword [r11 + rcx + 8]
add rcx, rax
cmp rcx, r13
je 0x18005dffa
mov rdx, rbx
shl rdx, 4
mov r8, qword [rdx + r11 - 0x20]
cmp r8, rax
jbe 0x18005dffa
cmp rbx, 2
jbe 0x18005e234
lea r12, [rbx - 3]
mov rcx, r12
shl rcx, 4
mov rcx, qword [r11 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x18005e00f
cmp rbx, 3
jbe 0x18005e23e
add r8, rcx
cmp qword [rdx + r11 - 0x40], r8
jbe 0x18005e00f
jmp 0x18005dc54
cmp rbx, 3
jb 0x18005e014
lea r12, [rbx - 3]
mov rcx, r12
shl rcx, 4
mov rcx, qword [r11 + rcx]
cmp rcx, rax
jb 0x18005e018
lea r12, [rbx - 2]
cmp rbx, r12
jbe 0x18005f81c
lea rax, [r12 + 1]
mov qword [rsp + 0x30], rbx
cmp rbx, rax
jbe 0x18005f81c
mov rcx, r12
shl rcx, 4
mov rbp, qword [r11 + rcx + 8]
shl rax, 4
mov rdx, qword [r11 + rax]
mov rbx, qword [r11 + rax + 8]
add rbx, rdx
mov r15, rbx
sub r15, rbp
jb 0x18005f81c
mov qword [rsp + 0x158], r12
mov qword [rsp + 0x110], rsi
cmp rbx, r13
ja 0x18005f81c
mov qword [rsp + 0x1a8], rdx
lea rdx, [r11 + rcx]
mov qword [rsp + 0xf8], rdx
mov rdi, qword [r11 + rcx]
lea rcx, [r11 + rax]
mov qword [rsp + 0x150], rcx
add rax, r11
add rax, 8
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x108], rbp
shl rbp, 4
add rbp, r10
mov r12, rdi
shl r12, 4
lea r13, [r12 + rbp]
shl rbx, 4
mov rsi, r15
sub rsi, rdi
cmp rsi, rdi
jae 0x18005e185
mov r12, rsi
shl r12, 4
mov r15, qword [rsp + 0x120]
mov rcx, r15
mov rdx, r13
mov r8, r12
call fcn.180164e10
add r12, r15
test rdi, rdi
jle 0x18005e214
test rsi, rsi
mov rsi, qword [rsp + 0x30]
jle 0x18005e224
add rbx, qword [rsp + 0x178]
mov r9, qword [rsp + 0x120]
mov r15, qword [rsp + 0xf8]
mov rax, r13
mov rcx, r12
mov rdx, qword [r12 - 0x10]
mov r8, qword [r13 - 0x10]
cmp rdx, r8
mov r13d, 0
sbb r13, r13
cmp rdx, r8
mov r12d, 0
adc r12, 0xffffffffffffffff
shl r13, 4
add r13, rax
shl r12, 4
add r12, rcx
cmp rdx, r8
mov rax, r12
cmovb rax, r13
movdqu xmm0, xmmword [rax]
movdqu xmmword [rbx], xmm0
cmp r13, rbp
jbe 0x18005e17a
add rbx, 0xfffffffffffffff0
cmp r12, r9
ja 0x18005e124
mov rbp, r13
mov rdx, r9
jmp 0x18005df10
mov rsi, qword [rsp + 0x120]
mov rcx, rsi
mov rdx, rbp
mov r8, r12
call fcn.180164e10
add r12, rsi
test rdi, rdi
jle 0x18005df00
cmp r15, rdi
jle 0x18005df00
add rbx, qword [rsp + 0x100]
mov rdx, rsi
mov rsi, qword [rsp + 0x30]
mov r15, qword [rsp + 0xf8]
mov r8, rdx
mov rcx, qword [r13]
xor edx, edx
xor eax, eax
cmp rcx, qword [r8]
setae dl
setb cl
mov r9, r8
cmovb r9, r13
movdqu xmm0, xmmword [r9]
movdqu xmmword [rbp], xmm0
add rbp, 0x10
shl rdx, 4
add rdx, r8
cmp rdx, r12
jae 0x18005df10
mov al, cl
shl rax, 4
add r13, rax
cmp r13, rbx
jb 0x18005e1c8
jmp 0x18005df10
mov rbp, r13
mov rdx, qword [rsp + 0x120]
jmp 0x18005df03
mov rbp, r13
mov rdx, qword [rsp + 0x120]
jmp 0x18005df08
mov ebx, 2
jmp 0x18005dc54
mov ebx, 3
jmp 0x18005dc54
mov rcx, qword [0x1801fb9b8]
xor edx, edx
mov r8, r11
mov rsi, qword [sym.imp.kernel32.dll_HeapFree]
call rsi
mov rcx, qword [0x1801fb9b8]
xor edx, edx
mov r8, qword [rsp + 0x120]
call rsi
mov r9, qword [rsp + 0x100]
jmp 0x18005cdd5
mov r13, qword [rsp + 0x28]
mov r9, qword [rsp + 0x100]
jmp 0x18005cdd5
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
test al, al
je 0x18005e491
movzx eax, al
cmp eax, 1
je case.0x18005d7ba.3907
lea rcx, [rsp + 0x98]
movups xmmword [rcx], xmm6
movups xmmword [rsp + 0x210], xmm6
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x60], 0
mov word [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
mov byte [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
mov byte [rsp + 0x78], 0
mov dword [rsp + 0x7c], 0
mov byte [rsp + 0x80], 0
mov dword [rsp + 0x84], 0
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x90], rdi
mov byte [rsp + 0xa8], 0
mov dword [rsp + 0xb0], 0
mov word [rsp + 0xb4], 0
movzx eax, word [rsp + 0x21e]
mov word [rcx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0x20e]
movdqu xmmword [rcx + 0x1e], xmm0
mov dword [rsp + 0xd0], 0x110000
mov byte [rsp + 0xd4], 0
mov rbx, r14
cmp rbx, rdi
je 0x18005e405
movzx ebp, byte [rbx]
test bpl, bpl
js 0x18005e389
inc rbx
jmp 0x18005e3e7
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rbx + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x18005e3cf
movzx ecx, byte [rbx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x18005e3dc
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 0x18005e405
add rbx, 4
jmp 0x18005e3e7
add rbx, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x18005e3e7
add rbx, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
lea rcx, [rsp + 0x50]
call fcn.180059e20
mov r15b, 1
cmp eax, 0x110000
je 0x18005e41b
cmp eax, ebp
je 0x18005e373
jmp 0x18005e41b
lea rcx, [rsp + 0x50]
call fcn.180059e20
cmp eax, 0x110000
setne r15b
neg r15b
cmp dword [rsp + 0x60], 0
je 0x18005e43e
cmp qword [rsp + 0x70], 0
je 0x18005e43e
mov r8, qword [rsp + 0x68]
mov rcx, qword [0x1801fb9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp dword [rsp + 0xb0], 0
je 0x18005e46a
cmp qword [rsp + 0xc0], 0
je 0x18005e46a
mov r8, qword [rsp + 0xb8]
mov rcx, qword [0x1801fb9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
test r15b, r15b
mov rbx, qword [rsp + 0x330]
mov r15d, 0xff
je 0x18005e491
mov byte [rsp + 0x45], 1
movabs rdi, 0x8080808080808080
jmp 0x18005c788
mov rcx, r14
mov rdx, r12
mov r8, qword [rsp + 0x1a0]
lea r9, [rsp + 0x40]
call fcn.18005a650
movabs rdi, 0x8080808080808080
jmp 0x18005c788
jmp 0x18005e4c0
jmp 0x18005e4c2
mov rcx, qword [rbx]
mov rdi, qword [rbx + 0x10]
mov rax, rdi
mov r8, qword [rsp + 0x138]
test r8, r8
je 0x18005e4f9
mov rax, rdi
sub rax, r8
jbe 0x18005e4f7
cmp byte [rcx + r8], 0xbf
jg 0x18005e4f9
mov rdx, rdi
mov r9, rdi
call fcn.180166ff0
ud2
jne 0x18005e4ea
add rcx, r8
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x88], rax
mov word [rsp + 0x90], 1
test byte [rsp + 0x24], 1
lea r14, [0x1801c244c]
lea r15, [rsp + 0x50]
jne 0x18005e56f
mov rcx, r15
call fcn.18004f230
test rax, rax
jne 0x18005e55d
jmp 0x18005ede5
mov esi, 0xff
mov ebx, 0x62f8
mov rcx, r15
call fcn.18004f230
test rax, rax
je 0x18005ede5
test rdx, rdx
je 0x18005e579
movzx r8d, byte [rax]
test r8b, r8b
js 0x18005e5a1
lea r9, [rax + 1]
mov ecx, r8d
jmp 0x18005e601
mov ecx, r8d
and ecx, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x18005e5eb
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x18005e5f7
lea r9, [rax + 4]
movzx r8d, byte [rax + 3]
and ecx, 7
shl ecx, 0x12
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or ecx, r8d
jmp 0x18005e601
lea r9, [rax + 2]
shl ecx, 6
or ecx, r11d
jmp 0x18005e601
lea r9, [rax + 3]
shl ecx, 0xc
or ecx, r10d
add rdx, rax
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x18005e61d
mov r10, r8
sub r8, r11
jbe 0x18005e67d
shr r8, 1
add r8, r11
lea r13, [r8 + r8*2]
xor ebp, ebp
cmp dword [r14 + r13*4], ecx
seta bpl
cmp dword [r14 + r13*4 + 4], ecx
cmovb ebp, esi
cmp bpl, 1
je 0x18005e615
movzx r11d, bpl
cmp r11d, 0xff
jne 0x18005e65c
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x18005e61d
jmp 0x18005e67d
movzx ecx, byte [r14 + r13*4 + 8]
test rcx, rcx
je 0x18005e7c6
cmp ecx, 0x11
je 0x18005e7c6
cmp ecx, 9
jne 0x18005ede0
cmp r9, rdx
je 0x18005e775
movzx r8d, byte [r9]
test r8b, r8b
js 0x18005e697
inc r9
mov ecx, r8d
jmp 0x18005e6f7
mov ecx, r8d
and ecx, 0x1f
movzx r11d, byte [r9 + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x18005e6e1
movzx r10d, byte [r9 + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x18005e6ed
movzx r8d, byte [r9 + 3]
add r9, 4
and ecx, 7
shl ecx, 0x12
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or ecx, r8d
jmp 0x18005e6f7
add r9, 2
shl ecx, 6
or ecx, r11d
jmp 0x18005e6f7
add r9, 3
shl ecx, 0xc
or ecx, r10d
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x18005e714
mov r10, r8
sub r8, r11
jbe 0x18005e67d
shr r8, 1
add r8, r11
lea r13, [r8 + r8*2]
xor ebp, ebp
cmp dword [r14 + r13*4], ecx
seta bpl
cmp dword [r14 + r13*4 + 4], ecx
cmovb ebp, esi
cmp bpl, 1
je 0x18005e708
movzx r11d, bpl
cmp r11d, 0xff
jne 0x18005e756
inc r8
mov r11, r8
mov r8, r10
sub r8, r11
ja 0x18005e714
jmp 0x18005e67d
movzx ecx, byte [r14 + r13*4 + 8]
cmp rcx, 0xe
ja 0x18005ede0
bt rbx, rcx
jb 0x18005e67d
jmp 0x18005ede0
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x18005e785
dec rdx
jmp 0x18005e976
movzx r8d, byte [rdx - 2]
add rdx, 0xfffffffffffffffe
cmp r8b, 0xc0
jge 0x18005e92a
movzx r9d, byte [rdx - 1]
dec rdx
cmp r9b, 0xc0
jge 0x18005e95d
movzx r10d, byte [rdx - 1]
dec rdx
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x18005e961
cmp r9, rdx
je 0x18005e930
xor r8d, r8d
mov dword [rsp + 0x118], 0
movzx r11d, byte [r9]
test r11b, r11b
js 0x18005e7ee
inc r9
mov r10d, r11d
jmp 0x18005e858
mov r10d, r11d
and r10d, 0x1f
movzx r13d, byte [r9 + 1]
and r13d, 0x3f
cmp r11b, 0xdf
jbe 0x18005e839
movzx ebp, byte [r9 + 2]
shl r13d, 6
and ebp, 0x3f
or ebp, r13d
cmp r11b, 0xf0
jb 0x18005e846
movzx r11d, byte [r9 + 3]
add r9, 4
and r10d, 7
shl r10d, 0x12
shl ebp, 6
and r11d, 0x3f
or r11d, ebp
or r10d, r11d
jmp 0x18005e851
add r9, 2
shl r10d, 6
or r10d, r13d
jmp 0x18005e851
add r9, 3
shl r10d, 0xc
or r10d, ebp
lea r14, [0x1801c244c]
mov r11d, 0x5a6
xor ebp, ebp
mov r13d, 0x5a6
jmp 0x18005e87b
mov r13, r11
lea r14, [0x1801c244c]
sub r11, rbp
jbe 0x18005ede0
shr r11, 1
add r11, rbp
lea r12, [r11 + r11*2]
mov rcx, r14
xor r14d, r14d
cmp dword [rcx + r12*4], r10d
seta r14b
cmp dword [rcx + r12*4 + 4], r10d
cmovb r14d, esi
cmp r14b, 1
je 0x18005e868
movzx ebp, r14b
cmp ebp, 0xff
jne 0x18005e8c8
inc r11
mov rbp, r11
mov r11, r13
lea r14, [0x1801c244c]
sub r11, rbp
ja 0x18005e87b
jmp 0x18005ede0
lea r10, [0x1801c244c]
movzx r10d, byte [r10 + r12*4 + 8]
cmp r10d, 1
je 0x18005e8f3
cmp r10d, 5
jne 0x18005e8ff
mov cl, 1
mov dword [rsp + 0x118], ecx
lea r14, [0x1801c244c]
jmp 0x18005e91f
mov r8b, 1
lea r14, [0x1801c244c]
jmp 0x18005e91f
cmp r10, 0x11
lea r14, [0x1801c244c]
ja 0x18005ede0
mov ecx, 0x260fb
bt rcx, r10
jae 0x18005ede0
cmp r9, rdx
jne 0x18005e7dd
jmp 0x18005e93e
and r8d, 0x1f
jmp 0x18005e96c
mov dword [rsp + 0x118], 0
xor r8d, r8d
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x18005ebb4
dec rdx
cmp rdx, rax
jne 0x18005ebfd
jmp 0x18005ec95
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 0x18005ea69
cmp ecx, 0x110000
je 0x18005e579
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x18005e9a8
mov r9, r8
sub r8, r10
jbe 0x18005ead9
shr r8, 1
add r8, r10
lea r11, [r8 + r8*2]
xor ebp, ebp
cmp dword [r14 + r11*4], ecx
seta bpl
cmp dword [r14 + r11*4 + 4], ecx
cmovb ebp, esi
cmp bpl, 1
je 0x18005e99c
movzx r10d, bpl
cmp r10d, 0xff
jne 0x18005e9ea
inc r8
mov r10, r8
mov r8, r9
sub r8, r10
ja 0x18005e9a8
jmp 0x18005ead9
cmp byte [r14 + r11*4 + 8], 0xd
jne 0x18005ead9
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x18005ea06
dec rdx
jmp 0x18005e976
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x18005ea36
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jge 0x18005ea40
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x18005ea48
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x18005ea53
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 r14, [0x1801c244c]
jmp 0x18005e976
cmp ecx, 0x110000
je 0x18005e579
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x18005ea8c
mov rdx, rax
sub rax, r8
jbe 0x18005ead9
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
xor r10d, r10d
cmp dword [r14 + r9*4], ecx
seta r10b
cmp dword [r14 + r9*4 + 4], ecx
cmovb r10d, esi
cmp r10b, 1
je 0x18005ea84
movzx r8d, r10b
cmp r8d, 0xff
jne 0x18005eacd
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x18005ea8c
jmp 0x18005ead9
cmp byte [r14 + r9*4 + 8], 0xd
je 0x18005e579
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x18005eaf4
mov rdx, rax
sub rax, r8
jbe 0x18005e579
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
xor r10d, r10d
cmp dword [r14 + r9*4], ecx
seta r10b
cmp dword [r14 + r9*4 + 4], ecx
cmovb r10d, esi
cmp r10b, 1
je 0x18005eae8
movzx r8d, r10b
cmp r8d, 0xff
jne 0x18005eb38
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x18005eaf4
jmp 0x18005e579
cmp byte [r14 + r9*4 + 8], 9
je 0x18005e579
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x18005eb5f
mov rdx, rax
sub rax, r8
jbe 0x18005ede0
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
xor r10d, r10d
cmp dword [r14 + r9*4], ecx
seta r10b
cmp dword [r14 + r9*4 + 4], ecx
cmovb r10d, esi
cmp r10b, 1
je 0x18005eb53
movzx r8d, r10b
cmp r8d, 0xff
jne 0x18005eba3
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x18005eb5f
jmp 0x18005ede0
cmp byte [r14 + r9*4 + 8], 5
je 0x18005e579
jmp 0x18005ede0
movzx r10d, byte [rdx - 2]
add rdx, 0xfffffffffffffffe
cmp r10b, 0xc0
jge 0x18005ebe5
movzx r11d, byte [rdx - 1]
dec rdx
cmp r11b, 0xc0
jge 0x18005edcc
movzx ebp, byte [rdx - 1]
dec rdx
jmp 0x18005edb9
add rdx, 0xfffffffffffffffe
and r10d, 0x1f
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp rdx, rax
je 0x18005ec95
cmp r9d, 0x110000
lea r14, [0x1801c244c]
je 0x18005ede0
mov r10d, 0x5a6
xor r13d, r13d
mov r11d, 0x5a6
jmp 0x18005ec2e
mov r11, r10
sub r10, r13
jbe 0x18005ed0b
shr r10, 1
add r10, r13
lea r12, [r10 + r10*2]
xor ebp, ebp
cmp dword [r14 + r12*4], r9d
seta bpl
cmp dword [r14 + r12*4 + 4], r9d
cmovb ebp, esi
cmp bpl, 1
je 0x18005ec22
movzx ebp, bpl
cmp ebp, 0xff
jne 0x18005ec6f
inc r10
mov r13, r10
mov r10, r11
sub r10, r13
ja 0x18005ec2e
jmp 0x18005ed0b
cmp byte [r14 + r12*4 + 8], 0xd
jne 0x18005ed0b
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x18005ed97
dec rdx
cmp rdx, rax
jne 0x18005ebfd
cmp r9d, 0x110000
lea r14, [0x1801c244c]
je 0x18005ede0
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x18005ecc0
mov rdx, rax
sub rax, r10
jbe 0x18005ed0b
shr rax, 1
add rax, r10
lea r11, [rax + rax*2]
xor ebp, ebp
cmp dword [r14 + r11*4], r9d
seta bpl
cmp dword [r14 + r11*4 + 4], r9d
cmovb ebp, esi
cmp bpl, 1
je 0x18005ecb8
movzx r10d, bpl
cmp r10d, 0xff
jne 0x18005ecff
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x18005ecc0
jmp 0x18005ed0b
cmp byte [r14 + r11*4 + 8], 0xd
je 0x18005ede0
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x18005ed26
mov rdx, rax
sub rax, r10
jbe 0x18005ede0
shr rax, 1
add rax, r10
lea r11, [rax + rax*2]
xor ebp, ebp
cmp dword [r14 + r11*4], r9d
seta bpl
cmp dword [r14 + r11*4 + 4], r9d
cmovb ebp, esi
cmp bpl, 1
je 0x18005ed1a
movzx r10d, bpl
cmp r10d, 0xff
jne 0x18005ed65
inc rax
mov r10, rax
mov rax, rdx
sub rax, r10
ja 0x18005ed26
jmp 0x18005ede0
movzx eax, byte [r14 + r11*4 + 8]
cmp rax, 0x11
ja 0x18005ede0
mov ecx, 0x20023
bt rcx, rax
jae 0x18005ede0
test r8b, 1
je 0x18005e579
mov eax, dword [rsp + 0x118]
and al, 1
je 0x18005e579
jmp 0x18005ede0
movzx r10d, byte [rdx - 2]
cmp r10b, 0xc0
jge 0x18005ebe1
movzx r11d, byte [rdx - 3]
cmp r11b, 0xc0
jge 0x18005edc8
movzx ebp, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and ebp, 7
shl ebp, 6
and r11d, 0x3f
or r11d, ebp
jmp 0x18005edd0
add rdx, 0xfffffffffffffffd
and r11d, 0xf
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
jmp 0x18005ebe9
mov byte [rsp + 0x42], 1
movzx ebp, byte [rsp + 0x40]
movzx r14d, byte [rsp + 0x41]
movzx eax, byte [rsp + 0x42]
mov dword [rsp + 0x118], eax
movzx eax, byte [rsp + 0x43]
mov dword [rsp + 0x170], eax
movzx eax, byte [rsp + 0x44]
mov dword [rsp + 0x168], eax
movzx eax, byte [rsp + 0x45]
mov dword [rsp + 0x160], eax
movzx eax, byte [rsp + 0x46]
mov dword [rsp + 0x198], eax
movzx eax, byte [rsp + 0x47]
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0x48]
mov dword [rsp + 0x110], eax
movzx eax, byte [rsp + 0x49]
mov dword [rsp + 0x158], eax
movzx r12d, byte [rsp + 0x4a]
movzx r15d, byte [rsp + 0x4b]
cmp qword [rsp + 0x188], 0
mov rbx, qword [rsp + 0x330]
je 0x18005ee87
mov r8, qword [rsp + 0x180]
mov rcx, qword [0x1801fb9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rdi, qword [rbx + 0x10]
test rdi, rdi
je 0x18005eed9
js 0x18005f81c
movzx eax, byte [0x1801fba30]
mov rcx, qword [0x1801fb9b8]
test rcx, rcx
jne 0x18005eeba
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x18005eeca
mov rcx, rax
mov qword [0x1801fb9b8], rax
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
jne 0x18005eede
mov ecx, 1
mov rdx, rdi
call fcn.180166e20
ud2
mov eax, 1
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x60], rcx
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rbx], rax
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], 0
mov rax, qword [rsp + 0x140]
lea rsi, [rax + 0x18]
cmp qword [rax + 0x20], 0
je 0x18005ef23
mov r8, qword [rsi]
mov rcx, qword [0x1801fb9b8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0x60]
mov qword [rsi + 0x10], rax
movdqa xmm0, xmmword [rsp + 0x50]
movdqu xmmword [rsi], xmm0
mov rcx, qword [rsp + 0x140]
mov rax, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x28]
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x88], rax
mov word [rsp + 0x90], 1
xor ecx, ecx
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x24], r15d
mov dword [rsp + 0x38], r12d
jmp 0x18005efb0
xor r13d, r13d
mov qword [rbx + 0x10], r13
mov cl, 1
mov qword [rsp + 0x178], rcx
mov dword [rsp + 0x138], ebp
lea rcx, [rsp + 0x50]
call fcn.18004f230
test rax, rax
je 0x18005f820
mov rsi, rax
mov r13, rdx
test byte [rsp + 0x178], 1
mov r11d, 0x1a
je 0x18005f012
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x18005f004
mov rcx, rbx
call fcn.1800346d0
mov r11d, 0x1a
mov rdx, qword [rbx + 0x10]
mov rax, qword [rbx]
mov byte [rax + rdx], 0x2e
inc rdx
mov qword [rbx + 0x10], rdx
mov rcx, r13
cmp r13, 8
mov edi, ebp
jb 0x18005f085
lea rdx, [rsi + 7]
and rdx, 0xfffffffffffffff8
mov rax, rdx
sub rax, rsi
mov rcx, r13
cmp rax, r13
ja 0x18005f085
movabs rcx, 0x8080808080808080
test qword [rsi], rcx
jne 0x18005f09c
cmp rdx, rsi
mov ecx, 8
cmove rax, rcx
lea rcx, [r13 - 8]
cmp rax, rcx
jae 0x18005f070
movabs rdx, 0x8080808080808080
test qword [rsi + rax], rdx
jne 0x18005f09c
add rax, 8
cmp rax, rcx
jb 0x18005f057
movabs rax, 0x8080808080808080
test qword [rsi + rcx], rax
jne 0x18005f09c
jmp 0x18005f7d5
mov rax, rcx
sub rax, 1
jb 0x18005f7d5
cmp byte [rsi + rcx - 1], 0
mov rcx, rax
jns 0x18005f085
mov rcx, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
sub rcx, rax
mov qword [rsp + 0x148], rax
cmp rcx, 3
jbe 0x18005f1bb
mov rcx, qword [rbx]
mov dword [rcx + rax], 0x2d2d6e78
add rax, 4
mov qword [rbx + 0x10], rax
mov al, 1
mov qword [rsp + 0x178], rax
test r13, r13
je 0x18005efbf
mov rax, rsi
add rax, r13
mov r13, rax
mov rbx, rsi
xor esi, esi
mov dword [rsp + 0x130], 0
mov qword [rsp + 0xf8], rbx
jmp 0x18005f10e
mov ebp, edi
inc esi
cmp rbx, r13
je 0x18005f1e7
movzx edx, byte [rbx]
test dl, dl
js 0x18005f11a
inc rbx
jmp 0x18005f17f
mov eax, edx
and eax, 0x1f
movzx r8d, byte [rbx + 1]
and r8d, 0x3f
cmp dl, 0xdf
jbe 0x18005f166
movzx ecx, byte [rbx + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp dl, 0xf0
jb 0x18005f174
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 0x18005f1e0
add rbx, 4
jmp 0x18005f17f
add rbx, 2
shl eax, 6
or eax, r8d
mov edx, eax
jmp 0x18005f17f
add rbx, 3
shl eax, 0xc
or ecx, eax
mov edx, ecx
mov eax, esi
inc eax
mov dword [rsp + 0x150], eax
je 0x18005f792
cmp edx, 0x80
jae 0x18005f101
mov rcx, qword [rsp + 0x330]
call fcn.18000b970
mov r11d, 0x1a
inc dword [rsp + 0x130]
jmp 0x18005f101
mov r8d, 4
mov rcx, rbx
mov rdx, qword [rsp + 0x148]
call fcn.180165a60
mov r11d, 0x1a
mov rax, qword [rbx + 0x10]
jmp 0x18005f0b9
mov dword [rsp + 0x150], esi
cmp dword [rsp + 0x130], 0
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0xf8]
je 0x18005f22b
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x18005f21d
mov rcx, rbx
call fcn.1800346d0
mov r11d, 0x1a
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 + 0x130]
cmp ecx, dword [rsp + 0x150]
jae 0x18005efbf
mov eax, 0x80
mov r10d, 0x48
xor r8d, r8d
mov edx, ecx
mov qword [rsp + 0x128], r13
mov rcx, rsi
mov ebx, edx
mov rsi, r10
jmp 0x18005f26c
inc rcx
cmp eax, ebp
jbe 0x18005f30a
cmp rcx, r13
je 0x18005f81c
movzx ebp, byte [rcx]
test bpl, bpl
jns 0x18005f261
mov edx, ebp
and edx, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp bpl, 0xdf
jbe 0x18005f2d2
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp bpl, 0xf0
jb 0x18005f2e3
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 0x18005f81c
mov r10, rsi
add rcx, 4
jmp 0x18005f264
add rcx, 2
shl edx, 6
or edx, r10d
mov ebp, edx
mov r10, rsi
jmp 0x18005f264
add rcx, 3
shl edx, 0xc
or r9d, edx
mov ebp, r9d
mov r10, rsi
jmp 0x18005f264
inc rcx
cmp ebp, edx
mov r9d, edx
cmovb r9d, ebp
cmp edx, eax
cmovae ebp, r9d
cmp rcx, r13
je 0x18005f3a9
movzx edx, byte [rcx]
test dl, dl
jns 0x18005f2f8
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp dl, 0xdf
jbe 0x18005f371
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x18005f38a
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, 0x1a
je 0x18005f3a6
add rcx, 4
jmp 0x18005f39e
add rcx, 2
shl r9d, 6
or r9d, r11d
mov edx, r9d
mov r11d, 0x1a
jmp 0x18005f2fb
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
mov r11d, 0x1a
mov r10, rsi
jmp 0x18005f2fb
mov r10, rsi
mov ecx, ebx
inc ecx
je 0x18005f81c
mov r9d, ebp
sub r9d, eax
mov eax, r8d
not eax
xor edx, edx
div ecx
cmp r9d, eax
ja 0x18005f792
mov edx, r9d
imul edx, ecx
add edx, r8d
mov dword [rsp + 0x108], edx
mov rsi, qword [rsp + 0xf8]
mov rcx, rsi
jmp 0x18005f404
mov r9d, ebx
mov r8d, dword [rsp + 0x108]
cmp rcx, r13
mov rsi, qword [rsp + 0xf8]
je 0x18005f75c
movzx eax, byte [rcx]
test al, al
js 0x18005f414
inc rcx
cmp eax, ebp
jae 0x18005f48f
jmp 0x18005f482
mov r9, rcx
mov ecx, eax
and ecx, 0x1f
movzx r8d, byte [r9 + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x18005f462
movzx edx, byte [r9 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp al, 0xf0
jb 0x18005f470
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 0x18005f77e
add r9, 4
jmp 0x18005f47b
add r9, 2
shl ecx, 6
or ecx, r8d
mov eax, ecx
jmp 0x18005f47b
add r9, 3
shl ecx, 0xc
or edx, ecx
mov eax, edx
mov rcx, r9
cmp eax, ebp
jae 0x18005f48f
inc dword [rsp + 0x108]
je 0x18005f792
cmp eax, ebp
jne 0x18005f3e8
mov qword [rsp + 0x100], rcx
mov dword [rsp + 0x120], ebx
lea r12d, [r10 + 0x1a]
lea ecx, [r10 - 0x24]
neg ecx
cmp r12d, 0x25
cmovb ecx, r11d
cmp r10d, 0x24
mov eax, 1
cmovae ecx, eax
mov eax, dword [rsp + 0x108]
mov r13d, eax
cmp eax, ecx
mov rbx, qword [rsp + 0x330]
jae 0x18005f5ac
mov edx, 0x61
cmp r13d, 0x1a
jb 0x18005f4f8
mov edx, 0x16
cmp r13d, 0x24
jae 0x18005f81c
add edx, r13d
mov rcx, rbx
call fcn.18000b970
mov ecx, dword [rsp + 0x120]
mov r9d, ecx
inc r9d
mov r14d, dword [rsp + 0x30]
mov r12d, dword [rsp + 0x38]
mov eax, dword [rsp + 0x130]
je 0x18005f81c
cmp ecx, eax
mov ecx, 2
mov eax, 0x2bc
cmove ecx, eax
xor r8d, r8d
mov eax, dword [rsp + 0x108]
xor edx, edx
div ecx
mov ecx, eax
xor edx, edx
div r9d
add eax, ecx
cmp eax, 0x1c8
mov edi, dword [rsp + 0x138]
mov r15d, dword [rsp + 0x24]
mov esi, 0xd41d41d5
mov r13, qword [rsp + 0x128]
jb 0x18005f711
xor ecx, ecx
mov r11d, 0x1a
nop dword [rax]
mov edx, eax
imul rdx, rsi
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 0x18005f580
jmp 0x18005f71c
mov r15d, r10d
neg r15d
mov esi, 0x48
mov r13d, dword [rsp + 0x108]
mov qword [rsp + 0x1a8], r15
jmp 0x18005f609
mov rax, qword [rbx]
mov byte [rax + rdx], r14b
inc rdx
mov qword [rbx + 0x10], rdx
mov eax, r13d
xor edx, edx
div edi
lea ecx, [r15 + rsi]
cmp esi, r12d
cmovae ecx, r11d
cmp esi, r10d
mov edx, 1
cmovbe ecx, edx
add esi, 0x24
mov r13d, eax
cmp eax, ecx
jb 0x18005f4de
mov edi, ecx
sub edi, 0x24
je 0x18005f81c
sub r13d, ecx
neg edi
mov eax, r13d
xor edx, edx
div edi
add edx, ecx
mov r14d, 0x61
cmp edx, 0x1a
jb 0x18005f63c
mov r14d, 0x16
cmp edx, 0x24
jae 0x18005f81c
add r14d, edx
cmp r14d, 0x80
jae 0x18005f690
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx + 8]
jne 0x18005f5d0
mov rcx, rbx
mov r15d, r12d
mov r12d, ebp
mov rbp, r10
call fcn.1800346d0
mov r10, rbp
mov ebp, r12d
mov r12d, r15d
mov r15, qword [rsp + 0x1a8]
mov r11d, 0x1a
mov rdx, qword [rbx + 0x10]
jmp 0x18005f5d0
mov rcx, rbx
movzx ebx, r14w
shr ebx, 6
mov rax, qword [rcx + 8]
mov rdx, qword [rcx + 0x10]
sub rax, rdx
cmp rax, 1
jbe 0x18005f6da
mov r8, qword [rsp + 0x330]
mov rax, qword [r8]
and r14d, 0x3f
shl r14d, 8
movzx ecx, bx
mov rbx, r8
or ecx, r14d
or ecx, 0x80c0
mov word [rax + rdx], cx
add rdx, 2
jmp 0x18005f5da
mov r8d, 2
mov rcx, qword [rsp + 0x330]
mov qword [rsp + 0x1a0], r10
call fcn.180165a60
mov r10, qword [rsp + 0x1a0]
mov r11d, 0x1a
mov rax, qword [rsp + 0x330]
mov rdx, qword [rax + 0x10]
jmp 0x18005f6ab
xor ecx, ecx
mov r10d, eax
mov r11d, 0x1a
lea eax, [r10*4]
lea eax, [rax + rax*8]
add r10d, 0x26
xor edx, edx
div r10w
movzx r10d, ax
add r10d, ecx
mov dword [rsp + 0x108], r8d
mov ebx, r9d
mov rcx, qword [rsp + 0x100]
cmp rcx, r13
mov rsi, qword [rsp + 0xf8]
jne 0x18005f404
inc r8d
inc ebp
mov edx, r9d
mov eax, ebp
cmp r9d, dword [rsp + 0x150]
mov rbx, qword [rsp + 0x330]
jb 0x18005f257
jmp 0x18005f78b
mov r9d, ebx
mov r8d, dword [rsp + 0x108]
jmp 0x18005f75c
mov ebp, edi
jmp 0x18005efbf
mov rbx, qword [rsp + 0x330]
mov rax, qword [rbx + 0x10]
mov bpl, 1
mov cl, 1
mov r13, qword [rsp + 0x148]
cmp rax, r13
jb 0x18005efb0
mov bpl, 1
test r13, r13
je 0x18005efa7
cmp rax, r13
jbe 0x18005f800
mov rax, qword [rbx]
cmp byte [rax + r13], 0xbf
jg 0x18005efaa
jmp 0x18005f81c
mov rax, qword [rbx + 8]
mov rbp, qword [rbx + 0x10]
sub rax, rbp
cmp rax, r13
jb 0x18005f808
mov rcx, qword [rbx]
add rcx, rbp
mov rdx, rsi
mov r8, r13
call fcn.180164e10
add r13, rbp
mov ebp, edi
jmp 0x18005efaa
je 0x18005efaa
jmp 0x18005f81c
mov rcx, rbx
mov rdx, rbp
mov r8, r13
call fcn.180165a60
mov rbp, qword [rbx + 0x10]
jmp 0x18005f7e5
ud2
mov r13, qword [rsp + 0x200]
mov edx, dword [rsp + 0x170]
mov r8d, dword [rsp + 0x168]
mov r9d, dword [rsp + 0x160]
mov r10d, dword [rsp + 0x198]
mov r11d, dword [rsp + 0x28]
mov esi, dword [rsp + 0x110]
mov edi, dword [rsp + 0x158]
mov rax, qword [rsp + 0x140]
cmp byte [rax + 0x32], 0
jne 0x18005c335
jmp 0x18005c530
ud2
mov rcx, r14
mov r9, rdx
call fcn.180166ff0
ud2
mov rcx, r12
mov rdx, r13
xor r8d, r8d
mov r9, r14
call fcn.180166ff0
ud2
mov rcx, r12
mov rdx, r13
mov r9, r13
call fcn.180166ff0
ud2