Function at 0x1400195d0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2b8
movdqa xmmword [rsp + 0x2a0], xmm15
movdqa xmmword [rsp + 0x290], xmm14
movdqa xmmword [rsp + 0x280], xmm13
movdqa xmmword [rsp + 0x270], xmm12
movdqa xmmword [rsp + 0x260], xmm11
movdqa xmmword [rsp + 0x250], xmm10
movdqa xmmword [rsp + 0x240], xmm9
movaps xmmword [rsp + 0x230], xmm8
movdqa xmmword [rsp + 0x220], xmm7
movdqa xmmword [rsp + 0x210], xmm6
mov qword [rsp + 0x1f0], rcx
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x320]
mov qword [rsp + 0x110], r9
mov qword [rcx + 0x10], 0
mov dword [rsp + 0xf0], 0
mov qword [rsp + 0xe8], 0
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x1e8], rax
add r8, rdx
pxor xmm6, xmm6
movdqu xmmword [rsp + 0x132], xmm6
movzx eax, word [rsp + 0x140]
mov word [rsp + 0xce], ax
movups xmm0, xmmword [rsp + 0x130]
movups xmmword [rsp + 0xbe], xmm0
movdqu xmmword [rsp + 0x11b], xmm6
mov byte [rsp + 0x12b], 0
mov qword [rsp + 0x38], 0
lea r12, [rsp + 0x48]
mov dword [rsp + 0x48], 0
mov word [rsp + 0x4c], 0
mov byte [rsp + 0x50], 0
mov dword [rsp + 0x54], 0
mov byte [rsp + 0x58], 0
mov dword [rsp + 0x5c], 0
mov byte [rsp + 0x60], 0
mov dword [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x78], r8
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 0
mov rax, r9
shr rax, 0x20
mov byte [rsp + 0x9c], al
mov qword [rsp + 0x190], r9
mov dword [rsp + 0x98], r9d
mov eax, dword [rsp + 0x128]
mov dword [rsp + 0xad], eax
movdqu xmm0, xmmword [rsp + 0x118]
movdqu xmmword [rsp + 0x9d], xmm0
mov dword [rsp + 0xb8], 0
mov word [rsp + 0xbc], 0
mov dword [rsp + 0xd8], 0x110000
mov byte [rsp + 0xdc], 0
lea r15, [0x14019b4d4]
lea rdi, [0x14019efa4]
xor eax, eax
test rax, rax
je 0x14001989e
cmp rax, 1
jne 0x14001a29e
mov rax, qword [rsp + 0x40]
cmp dword [rsp + 0xb8], 0
je 0x1400197fb
cmp rax, qword [rsp + 0xd0]
jb 0x14001a2c2
mov qword [rsp + 0xd0], 0
jmp 0x14001982b
movzx ecx, word [rsp + 0xbc]
cmp rcx, 4
ja case.0x140019b55.1
cmp rax, rcx
jb 0x14001a302
cmp word [rsp + 0xbc], 0
je 0x14001982b
mov word [rsp + 0xbc], 0
mov qword [rsp + 0x38], 0
jmp 0x14001989e
movzx ebx, bp
imul esi, ebx, 0x6f75
shr esi, 0x18
lea edx, [rsi + 0x1100]
mov rcx, r12
call fcn.14001cce0
imul eax, esi, 0x24c
sub ebp, eax
movzx eax, bp
imul edx, eax, 0x925
shr edx, 0x10
add edx, 0x1161
mov rcx, r12
call fcn.14001cce0
mov eax, ebx
shr eax, 2
imul eax, eax, 0x4925
shr eax, 0x11
lea ecx, [rax + rax*8]
lea ecx, [rcx + rcx*2]
add ecx, eax
sub bx, cx
je 0x14001989e
add ebx, 0x11a7
movzx edx, bx
mov rcx, r12
call fcn.14001cce0
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
jne 0x140019c00
movzx ecx, byte [rsp + 0x98]
cmp cl, 2
je 0x14001a052
mov rbx, qword [rsp + 0x88]
mov r10, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
movzx r9d, byte [rsp + 0x99]
mov r11, qword [rsp + 0x90]
test rbx, rbx
je 0x140019996
cmp rbx, r11
je 0x14001998a
lea rdx, [rbx + 1]
mov qword [rsp + 0x88], rdx
movzx edx, byte [rbx]
test dl, dl
jns 0x140019eb6
mov ebp, edx
and ebp, 0x1f
lea r14, [rbx + 2]
mov qword [rsp + 0x88], r14
movzx r13d, byte [rbx + 1]
and r13d, 0x3f
cmp dl, 0xdf
jbe 0x14001a19a
lea r14, [rbx + 3]
mov qword [rsp + 0x88], r14
movzx r14d, byte [rbx + 2]
shl r13d, 6
and r14d, 0x3f
or r14d, r13d
cmp dl, 0xf0
jb 0x14001a1a7
lea rdx, [rbx + 4]
mov qword [rsp + 0x88], rdx
movzx edx, byte [rbx + 3]
and ebp, 7
shl ebp, 0x12
shl r14d, 6
and edx, 0x3f
or edx, r14d
or edx, ebp
cmp edx, 0x110000
jne case.0x140019b55.0
mov qword [rsp + 0x88], 0
cmp r10, r8
je 0x14001a04a
lea rdx, [r10 + 1]
mov qword [rsp + 0x70], rdx
movzx ebx, byte [r10]
test bl, bl
js 0x1400199d0
mov r10, rdx
mov edx, ebx
lea ebx, [rdx - 0x2d]
cmp ebx, 2
jae 0x140019a70
jmp 0x140019eb6
mov edx, ebx
and edx, 0x1f
lea r13, [r10 + 2]
mov qword [rsp + 0x70], r13
movzx r14d, byte [r10 + 1]
and r14d, 0x3f
cmp bl, 0xdf
jbe 0x140019a3d
lea r13, [r10 + 3]
mov qword [rsp + 0x70], r13
movzx ebp, byte [r10 + 2]
shl r14d, 6
and ebp, 0x3f
or ebp, r14d
cmp bl, 0xf0
jb 0x140019a53
lea rbx, [r10 + 4]
mov qword [rsp + 0x70], rbx
movzx r14d, byte [r10 + 3]
and edx, 7
shl edx, 0x12
shl ebp, 6
and r14d, 0x3f
or r14d, ebp
or r14d, edx
mov r10, rbx
mov edx, r14d
lea ebx, [rdx - 0x2d]
cmp ebx, 2
jae 0x140019a70
jmp 0x140019eb6
shl edx, 6
or edx, r14d
mov r10, r13
lea ebx, [rdx - 0x2d]
cmp ebx, 2
jae 0x140019a70
jmp 0x140019eb6
shl edx, 0xc
or ebp, edx
mov r10, r13
mov edx, ebp
lea ebx, [rdx - 0x2d]
cmp ebx, 2
jb 0x140019eb6
nop dword [rax]
cmp edx, 0x110000
je 0x14001a04a
lea ebx, [rdx - 0x61]
cmp ebx, 0x1a
jb 0x140019eb6
lea ebx, [rdx - 0x30]
cmp ebx, 0xa
jb 0x140019eb6
mov ebx, 0x75a
xor r14d, r14d
mov ebp, 0x75a
nop word cs:[rax + rax]
shr rbx, 1
add rbx, r14
mov r13d, dword [r15 + rbx*8]
cmp r13d, edx
je 0x140019ae9
lea rsi, [rbx + 1]
cmp r13d, edx
cmova rbp, rbx
cmovb r14, rsi
mov rbx, rbp
sub rbx, r14
ja 0x140019ab0
dec r14
mov rbx, r14
cmp r14, 0x759
ja case.0x140019b55.1
movzx esi, word [r15 + rbx*8 + 4]
mov ebp, esi
and ebp, 0x7fff
movzx r14d, bp
test si, si
js 0x140019b20
movzx esi, word [r15 + rbx*8]
mov ebp, edx
sub bp, si
add ebp, r14d
movzx esi, bp
cmp esi, 0x1f73
jb 0x140019b2d
jmp case.0x140019b55.1
cmp r14d, 0x1f73
jae case.0x140019b55.1
movzx r14d, bp
movzx ebp, byte [rdi + r14*4]
mov ebx, 0
cmp ebp, 1
je case.default.0x140019b55
mov r11d, ebp
lea rsi, [0x14018add0]
movsxd r11, dword [rsi + r11*4]
add r11, rsi
jmp r11
mov ecx, dword [rsp + 0x48]
lea rsi, [rsp + 0x50]
mov rax, qword [rsp + 0xa0]
test ecx, ecx
je 0x140019c21
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x60]
jmp 0x140019c34
movzx r9d, word [rsp + 0x4c]
mov r8, rsi
cmp r9, 5
jae case.0x140019b55.1
cmp rax, r9
jae case.0x140019b55.1
mov r14d, dword [r8 + rax*8 + 4]
inc rax
cmp rax, rdx
jne 0x140019d00
test ecx, ecx
je 0x140019d0a
mov rax, qword [rsp + 0x60]
sub rax, rdx
je 0x140019d18
xor ecx, ecx
nop word cs:[rax + rax]
mov rdx, qword [rsp + 0xa8]
add rdx, rcx
cmp dword [rsp + 0x48], 0
je 0x140019ca0
mov r8, qword [rsp + 0x60]
cmp rdx, r8
jae case.0x140019b55.1
mov r9, qword [rsp + 0x58]
jmp 0x140019cbc
movzx r8d, word [rsp + 0x4c]
cmp r8, 5
jae case.0x140019b55.1
mov r9, rsi
cmp rdx, r8
jae case.0x140019b55.1
cmp rcx, r8
jae case.0x140019b55.1
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 0x140019c70
mov ecx, dword [rsp + 0x48]
test ecx, ecx
jne 0x140019d1c
movzx ecx, word [rsp + 0x4c]
cmp rax, rcx
jae 0x140019d28
mov word [rsp + 0x4c], ax
jmp 0x140019d28
mov qword [rsp + 0xa0], rax
jmp 0x140019d2f
movzx eax, word [rsp + 0x4c]
sub rax, rdx
jne 0x140019c64
test ecx, ecx
je 0x140019cec
cmp qword [rsp + 0x60], rax
jb 0x140019d28
mov qword [rsp + 0x60], rax
movdqu xmmword [r12 + 0x58], xmm6
imul eax, r14d, 0x9e3779b9
imul ecx, r14d, 0x31415926
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x1f
and eax, 0xfffffffe
lea rdx, [0x1401b34d8]
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, [0x1401b3c0c]
mov ebp, dword [rax + rcx]
mov eax, ebp
shr eax, 8
cmp eax, r14d
mov eax, 0
cmovne ebp, eax
mov ebx, dword [rsp + 0xd8]
cmp ebx, 0x110000
jne 0x140019db0
test bpl, bpl
jne 0x14001a220
mov dword [rsp + 0xd8], r14d
jmp 0x14001989e
cmp byte [rsp + 0xdc], 0
je 0x140019de1
cmp byte [rsp + 0xdd], bpl
jae 0x140019e00
mov ecx, ebx
mov edx, r14d
call fcn.140089de0
cmp eax, 0x110000
je 0x140019e09
mov dword [rsp + 0xd8], eax
jmp 0x14001989e
mov ecx, ebx
mov edx, r14d
call fcn.140089de0
cmp eax, 0x110000
jne 0x14001a0e0
test bpl, bpl
jne 0x140019e09
jmp 0x14001a291
test bpl, bpl
je 0x14001a26a
cmp dword [rsp + 0xb8], 0
je 0x140019e50
mov rdx, qword [rsp + 0xd0]
cmp rdx, qword [rsp + 0xc0]
jne 0x140019e3a
lea rcx, [rsp + 0xc0]
call fcn.14001d920
mov rdx, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xc8]
mov dword [rax + rdx*4], r14d
inc qword [rsp + 0xd0]
jmp 0x140019e74
movzx eax, word [rsp + 0xbc]
cmp rax, 3
ja 0x14001a1b5
mov dword [rsp + rax*4 + 0xc0], r14d
inc eax
mov word [rsp + 0xbc], ax
mov byte [rsp + 0xdc], 1
mov byte [rsp + 0xdd], bpl
jmp 0x14001989e
cmp edx, 0x110000
je 0x14001a04a
cmp byte [rsp + 0xb0], 0
je 0x140019f7e
cmp edx, 0x80
jb 0x140019896
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x140019836
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x1f
and r8d, 0xfffffffe
lea r9, [0x1401bf470]
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, [0x1401c1238]
mov rbx, qword [r8 + r9]
cmp edx, ebx
jne 0x14001a0ec
mov rax, rbx
shr rax, 0x20
movzx eax, ax
cmp rax, 0x1668
jae case.0x140019b55.1
shr rbx, 0x30
mov ecx, 0x1667
sub rcx, rax
cmp rbx, rcx
ja case.0x140019b55.1
lea rcx, [0x1401c8958]
lea r14, [rcx + rax*4]
test rbx, rbx
jne 0x14001a16a
jmp 0x14001989e
cmp edx, 0x80
jb 0x140019896
lea ebp, [rdx - 0xac00]
cmp ebp, 0x2ba4
jb 0x140019836
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x1401b6eb4]
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, [0x1401b7ed0]
mov rbx, qword [rcx + rax*8]
cmp edx, ebx
jne 0x140019896
mov rax, rbx
shr rax, 0x20
movzx eax, ax
cmp rax, 0xd4f
jae case.0x140019b55.1
shr rbx, 0x30
mov ecx, 0xd4e
sub rcx, rax
cmp rbx, rcx
ja case.0x140019b55.1
test rbx, rbx
je 0x14001989e
lea rcx, [0x1401bbf38]
lea r14, [rcx + rax*4]
shl rbx, 2
xor r13d, r13d
nop
mov edx, dword [r14 + r13]
mov rcx, r12
call fcn.14001cce0
add r13, 4
cmp rbx, r13
jne 0x14001a030
jmp 0x14001989e
mov byte [rsp + 0x98], 2
mov r8d, dword [rsp + 0x48]
test r8d, r8d
mov rcx, qword [rsp + 0x60]
movzx edx, word [rsp + 0x4c]
mov rax, rcx
cmove rax, rdx
test rax, rax
je 0x14001a230
mov rax, qword [rsp + 0xa8]
test r8d, r8d
je 0x14001a090
mov r8, qword [rsp + 0x58]
mov rdx, rcx
lea rsi, [rsp + 0x50]
jmp 0x14001a0a2
lea rsi, [rsp + 0x50]
mov r8, rsi
cmp dx, 5
jae case.0x140019b55.1
sub rdx, rax
jb case.0x140019b55.1
lea rcx, [r8 + rax*8]
call fcn.140018e50
mov ecx, dword [rsp + 0x48]
test ecx, ecx
je 0x14001a0ce
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rdx
jmp 0x140019c09
movzx edx, word [rsp + 0x4c]
mov qword [rsp + 0xa8], rdx
jmp 0x140019c09
mov dword [rsp + 0xd8], eax
jmp 0x14001989e
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x1401b6eb4]
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, [0x1401b7ed0]
mov rbx, qword [rcx + rax*8]
cmp edx, ebx
jne 0x140019896
mov rax, rbx
shr rax, 0x20
movzx eax, ax
cmp rax, 0xd4f
jae case.0x140019b55.1
shr rbx, 0x30
mov ecx, 0xd4e
sub rcx, rax
cmp rbx, rcx
ja case.0x140019b55.1
lea rcx, [0x1401bbf38]
lea r14, [rcx + rax*4]
test rbx, rbx
je 0x14001989e
shl rbx, 2
xor r13d, r13d
nop word cs:[rax + rax]
mov edx, dword [r14 + r13]
mov rcx, r12
call fcn.14001cce0
add r13, 4
cmp rbx, r13
jne 0x14001a180
jmp 0x14001989e
shl ebp, 6
or ebp, r13d
mov edx, ebp
jmp 0x140019eb6
shl ebp, 0xc
or r14d, ebp
mov edx, r14d
jmp 0x140019eb6
lea rcx, [rsp + 0x130]
lea rdx, [rsp + 0xbc]
mov r8d, r14d
call fcn.14001db30
cmp dword [rsp + 0xb8], 0
je 0x14001a1f8
cmp qword [rsp + 0xc0], 0
je 0x14001a1f8
mov r8, qword [rsp + 0xc8]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
movdqu xmm0, xmmword [rsp + 0x130]
movdqu xmm1, xmmword [rsp + 0x140]
movdqu xmmword [r12 + 0x80], xmm1
movdqu xmmword [r12 + 0x70], xmm0
jmp 0x140019e74
mov ebx, r14d
jmp 0x14001a370
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x40], 0
mov ebx, dword [rsp + 0xd8]
mov eax, 2
cmp ebx, 0x110000
je 0x1400197bd
mov dword [rsp + 0xd8], 0x110000
jmp 0x14001a370
mov dword [rsp + 0xd8], r14d
mov byte [rsp + 0xdc], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
jmp 0x14001a370
mov dword [rsp + 0xd8], r14d
jmp 0x14001a370
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0xb8]
test eax, eax
je 0x14001a2cc
cmp rcx, qword [rsp + 0xd0]
jae 0x14001a320
mov rdx, qword [rsp + 0xc8]
jmp 0x14001a2ec
mov rcx, qword [rsp + 0xc8]
jmp 0x14001a30a
movzx r8d, word [rsp + 0xbc]
cmp r8, 5
jae case.0x140019b55.1
lea rdx, [rsp + 0xc0]
cmp rcx, r8
jae 0x14001a32e
mov ebx, dword [rdx + rcx*4]
inc rcx
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x40], rcx
jmp 0x14001a370
lea rcx, [rsp + 0xc0]
mov ebx, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], rax
jmp 0x14001a370
mov qword [rsp + 0xd0], 0
jmp 0x14001a343
cmp word [rsp + 0xbc], 0
je 0x14001a343
mov word [rsp + 0xbc], 0
mov ebx, dword [rsp + 0xd8]
mov dword [rsp + 0xd8], 0x110000
cmp ebx, 0x110000
je 0x14001a4be
nop word cs:[rax + rax]
cmp ebx, 0x80
jae 0x14001a3b0
mov rsi, qword [rsp + 0x320]
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x14001a395
mov rcx, rsi
call fcn.1400c0460
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rax + rdx], bl
inc rdx
mov qword [rsi + 0x10], rdx
mov rax, qword [rsp + 0x38]
jmp 0x1400197bd
mov dword [rsp + 0x130], 0
mov eax, ebx
cmp ebx, 0x800
jae 0x14001a3e5
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x130], al
and bl, 0x3f
or bl, 0x80
mov byte [rsp + 0x131], bl
mov ebx, 2
jmp 0x14001a45b
cmp ebx, 0x10000
jae 0x14001a41d
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x130], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x131], al
and bl, 0x3f
or bl, 0x80
mov byte [rsp + 0x132], bl
mov ebx, 3
jmp 0x14001a45b
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x130], al
mov eax, ebx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x131], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x132], al
and bl, 0x3f
or bl, 0x80
mov byte [rsp + 0x133], bl
mov ebx, 4
mov rcx, qword [rsp + 0x320]
mov rax, qword [rcx]
mov r14, qword [rcx + 0x10]
sub rax, r14
cmp rax, rbx
jb 0x14001a4a2
mov rsi, qword [rsp + 0x320]
mov rcx, qword [rsi + 8]
add rcx, r14
lea rdx, [rsp + 0x130]
mov r8, rbx
call sub.msvcrt.dll_memcpy
add r14, rbx
mov qword [rsi + 0x10], r14
mov rax, qword [rsp + 0x38]
jmp 0x1400197bd
mov rsi, qword [rsp + 0x320]
mov rcx, rsi
mov rdx, r14
mov r8, rbx
call fcn.1400938d0
mov r14, qword [rsi + 0x10]
jmp 0x14001a472
cmp dword [rsp + 0x48], 0
je 0x14001a501
cmp qword [rsp + 0x50], 0
mov r14, qword [rsp + 0x328]
mov r15, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x320]
je 0x14001a519
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov eax, dword [rsp + 0xb8]
jmp 0x14001a519
mov r14, qword [rsp + 0x328]
mov r15, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x320]
test eax, eax
je 0x14001a53e
cmp qword [rsp + 0xc0], 0
je 0x14001a53e
mov r8, qword [rsp + 0xc8]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x120], 8
mov qword [rsp + 0x128], 0
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rcx
mov qword [rsp + 0x150], 0
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x160], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x168], rax
mov word [rsp + 0x170], 1
and qword [rsp + 0x190], 0xffffffffffff00ff
mov dil, 1
lea r12, [rsp + 0x130]
lea r13, [0x1401af110]
movdqa xmm6, xmmword [0x14018a8d0]
movdqa xmm7, xmmword [0x14018a8e0]
xorps xmm8, xmm8
movdqa xmm14, xmmword [0x14018a940]
movdqa xmm15, xmmword [0x14018a950]
movdqa xmm9, xmmword [0x14018a960]
movdqa xmm10, xmmword [0x14018a970]
movdqa xmm12, xmmword [0x14018a990]
movdqa xmm13, xmmword [0x14018a9a0]
movdqa xmm11, xmmword [0x14018a9b0]
mov dword [rsp + 0x24], 0
jmp 0x14001a691
mov dword [rsp + 0x24], 0
mov rcx, rsi
mov rdx, rbp
mov r8, r15
lea r9, [rsp + 0xe8]
call fcn.14001ca60
mov rax, qword [r14]
mov rbx, qword [r14 + 0x10]
sub rax, rbx
cmp rax, rbp
jb 0x14001acb6
mov rcx, qword [r14 + 8]
add rcx, rbx
mov rdx, rsi
mov r8, rbp
call sub.msvcrt.dll_memcpy
add rbp, rbx
mov qword [r14 + 0x10], rbp
xor edi, edi
mov rcx, r12
call fcn.14008e0b0
test rax, rax
je 0x14001c0f6
mov rsi, rax
mov rbp, rdx
test dil, 1
jne 0x14001a6d2
mov rdx, qword [r14 + 0x10]
cmp rdx, qword [r14]
jne 0x14001a6c3
mov rcx, r14
call fcn.1400c0460
mov rdx, qword [r14 + 0x10]
mov rax, qword [r14 + 8]
mov byte [rax + rdx], 0x2e
inc rdx
mov qword [r14 + 0x10], rdx
cmp rbp, 4
jb 0x14001a6e4
cmp dword [rsi], 0x2d2d6e78
je 0x14001a81a
test byte [rsp + 0x24], 1
jne 0x14001a64d
test rbp, rbp
je 0x14001a645
mov rax, rsi
add rax, rbp
mov rcx, rsi
jmp 0x14001a70c
cmp rcx, rax
je 0x14001a645
movzx edx, byte [rcx]
test dl, dl
js 0x14001a718
inc rcx
jmp 0x14001a78b
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14001a76d
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14001a77d
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 0x14001a645
add rcx, 4
jmp 0x14001a78b
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14001a78b
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001a703
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001a7c3
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001a703
shr r8, 1
add r8, r10
lea rdi, [r8 + r8*2]
mov r11d, dword [r13 + rdi*4]
mov ebx, dword [r13 + rdi*4 + 4]
cmp ebx, edx
jb 0x14001a7e0
cmp r11d, edx
jbe 0x14001a7ef
cmp ebx, edx
jae 0x14001a7b0
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001a7b0
movzx edx, byte [r13 + rdi*4 + 8]
cmp rdx, 0x11
ja 0x14001a703
mov r8d, 0x20003
bt r8, rdx
jae 0x14001a703
mov al, 1
mov dword [rsp + 0x24], eax
jmp 0x14001a64d
lea r15, [rsi + 4]
add rbp, 0xfffffffffffffffc
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], 1
movabs rax, 0x2d0000002d
mov qword [rsp + 0x60], rax
lea rax, [rsi + 0xb]
and rax, 0xfffffffffffffff8
sub rax, r15
mov rcx, rsi
add rcx, 3
mov rdi, rbp
movabs r11, 0x8080808080808080
mov r14d, 0x1a
jmp 0x14001a893
mov qword [rsp + 0x50], rdi
cmp rdi, rbp
ja 0x14001a98d
mov rdx, rdi
mov r8, rdi
cmp rdi, rax
jb 0x14001a8b7
mov r9d, edi
sub r9d, eax
and r9d, 0xf
mov rdx, rdi
mov r8, rax
sub rdx, r9
jb case.0x140019b55.1
lea r9, [r15 + rdi]
sub r9, r15
sub r9, rdx
lea r10, [rcx + rdi]
nop word cs:[rax + rax]
test r9, r9
je 0x14001a8ea
dec r9
cmp byte [r10], 0x2d
lea r10, [r10 - 1]
jne 0x14001a8d0
add r9, rdx
mov rdi, r9
jmp 0x14001a93c
mov r9, rdx
cmp rdx, r8
jbe 0x14001a920
lea rdx, [r9 - 0x10]
movdqu xmm0, xmmword [rsi + r9 - 0xc]
movdqa xmm1, xmm0
pxor xmm1, xmm6
paddq xmm1, xmm7
pandn xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
test r10, r11
je 0x14001a8ea
cmp r9, rdi
ja case.0x140019b55.1
mov rdi, r9
sub rdi, 1
jb 0x14001a98d
cmp byte [rcx + r9], 0x2d
mov r9, rdi
jne 0x14001a92c
cmp rdi, rbp
jae 0x14001a885
mov dl, 0x2d
cmp byte [r15 + rdi], dl
jne 0x14001a885
test rdi, rdi
je 0x14001accd
cmp rdi, rbp
jae 0x14001a96a
cmp byte [r15 + rdi], 0xbf
jle case.0x140019b55.1
lea rcx, [rdi + 1]
mov rax, rbp
sub rax, rcx
jbe 0x14001ace6
cmp byte [r15 + rcx], 0xbf
mov rbp, rcx
jg 0x14001acec
jmp case.0x140019b55.1
lea rax, str.corrupt_deflate_stream
mov qword [rsp + 0xe0], rax
xor edi, edi
mov rcx, rdi
cmp rdi, 8
jb 0x14001ad0a
mov rcx, qword [rsp + 0xe0]
lea rdx, [rcx + 7]
and rdx, 0xfffffffffffffff8
mov rax, rdx
sub rax, rcx
mov rcx, rdi
cmp rax, rdi
ja 0x14001ad0a
mov rcx, qword [rsp + 0xe0]
test qword [rcx], r11
jne 0x14001ad29
cmp rdx, qword [rsp + 0xe0]
mov ecx, 8
cmove rax, rcx
lea rcx, [rdi - 8]
cmp rax, rcx
jae 0x14001aa13
mov rdx, qword [rsp + 0xe0]
test qword [rdx + rax], r11
jne 0x14001ad29
add rax, 8
cmp rax, rcx
jb 0x14001a9f8
mov rax, qword [rsp + 0xe0]
test qword [rax + rcx], r11
jne 0x14001ad29
add rbp, r15
mov r12d, pe_nt_image_headers64
mov r13d, 0x48
xor edx, edx
xor ebx, ebx
mov eax, edi
mov dword [rsp + 0x30], edi
cmp r15, rbp
mov rax, rdx
mov qword [rsp + 0x28], rdx
je 0x14001ac73
lea r9d, [r13 + 0x1a]
inc r15
mov r10d, r13d
neg r10d
mov r11d, 1
mov esi, 0x24
mov ecx, ebx
movzx eax, byte [r15 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jb 0x14001aa8b
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x14001aa8f
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x14001aa8f
jmp 0x14001ad29
add al, 0xea
mov edx, eax
test r11d, r11d
je case.0x140019b55.1
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x14001ad29
mov eax, r11d
imul eax, r8d
add ecx, eax
lea eax, [r10 + rsi]
cmp esi, r9d
cmovae eax, r14d
cmp esi, r13d
mov edx, 1
cmovbe eax, edx
cmp eax, r8d
ja 0x14001ab10
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x14001ad29
cmp r15, rbp
je 0x14001ad29
add esi, 0x24
imul r11d, r8d
inc r15
movzx eax, byte [r15 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x14001aa76
jmp 0x14001aa8b
mov r10d, dword [rsp + 0x30]
inc r10d
je case.0x140019b55.1
mov eax, ecx
sub eax, ebx
test ebx, ebx
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 0x14001ab80
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 0x14001ab56
jmp 0x14001ab83
mov r8d, eax
lea eax, [r8*4]
lea eax, [rax + rax*8]
add r8d, 0x26
xor edx, edx
div r8w
mov esi, eax
mov eax, ecx
xor edx, edx
mov dword [rsp + 0x30], r10d
div r10d
add r12d, eax
jb 0x14001ad29
cmp r12d, 0x110000
je 0x14001ad29
mov eax, r12d
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x14001ad29
mov ebx, edx
mov rax, qword [rsp + 0x120]
mov r14d, edx
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x14001ac12
mov rcx, rdx
shl rcx, 4
xor r9d, r9d
jmp 0x14001ac00
add r9, 0x10
cmp rcx, r9
je 0x14001ac12
mov r8, qword [rax + r9]
cmp r8, r14
jb 0x14001abf7
inc r8
mov qword [rax + r9], r8
jmp 0x14001abf7
cmp rdx, qword [rsp + 0x118]
jne 0x14001ac39
lea rcx, [rsp + 0x118]
call fcn.14001da80
mov rax, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x128]
movzx ecx, si
add r13d, ecx
mov rcx, rdx
shl rcx, 4
mov qword [rax + rcx], r14
mov dword [rax + rcx + 8], r12d
inc rdx
mov qword [rsp + 0x128], rdx
inc ebx
mov r14d, 0x1a
cmp r15, rbp
mov rax, rdx
mov qword [rsp + 0x28], rdx
jne 0x14001aa4f
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0xf8], rax
cmp rdx, 0x15
jae 0x14001ad5d
cmp qword [rsp + 0x28], 1
jbe 0x14001b400
mov r8d, 1
mov rcx, qword [rsp + 0xf8]
mov rdx, qword [rsp + 0x28]
call fcn.140018da0
jmp 0x14001b400
mov rcx, r14
mov rdx, rbx
mov r8, rbp
call fcn.1400938d0
mov rbx, qword [r14 + 0x10]
jmp 0x14001a676
mov qword [rsp + 0xe0], r15
xor edi, edi
mov rcx, rdi
cmp rdi, 8
jae 0x14001a9ab
jmp 0x14001ad0a
jne case.0x140019b55.1
add rbp, r15
mov qword [rsp + 0xe0], r15
mov r15, rbp
mov rbp, rax
mov rcx, rdi
cmp rdi, 8
jae 0x14001a9ab
mov rax, rcx
sub rax, 1
jb 0x14001aa25
mov rdx, qword [rsp + 0xe0]
cmp byte [rdx + rcx - 1], 0
mov rcx, rax
jns 0x14001ad0a
mov byte [rsp + 0xe8], 1
mov al, 1
mov dword [rsp + 0x24], eax
xor edi, edi
mov r14, qword [rsp + 0x328]
mov r15, qword [rsp + 0x110]
lea r13, [0x1401af110]
lea r12, [rsp + 0x130]
jmp 0x14001a691
movzx eax, byte [0x140228121]
mov rax, qword [0x140228110]
test rax, rax
jne 0x14001ad85
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je case.0x140019b55.1
mov qword [0x140228110], rax
mov rcx, qword [rsp + 0x28]
lea r8, [rcx*8]
movabs rcx, 0x7ffffffffffffff0
and r8, rcx
mov rcx, rax
xor edx, edx
call sub.kernel32.dll_HeapAlloc
mov qword [rsp + 0x108], rax
test rax, rax
je case.0x140019b55.1
movzx eax, byte [0x140228121]
mov rax, qword [0x140228110]
test rax, rax
jne 0x14001ade2
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je case.0x140019b55.1
mov qword [0x140228110], rax
mov r8d, 0x100
mov rcx, rax
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je case.0x140019b55.1
mov rbp, rax
mov r14, qword [rsp + 0xf8]
lea rax, [r14 + 0x20]
mov qword [rsp + 0x178], rax
lea rax, [r14 + 8]
mov qword [rsp + 0x1a0], rax
lea rax, [r14 - 8]
mov qword [rsp + 0x198], rax
lea rax, [r14 - 0x10]
mov qword [rsp + 0x1a8], rax
mov eax, 0x10
mov qword [rsp + 0x180], rax
xor r13d, r13d
xor r15d, r15d
mov r11, qword [rsp + 0x28]
jmp 0x14001ae67
mov r15d, 1
mov r13, qword [rsp + 0x188]
cmp r13, r11
jae 0x14001b3d9
mov r8, r11
sub r8, r13
mov rax, r13
shl rax, 4
lea rcx, [r14 + rax]
cmp r8, 2
jae 0x14001ae86
mov rdx, r11
jmp 0x14001af96
mov rdx, qword [rcx]
mov r9, qword [rcx + 0x10]
cmp r9, rdx
jae 0x14001aea7
cmp r8, 2
jne 0x14001aebc
lea rdx, [r13 + 2]
mov r8d, 2
jmp 0x14001af2d
cmp r8, 2
jne 0x14001aeea
lea rdx, [r13 + 2]
mov r8d, 2
jmp 0x14001af96
mov r10, qword [rsp + 0x178]
lea r11, [r10 + rax]
mov r10d, 2
mov rsi, r9
mov rbx, rsi
mov rsi, qword [r11]
cmp rsi, rbx
jae 0x14001af19
inc r10
add r11, 0x10
cmp r8, r10
jne 0x14001aed1
jmp 0x14001af16
mov r10, qword [rsp + 0x178]
lea r11, [r10 + rax]
mov r10d, 2
mov rsi, r9
mov rbx, rsi
mov rsi, qword [r11]
cmp rsi, rbx
jb 0x14001af19
inc r10
add r11, 0x10
cmp r8, r10
jne 0x14001aeff
mov r10, r8
mov r11, qword [rsp + 0x28]
lea rsi, [r10 + r13]
mov r8, r10
cmp r9, rdx
mov rdx, rsi
jae 0x14001af96
cmp r13, rdx
ja case.0x140019b55.1
cmp rdx, r11
ja case.0x140019b55.1
cmp r8, 2
jb 0x14001af96
mov r12, rdx
mov rdx, r8
shr rdx, 1
add rax, qword [rsp + 0x1a0]
lea r9, [r8 + r13]
shl r9, 4
add r9, qword [rsp + 0x198]
mov r10, qword [rax - 8]
mov r11d, dword [rax]
mov rsi, qword [r9 - 8]
mov ebx, dword [r9]
mov qword [rax - 8], rsi
mov dword [rax], ebx
mov qword [r9 - 8], r10
mov dword [r9], r11d
add rax, 0x10
add r9, 0xfffffffffffffff0
dec rdx
jne 0x14001af66
mov r11, qword [rsp + 0x28]
mov rdx, r12
mov rsi, rdx
sub rsi, r13
jb case.0x140019b55.1
cmp rdx, r11
ja case.0x140019b55.1
jae 0x14001afe6
cmp r8, 0xa
jae 0x14001afe6
lea rsi, [r13 + 0xa]
cmp rsi, r11
cmovae rsi, r11
mov qword [rsp + 0x188], rsi
sub rsi, r13
jb case.0x140019b55.1
cmp r8, 1
adc r8, 0
mov rdx, rsi
call fcn.140018da0
mov r11, qword [rsp + 0x28]
jmp 0x14001afee
mov qword [rsp + 0x188], rdx
cmp r15, qword [rsp + 0x180]
jne 0x14001b074
movzx eax, byte [0x140228121]
mov rax, qword [0x140228110]
test rax, rax
jne 0x14001b020
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je case.0x140019b55.1
mov qword [0x140228110], rax
mov r8, r15
shl r8, 5
mov rcx, rax
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je case.0x140019b55.1
mov rbx, rax
lea rax, [r15 + r15]
mov qword [rsp + 0x180], rax
mov r8, r15
shl r8, 4
mov rcx, rbx
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x140228110]
xor edx, edx
mov r8, rbp
call sub.kernel32.dll_HeapFree
mov rbp, rbx
mov r11, qword [rsp + 0x28]
mov rax, r15
shl rax, 4
mov qword [rbp + rax], rsi
mov qword [rbp + rax + 8], r13
inc r15
mov rax, r15
cmp r15, 2
mov qword [rsp + 0x1b0], rbp
jae 0x14001b12b
jmp 0x14001ae56
mov rdx, qword [rsp + 0x108]
mov r13, qword [rsp + 0x100]
sub rbx, rdx
mov rcx, rsi
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x1c8]
add rax, r15
mov rcx, qword [rsp + 0x1c0]
mov qword [rcx], rax
mov rax, qword [rsp + 0x1d0]
mov rcx, qword [rsp + 0x1b8]
mov qword [rcx], rax
lea rdx, [r13 + 0x10]
mov rax, qword [rsp + 0x1e0]
not rax
mov r8, qword [rsp + 0x30]
add r8, rax
shl r8, 4
mov rcx, r13
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x1d8]
cmp rax, 1
mov r11, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x1b0]
jbe 0x14001ae50
mov r15, rax
lea r10, [rax - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [rbp + rcx]
mov rcx, qword [rbp + rcx + 8]
add rcx, rax
cmp rcx, r11
je 0x14001b198
mov rdx, r15
shl rdx, 4
mov r8, qword [rdx + rbp - 0x20]
cmp r8, rax
jbe 0x14001b198
cmp r15, 2
jbe 0x14001b3c3
lea rsi, [r15 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x14001b1ae
cmp r15, 3
jbe 0x14001b3ce
add r8, rcx
cmp qword [rdx + rbp - 0x40], r8
jbe 0x14001b1ae
jmp 0x14001ae56
cmp r15, 3
jb 0x14001b1b3
lea rsi, [r15 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x14001b1b7
lea rsi, [r15 - 2]
cmp r15, rsi
jbe case.0x140019b55.1
lea rax, [rsi + 1]
mov qword [rsp + 0x30], r15
cmp r15, rax
jbe case.0x140019b55.1
mov rcx, rsi
shl rcx, 4
mov rdx, qword [rbp + rcx + 8]
shl rax, 4
mov r8, qword [rbp + rax]
mov r12, qword [rbp + rax + 8]
add r12, r8
mov r13, r12
sub r13, rdx
jb case.0x140019b55.1
mov qword [rsp + 0x1e0], rsi
cmp r12, r11
ja case.0x140019b55.1
mov qword [rsp + 0x1c8], r8
mov qword [rsp + 0x1d8], r10
lea r8, [rcx + rbp]
mov qword [rsp + 0x100], r8
mov r15, qword [rbp + rcx]
lea rcx, [rbp + rax]
mov qword [rsp + 0x1c0], rcx
lea rax, [rbp + rax + 8]
mov qword [rsp + 0x1b8], rax
mov qword [rsp + 0x1d0], rdx
mov rsi, rdx
shl rsi, 4
add rsi, r14
mov rbx, r15
shl rbx, 4
lea rbp, [rsi + rbx]
shl r12, 4
mov r14, r13
sub r14, r15
cmp r14, r15
jae 0x14001b319
mov rbx, r14
shl rbx, 4
mov r13, qword [rsp + 0x108]
mov rcx, r13
mov rdx, rbp
mov r8, rbx
call sub.msvcrt.dll_memcpy
add rbx, r13
test r15, r15
jle 0x14001b3a6
test r14, r14
jle 0x14001b3a6
add r12, qword [rsp + 0x1a8]
mov r14, qword [rsp + 0xf8]
mov rax, rbp
mov rcx, rbx
mov rdx, qword [rbx - 0x10]
mov r8, qword [rbp - 0x10]
cmp rdx, r8
mov ebp, 0
sbb rbp, rbp
cmp rdx, r8
mov ebx, 0
adc rbx, 0xffffffffffffffff
shl rbp, 4
add rbp, rax
shl rbx, 4
add rbx, rcx
cmp rdx, r8
mov rax, rbx
cmovb rax, rbp
movdqu xmm0, xmmword [rax]
movdqu xmmword [r12], xmm0
cmp rbp, rsi
jbe 0x14001b30e
add r12, 0xfffffffffffffff0
cmp rbx, r13
ja 0x14001b2b9
mov rsi, rbp
mov rdx, r13
jmp 0x14001b0aa
mov r14, qword [rsp + 0x108]
mov rcx, r14
mov rdx, rsi
mov r8, rbx
call sub.msvcrt.dll_memcpy
add rbx, r14
test r15, r15
jle 0x14001b3ae
cmp r13, r15
mov r14, qword [rsp + 0xf8]
jle 0x14001b0a2
add r12, r14
mov rdx, qword [rsp + 0x108]
mov r13, qword [rsp + 0x100]
mov r8, rdx
mov rcx, qword [rbp]
xor edx, edx
xor eax, eax
cmp rcx, qword [r8]
setae dl
setb cl
mov r9, r8
cmovb r9, rbp
movdqu xmm0, xmmword [r9]
movdqu xmmword [rsi], xmm0
add rsi, 0x10
shl rdx, 4
add rdx, r8
cmp rdx, rbx
jae 0x14001b0b2
mov al, cl
shl rax, 4
add rbp, rax
cmp rbp, r12
jb 0x14001b35b
jmp 0x14001b0b2
mov rsi, rbp
mov rdx, r13
jmp 0x14001b3b6
mov rdx, qword [rsp + 0x108]
mov r14, qword [rsp + 0xf8]
jmp 0x14001b0aa
mov r15d, 2
jmp 0x14001ae56
mov r15d, 3
jmp 0x14001ae56
mov rcx, qword [0x140228110]
xor edx, edx
mov r8, rbp
call sub.kernel32.dll_HeapFree
mov rcx, qword [0x140228110]
xor edx, edx
mov r8, qword [rsp + 0x108]
call sub.kernel32.dll_HeapFree
mov r10, qword [rsp + 0x28]
lea r8, [r10 + rdi]
mov rcx, qword [rsp + 0x328]
mov rax, qword [rcx]
mov rdx, qword [rcx + 0x10]
mov rcx, rdx
mov qword [rsp + 0x30], rdx
sub rax, rdx
cmp rax, r8
jb 0x14001c045
mov r15, qword [rsp + 0xe0]
add rdi, r15
xor r12d, r12d
xor ebp, ebp
lea r13, [rsp + 0x38]
cmp r12, r10
jb 0x14001b4ed
cmp r15, rdi
je 0x14001b6dc
movzx r8d, byte [r15]
test r8b, r8b
js 0x14001b46b
inc r15
movzx esi, r8b
inc rbp
jmp 0x14001b5b4
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [r15 + 1]
and r9d, 0x3f
cmp r8b, 0xdf
jbe 0x14001b4c3
movzx edx, byte [r15 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14001b4cc
movzx esi, byte [r15 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and esi, 0x3f
or esi, edx
or esi, eax
cmp esi, 0x110000
je 0x14001b6dc
add r15, 4
mov rcx, r15
jmp 0x14001b56f
add r15, 2
jmp 0x14001b591
add r15, 3
jmp 0x14001b5a2
mov rax, qword [rbx + 8]
mov byte [rax + rdx], sil
inc rdx
mov qword [rbx + 0x10], rdx
cmp r12, r10
jae 0x14001b44a
mov rax, r12
shl rax, 4
mov rcx, qword [rsp + 0xf8]
cmp qword [rcx + rax], rbp
jne 0x14001b50e
inc r12
mov esi, dword [rcx + rax + 8]
jmp 0x14001b5a9
mov rcx, r15
mov r15, rdi
cmp rcx, rdi
je 0x14001b50e
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x14001b57f
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x14001b58a
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14001b59b
movzx esi, byte [rcx + 3]
add rcx, 4
and eax, 7
shl eax, 0x12
shl edx, 6
and esi, 0x3f
or esi, edx
or esi, eax
mov r15, rcx
cmp esi, 0x110000
je 0x14001b50e
mov r15, rcx
cmp esi, 0x110000
jne 0x14001b5a9
jmp 0x14001b6dc
inc rcx
mov r15, rcx
jmp 0x14001b45f
add rcx, 2
mov r15, rcx
shl eax, 6
or eax, r9d
mov esi, eax
jmp 0x14001b5a9
add rcx, 3
mov r15, rcx
shl eax, 0xc
or eax, edx
mov esi, eax
inc rbp
cmp esi, 0x80
jae 0x14001b5df
mov rbx, qword [rsp + 0x328]
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rbx]
jne 0x14001b4d5
mov rcx, rbx
call fcn.1400c0460
mov r10, qword [rsp + 0x28]
mov rdx, qword [rbx + 0x10]
jmp 0x14001b4d5
mov dword [rsp + 0x38], 0
mov eax, esi
cmp esi, 0x800
jae 0x14001b60e
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x38], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x39], sil
mov esi, 2
jmp 0x14001b675
cmp esi, 0x10000
jae 0x14001b640
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x38], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x39], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x3a], sil
mov esi, 3
jmp 0x14001b675
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x38], al
mov eax, esi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x39], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x3a], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x3b], sil
mov esi, 4
mov rcx, qword [rsp + 0x328]
mov rax, qword [rcx]
mov rbx, qword [rcx + 0x10]
sub rax, rbx
cmp rax, rsi
jb 0x14001b6c0
mov r14, qword [rsp + 0x328]
mov rcx, qword [r14 + 8]
add rcx, rbx
mov rdx, r13
mov r8, rsi
call sub.msvcrt.dll_memcpy
add rbx, rsi
mov qword [r14 + 0x10], rbx
mov r10, qword [rsp + 0x28]
cmp r12, r10
jae 0x14001b44a
jmp 0x14001b4ed
mov r14, qword [rsp + 0x328]
mov rcx, r14
mov rdx, rbx
mov r8, rsi
call fcn.1400938d0
mov rbx, qword [r14 + 0x10]
jmp 0x14001b68c
mov rax, qword [rsp + 0x328]
mov rsi, qword [rax + 8]
mov rbp, qword [rax + 0x10]
cmp qword [rsp + 0x30], 0
je 0x14001b711
sub rbp, qword [rsp + 0x30]
jbe 0x14001b70b
mov rax, qword [rsp + 0x30]
cmp byte [rsi + rax], 0xbf
jg 0x14001b711
jmp case.0x140019b55.1
jne case.0x140019b55.1
add rsi, qword [rsp + 0x30]
test byte [rsp + 0x24], 1
jne 0x14001b856
test rbp, rbp
je 0x14001b84e
lea rax, [rsi + rbp]
mov rcx, rsi
lea r14, [0x1401af110]
jmp 0x14001b743
cmp rcx, rax
je 0x14001b84e
movzx edx, byte [rcx]
test dl, dl
js 0x14001b74f
inc rcx
jmp 0x14001b7c9
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14001b7a4
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14001b7b4
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 0x14001b84e
add rcx, 4
jmp 0x14001b7c2
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14001b7c9
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r14, [0x1401af110]
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14001b73a
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001b7fb
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001b73a
shr r8, 1
add r8, r10
lea rdi, [r8 + r8*2]
mov r11d, dword [r14 + rdi*4]
mov ebx, dword [r14 + rdi*4 + 4]
cmp ebx, edx
jb 0x14001b817
cmp r11d, edx
jbe 0x14001b826
cmp ebx, edx
jae 0x14001b7e8
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001b7e8
movzx edx, byte [r14 + rdi*4 + 8]
cmp rdx, 0x11
ja 0x14001b73a
mov r8d, 0x20003
bt r8, rdx
jae 0x14001b73a
mov al, 1
mov dword [rsp + 0x24], eax
jmp 0x14001b856
mov dword [rsp + 0x24], 0
movq xmm0, qword [rsp + 0xe8]
movzx eax, byte [rsp + 0xf1]
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 + 0xf0]
or al, byte [rsp + 0xf2]
or al, cl
xor edi, edi
or al, byte [rsp + 0xf3]
mov r14, qword [rsp + 0x328]
mov r15, qword [rsp + 0x110]
lea r13, [0x1401af110]
lea r12, [rsp + 0x130]
jne 0x14001a691
test rbp, rbp
je 0x14001c0d6
lea rdi, [rsi + rbp]
xor r8d, r8d
xor eax, eax
mov rcx, rsi
movzx edx, byte [rcx]
test dl, dl
js 0x14001b8f0
inc rcx
jmp 0x14001b97c
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp dl, 0xe0
jb 0x14001b945
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x14001b955
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 0x14001bede
add rcx, 4
jmp 0x14001b963
add rcx, 2
shl r9d, 6
or r9d, r11d
mov edx, r9d
jmp 0x14001b963
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
cmp edx, 0x7f
jbe 0x14001b97c
jmp 0x14001ba0a
inc rcx
cmp edx, 0x80
jae 0x14001ba07
cmp rcx, rdi
je 0x14001bede
movzx edx, byte [rcx]
test dl, dl
jns 0x14001b96d
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14001b9e1
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14001b9f4
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 0x14001bede
add rcx, 4
jmp 0x14001b970
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14001b970
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
jmp 0x14001b970
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, [0x1401b34d8]
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, [0x1401b3c0c]
mov r8d, dword [r8 + r10]
mov r10d, r8d
shr r10d, 8
cmp r10d, edx
mov r10d, 0
cmovne r8d, r10d
cmp r9b, r8b
jbe 0x14001ba82
test r8b, r8b
jne case.0x14001bc36.3907
lea r9d, [rdx - 0x340]
cmp r9d, 4
ja 0x14001ba99
cmp r9d, 2
jne case.0x14001bc36.3907
cmp edx, 0xd56
jg 0x14001bb00
cmp edx, 0x9de
jg 0x14001bb41
cmp edx, 0x93b
jg 0x14001bc62
lea r9d, [rdx - 0x30f]
cmp r9d, 0x36
ja 0x14001bada
movabs r10, 0x48020000001005
bt r10, r9
jb 0x14001bd4f
lea r9d, [rdx - 0x374]
cmp r9d, 0x13
ja case.0x14001bc36.3908
mov r10d, 0x80401
bt r10d, r9d
jb case.0x14001bc36.3907
jmp case.0x14001bc36.3908
cmp edx, 0x11126
jg 0x14001bba8
cmp edx, 0x102d
jle 0x14001bbee
cmp edx, 0x1f70
jg 0x14001bcb4
cmp edx, 0x102e
je 0x14001bd4f
cmp edx, 0x1b35
je 0x14001bd4f
jmp case.0x14001bc36.3908
cmp edx, 0xbd6
jg 0x14001bc39
cmp edx, 0xbbd
jg 0x14001bd47
lea r9d, [rdx - 0xb3e]
cmp r9d, 0x19
ja 0x14001bb76
mov r10d, 0x3000001
bt r10d, r9d
jb 0x14001bd4f
lea r9d, [rdx - 0xa33]
cmp r9d, 0x2b
ja 0x14001bb97
movabs r10, 0x80000000009
bt r10, r9
jb case.0x14001bc36.3907
cmp edx, 0x9df
jne case.0x14001bc36.3908
jmp case.0x14001bc36.3907
cmp edx, 0x114af
jle 0x14001bc8b
lea r9d, [rdx - 0x114b0]
cmp r9d, 0xd
ja 0x14001bbd1
mov r10d, 0x2401
bt r10d, r9d
jb 0x14001bd4f
cmp edx, 0x115af
je 0x14001bd4f
cmp edx, 0x11930
je 0x14001bd4f
jmp case.0x14001bc36.3908
lea r9d, [rdx - 0xdca]
cmp r9d, 0x15
ja 0x14001bc0b
mov r10d, 0x200021
bt r10d, r9d
jb 0x14001bd4f
cmp edx, 0xd57
je 0x14001bd4f
lea r9d, [rdx - 0xf43]
cmp r9d, 0x76
ja case.0x14001bc36.3908
lea r10, [0x14018a9c0]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xcc1
jg 0x14001bd0c
cmp edx, 0xbd7
je 0x14001bd4f
cmp edx, 0xc56
je 0x14001bd4f
jmp case.0x14001bc36.3908
cmp edx, 0x93c
je 0x14001bd4f
cmp edx, 0x9be
je 0x14001bd4f
cmp edx, 0x9d7
je 0x14001bd4f
jmp case.0x14001bc36.3908
cmp edx, 0x11127
je 0x14001bd4f
cmp edx, 0x1133e
je 0x14001bd4f
cmp edx, 0x11357
je 0x14001bd4f
jmp case.0x14001bc36.3908
cmp edx, 0xfa0f
jle 0x14001bd1e
cmp edx, 0x110ba
je 0x14001bd4f
lea r9d, [rdx - 0xfa10]
cmp r9d, 0x12
ja 0x14001bce5
mov r10d, 0x50005
bt r10d, r9d
jb case.0x14001bc36.3907
lea r9d, [rdx - 0xfb1d]
cmp r9d, 0x21
ja case.0x14001bc36.3908
movabs r10, 0x200000005
bt r10, r9
jb case.0x14001bc36.3907
jmp case.0x14001bc36.3908
cmp edx, 0xcc2
je 0x14001bd4f
cmp edx, 0xd3e
je 0x14001bd4f
jmp case.0x14001bc36.3908
cmp edx, 0x2125
jg 0x14001bd5f
lea r9d, [rdx - 0x1f71]
cmp r9d, 0x8c
ja case.0x14001bc36.3908
lea r10, [0x14018ab9c]
movsxd r9, dword [r10 + r9*4]
add r9, r10
jmp r9
cmp edx, 0xbbe
jne case.0x14001bc36.3908
mov al, 2
cmp rcx, rdi
jne 0x14001b8e1
jmp 0x14001bede
lea r9d, [rdx - 0x2329]
cmp r9d, 2
jb case.0x14001bc36.3907
cmp edx, 0x2126
je case.0x14001bc36.3907
cmp edx, 0x2adc
je case.0x14001bc36.3907
movd xmm1, edx
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x14018a900]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x14018a910]
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.0x14001bc36.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x14018a8f0]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x14018a920]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x14018a930]
pxor xmm3, xmm14
movdqa xmm4, xmm15
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r9d, xmm4
test r9b, r9b
jne case.0x14001bc36.3907
lea r9d, [rdx - 0x1d1bb]
cmp r9d, 6
jb case.0x14001bc36.3907
lea r9d, [rdx - 0x2f800]
cmp r9d, 0x21e
jb case.0x14001bc36.3907
movd r9d, xmm1
cmp r9d, 0x2000
je case.0x14001bc36.3907
cmp r9d, 0x212a
je case.0x14001bc36.3907
cmp r9d, 0xfb40
je case.0x14001bc36.3907
movdqa xmm1, xmm0
paddd xmm1, xmmword [0x14018a980]
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 0x14001bd4f
lea r10d, [rdx - 0x11a8]
cmp r10d, 0x1b
jb 0x14001bd4f
add edx, 0xffffcf67
cmp edx, 2
jb 0x14001bd4f
cmp r9d, 0x330
jne 0x14001bd51
jmp 0x14001bd4f
test al, al
je 0x14001c0d6
movzx eax, al
cmp eax, 1
je case.0x14001bc36.3907
lea rax, [rsp + 0x200]
movups xmmword [rax], xmm8
movzx eax, word [rsp + 0x20e]
lea rcx, [rsp + 0x80]
mov word [rcx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0x1fe]
movdqu xmmword [rcx + 0x1e], xmm0
movups xmmword [rcx], xmm8
mov byte [rcx + 0x10], 0
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x48], 0
mov word [rsp + 0x4c], 0
mov byte [rsp + 0x50], 0
mov dword [rsp + 0x54], 0
mov byte [rsp + 0x58], 0
mov dword [rsp + 0x5c], 0
mov byte [rsp + 0x60], 0
mov dword [rsp + 0x64], 0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x6c], 0
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rdi
mov dword [rsp + 0x98], 0
mov word [rsp + 0x9c], 0
mov dword [rsp + 0xb8], 0x110000
mov byte [rsp + 0xbc], 0
mov rbx, rsi
cmp rbx, rdi
je 0x14001c061
movzx r14d, byte [rbx]
test r14b, r14b
js 0x14001bfc0
inc rbx
jmp 0x14001c026
mov eax, r14d
and eax, 0x1f
movzx edx, byte [rbx + 1]
and edx, 0x3f
cmp r14b, 0xdf
jbe 0x14001c00c
movzx ecx, byte [rbx + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp r14b, 0xf0
jb 0x14001c01a
movzx r14d, byte [rbx + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and r14d, 0x3f
or r14d, ecx
or r14d, eax
cmp r14d, 0x110000
je 0x14001c061
add rbx, 4
jmp 0x14001c026
add rbx, 2
shl eax, 6
or eax, edx
mov r14d, eax
jmp 0x14001c026
add rbx, 3
shl eax, 0xc
or ecx, eax
mov r14d, ecx
lea rcx, [rsp + 0x38]
call fcn.14001cef0
mov r15b, 1
cmp eax, 0x110000
je 0x14001c077
cmp eax, r14d
je 0x14001bfa9
jmp 0x14001c077
mov rcx, qword [rsp + 0x328]
mov rdx, qword [rsp + 0x30]
call fcn.1400938d0
mov r10, qword [rsp + 0x28]
jmp 0x14001b42c
lea rcx, [rsp + 0x38]
call fcn.14001cef0
cmp eax, 0x110000
setne r15b
neg r15b
cmp dword [rsp + 0x48], 0
je 0x14001c099
cmp qword [rsp + 0x50], 0
je 0x14001c099
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
cmp dword [rsp + 0x98], 0
je 0x14001c0c4
cmp qword [rsp + 0xa0], 0
je 0x14001c0c4
mov r8, qword [rsp + 0xa8]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
test r15b, r15b
je 0x14001c0d6
mov byte [rsp + 0xed], 1
jmp 0x14001ad37
mov rcx, rsi
mov rdx, rbp
mov r8, qword [rsp + 0x190]
lea r9, [rsp + 0xe8]
call fcn.14001ca60
jmp 0x14001ad37
mov rcx, qword [r14 + 8]
mov rax, qword [r14 + 0x10]
mov rdx, qword [rsp + 0x1e8]
test rdx, rdx
je 0x14001c11a
sub rax, rdx
jbe 0x14001c118
cmp byte [rcx + rdx], 0xbf
jg 0x14001c11a
ud2
jne case.0x140019b55.1
add rcx, rdx
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 1
movabs rax, 0x2e0000002e
mov qword [rsp + 0x70], rax
mov word [rsp + 0x78], 1
test byte [rsp + 0x24], 1
jne 0x14001c180
lea rsi, [rsp + 0x38]
mov rcx, rsi
call fcn.14008e0b0
test rax, rax
jne 0x14001c16e
jmp 0x14001c9ad
lea rsi, [rsp + 0x38]
mov ebx, 0x260fb
mov r15d, 0x62f8
mov rcx, rsi
call fcn.14008e0b0
test rax, rax
je 0x14001c9ad
test rdx, rdx
je 0x14001c190
movzx ecx, byte [rax]
test cl, cl
js 0x14001c1b3
lea r9, [rax + 1]
jmp 0x14001c222
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x14001c204
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x14001c214
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 0x14001c190
lea r9, [rax + 4]
jmp 0x14001c222
lea r9, [rax + 2]
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x14001c222
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 0x14001c244
cmp ebp, ecx
cmova r10, r8
mov r8, r10
sub r8, r11
jbe 0x14001c292
shr r8, 1
add r8, r11
lea r14, [r8 + r8*2]
mov ebp, dword [r13 + r14*4]
mov r12d, dword [r13 + r14*4 + 4]
cmp r12d, ecx
jb 0x14001c261
cmp ebp, ecx
jbe 0x14001c271
cmp r12d, ecx
jae 0x14001c236
mov r11, r8
inc r11
mov r8, r10
jmp 0x14001c236
movzx ecx, byte [r13 + r14*4 + 8]
test rcx, rcx
je 0x14001c406
cmp ecx, 0x11
je 0x14001c406
cmp ecx, 9
jne 0x14001c9a5
cmp r9, rdx
je 0x14001c38e
movzx ecx, byte [r9]
test cl, cl
js 0x14001c2a8
inc r9
jmp 0x14001c31c
mov r8d, ecx
and r8d, 0x1f
movzx r11d, byte [r9 + 1]
and r11d, 0x3f
cmp cl, 0xdf
jbe 0x14001c2fe
movzx r10d, byte [r9 + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp cl, 0xf0
jb 0x14001c30e
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 0x14001c38e
add r9, 4
jmp 0x14001c31c
add r9, 2
shl r8d, 6
or r8d, r11d
mov ecx, r8d
jmp 0x14001c31c
add r9, 3
shl r8d, 0xc
or r10d, r8d
mov ecx, r10d
mov r8d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14001c342
cmp ebp, ecx
cmova r10, r8
mov r8, r10
sub r8, r11
jbe 0x14001c292
shr r8, 1
add r8, r11
lea r14, [r8 + r8*2]
mov ebp, dword [r13 + r14*4]
mov r12d, dword [r13 + r14*4 + 4]
cmp r12d, ecx
jb 0x14001c35f
cmp ebp, ecx
jbe 0x14001c36f
cmp r12d, ecx
jae 0x14001c330
mov r11, r8
inc r11
mov r8, r10
jmp 0x14001c330
movzx ecx, byte [r13 + r14*4 + 8]
cmp rcx, 0xe
ja 0x14001c9a5
bt r15, rcx
jb 0x14001c292
jmp 0x14001c9a5
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14001c53e
dec rdx
cmp rdx, rax
jne 0x14001c8d5
cmp ecx, 0x110000
je 0x14001c190
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14001c3d4
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x14001c5a0
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
mov r9d, dword [r13 + r10*4]
mov r11d, dword [r13 + r10*4 + 4]
cmp r11d, ecx
jb 0x14001c3f6
cmp r9d, ecx
jbe 0x14001c594
cmp r11d, ecx
jae 0x14001c3c1
mov r8, rax
inc r8
mov rax, rdx
jmp 0x14001c3c1
cmp r9, rdx
je 0x14001c579
xor r8d, r8d
xor ecx, ecx
movzx r10d, byte [r9]
test r10b, r10b
js 0x14001c422
inc r9
jmp 0x14001c49f
mov r11d, r10d
and r11d, 0x1f
movzx r14d, byte [r9 + 1]
and r14d, 0x3f
cmp r10b, 0xdf
jbe 0x14001c481
movzx ebp, byte [r9 + 2]
shl r14d, 6
and ebp, 0x3f
or ebp, r14d
cmp r10b, 0xf0
jb 0x14001c491
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 0x14001c675
add r9, 4
lea r13, [0x1401af110]
jmp 0x14001c49f
add r9, 2
shl r11d, 6
or r11d, r14d
mov r10d, r11d
jmp 0x14001c49f
add r9, 3
shl r11d, 0xc
or ebp, r11d
mov r10d, ebp
mov r11d, 0x5a6
xor r12d, r12d
mov r14d, 0x5a6
jmp 0x14001c4ca
lea r13, [0x1401af110]
cmp ebp, r10d
cmova r14, r11
mov r11, r14
sub r11, r12
jbe 0x14001c9a5
shr r11, 1
add r11, r12
mov rdi, r13
lea r13, [r11 + r11*2]
mov ebp, dword [rdi + r13*4]
mov edi, dword [rdi + r13*4 + 4]
cmp edi, r10d
jb 0x14001c4ea
cmp ebp, r10d
jbe 0x14001c4fa
cmp edi, r10d
jae 0x14001c4b0
mov r12, r11
inc r12
mov r11, r14
jmp 0x14001c4b0
lea r11, [0x1401af110]
movzx r10d, byte [r11 + r13*4 + 8]
mov r13, r11
cmp r10d, 1
je 0x14001c51a
cmp r10d, 5
jne 0x14001c51f
mov cl, 1
jmp 0x14001c533
mov r8b, 1
jmp 0x14001c533
cmp r10, 0x11
ja 0x14001c9a5
bt rbx, r10
jae 0x14001c9a5
cmp r9, rdx
jne 0x14001c414
jmp 0x14001c57e
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x14001c8ba
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jge 0x14001c64c
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x14001c654
xor ecx, ecx
xor r8d, r8d
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x14001c68a
dec rdx
jmp 0x14001c6e6
cmp byte [r13 + r10*4 + 8], 0xd
je 0x14001c190
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14001c5c2
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x14001c190
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
mov r9d, dword [r13 + r10*4]
mov r11d, dword [r13 + r10*4 + 4]
cmp r11d, ecx
jb 0x14001c5e0
cmp r9d, ecx
jbe 0x14001c5f0
cmp r11d, ecx
jae 0x14001c5af
mov r8, rax
inc r8
mov rax, rdx
jmp 0x14001c5af
cmp byte [r13 + r10*4 + 8], 9
je 0x14001c190
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14001c61e
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x14001c9a5
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
mov r9d, dword [r13 + r10*4]
mov r11d, dword [r13 + r10*4 + 4]
cmp r11d, ecx
jb 0x14001c63c
cmp r9d, ecx
jbe 0x14001c664
cmp r11d, ecx
jae 0x14001c60b
mov r8, rax
inc r8
mov rax, rdx
jmp 0x14001c60b
add rdx, 0xfffffffffffffffd
and r9d, 0xf
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
jmp 0x14001c8c2
cmp byte [r13 + r10*4 + 8], 5
je 0x14001c190
jmp 0x14001c9a5
lea r13, [0x1401af110]
movzx r9d, byte [rdx - 1]
test r9b, r9b
jns 0x14001c58c
movzx r10d, byte [rdx - 2]
cmp r10b, 0xc0
jge 0x14001c6b7
movzx r11d, byte [rdx - 3]
cmp r11b, 0xc0
jge 0x14001c6c1
movzx edi, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and edi, 7
shl edi, 6
and r11d, 0x3f
or r11d, edi
jmp 0x14001c6c9
add rdx, 0xfffffffffffffffe
and r10d, 0x1f
jmp 0x14001c6d4
add rdx, 0xfffffffffffffffd
and r11d, 0xf
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
lea r13, [0x1401af110]
cmp rdx, rax
je 0x14001c7ce
cmp r9d, 0x110000
je 0x14001c9a5
mov r10d, 0x5a6
xor r14d, r14d
mov r11d, 0x5a6
jmp 0x14001c720
cmp ebp, r9d
cmova r11, r10
mov r10, r11
sub r10, r14
jbe 0x14001c833
shr r10, 1
add r10, r14
lea r12, [r10 + r10*2]
mov ebp, dword [r13 + r12*4]
mov edi, dword [r13 + r12*4 + 4]
cmp edi, r9d
jb 0x14001c73e
cmp ebp, r9d
jbe 0x14001c74e
cmp edi, r9d
jae 0x14001c70d
mov r14, r10
inc r14
mov r10, r11
jmp 0x14001c70d
cmp byte [r13 + r12*4 + 8], 0xd
jne 0x14001c833
movzx r9d, byte [rdx - 1]
test r9b, r9b
js 0x14001c769
dec rdx
jmp 0x14001c7be
movzx r10d, byte [rdx - 2]
cmp r10b, 0xc0
jge 0x14001c796
movzx r11d, byte [rdx - 3]
cmp r11b, 0xc0
jge 0x14001c7a0
movzx edi, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and edi, 7
shl edi, 6
and r11d, 0x3f
or r11d, edi
jmp 0x14001c7a8
add rdx, 0xfffffffffffffffe
and r10d, 0x1f
jmp 0x14001c7b3
add rdx, 0xfffffffffffffffd
and r11d, 0xf
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp rdx, rax
lea r13, [0x1401af110]
jne 0x14001c6ef
cmp r9d, 0x110000
je 0x14001c9a5
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x14001c7f9
cmp r11d, r9d
cmova rdx, rax
mov rax, rdx
sub rax, r10
jbe 0x14001c833
shr rax, 1
add rax, r10
lea r14, [rax + rax*2]
mov r11d, dword [r13 + r14*4]
mov ebp, dword [r13 + r14*4 + 4]
cmp ebp, r9d
jb 0x14001c817
cmp r11d, r9d
jbe 0x14001c827
cmp ebp, r9d
jae 0x14001c7ea
mov r10, rax
inc r10
mov rax, rdx
jmp 0x14001c7ea
cmp byte [r13 + r14*4 + 8], 0xd
je 0x14001c9a5
mov eax, 0x5a6
xor r10d, r10d
mov edx, 0x5a6
jmp 0x14001c855
cmp r11d, r9d
cmova rdx, rax
mov rax, rdx
sub rax, r10
jbe 0x14001c9a5
shr rax, 1
add rax, r10
lea r14, [rax + rax*2]
mov r11d, dword [r13 + r14*4]
mov edi, dword [r13 + r14*4 + 4]
cmp edi, r9d
jb 0x14001c873
cmp r11d, r9d
jbe 0x14001c883
cmp edi, r9d
jae 0x14001c842
mov r10, rax
inc r10
mov rax, rdx
jmp 0x14001c842
movzx eax, byte [r13 + r14*4 + 8]
cmp rax, 0x11
ja 0x14001c9a5
mov edx, 0x20023
bt rdx, rax
jae 0x14001c9a5
test r8b, 1
je 0x14001c190
and cl, 1
je 0x14001c190
jmp 0x14001c9a5
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp rdx, rax
je 0x14001c3a6
cmp ecx, 0x110000
je 0x14001c190
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14001c905
cmp r11d, ecx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14001c5a0
shr r8, 1
add r8, r10
lea r14, [r8 + r8*2]
mov r11d, dword [r13 + r14*4]
mov ebp, dword [r13 + r14*4 + 4]
cmp ebp, ecx
jb 0x14001c922
cmp r11d, ecx
jbe 0x14001c931
cmp ebp, ecx
jae 0x14001c8f2
mov r10, r8
inc r10
mov r8, r9
jmp 0x14001c8f2
cmp byte [r13 + r14*4 + 8], 0xd
jne 0x14001c5a0
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14001c952
dec rdx
cmp rdx, rax
jne 0x14001c8d5
jmp 0x14001c3a6
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x14001c8ba
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jge 0x14001c986
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x14001c98e
add rdx, 0xfffffffffffffffd
and r9d, 0xf
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
lea r13, [0x1401af110]
jmp 0x14001c8c2
mov byte [rsp + 0xea], 1
mov eax, dword [rsp + 0xf0]
mov rcx, qword [rsp + 0x1f0]
mov dword [rcx + 8], eax
mov rax, qword [rsp + 0xe8]
mov qword [rcx], rax
cmp qword [rsp + 0x118], 0
je 0x14001c9eb
mov r8, qword [rsp + 0x120]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
movaps xmm6, xmmword [rsp + 0x210]
movaps xmm7, xmmword [rsp + 0x220]
movaps xmm8, xmmword [rsp + 0x230]
movaps xmm9, xmmword [rsp + 0x240]
movaps xmm10, xmmword [rsp + 0x250]
movaps xmm11, xmmword [rsp + 0x260]
movaps xmm12, xmmword [rsp + 0x270]
movaps xmm13, xmmword [rsp + 0x280]
movaps xmm14, xmmword [rsp + 0x290]
movaps xmm15, xmmword [rsp + 0x2a0]
add rsp, 0x2b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret