Function at 0x14003df00
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x748
movdqa xmmword [rsp + 0x730], xmm8
movaps xmmword [rsp + 0x720], xmm7
movdqa xmmword [rsp + 0x710], xmm6
mov r14, r9
mov r12, rdx
mov qword [rsp + 0x30], rcx
movabs rax, 0x900000007fffffff
mov qword [rsp + 0x1f8], rax
movabs rax, 0xd4008029ffffffff
mov qword [rsp + 0x1f0], rax
cmp qword [rdx + 0x48], 0
jne 0x14003dfae
mov r11, qword [r12 + 0x50]
cmp qword [r12 + 0xf0], 0
je 0x14003dfbe
lea rax, [r12 + 0xf8]
mov qword [rsp + 0xf0], rax
cmp qword [r12 + 8], 0
je 0x14003dfd6
lea rax, [r12 + 0x10]
mov qword [rsp + 0xd8], rax
cmp qword [r12 + 0xa0], 0
je 0x14003dfee
lea rax, [r12 + 0xa8]
jmp 0x14003dff6
lea r11, [r12 + 0x50]
cmp qword [r12 + 0xf0], 0
jne 0x14003df74
mov rax, qword [r12 + 0xf8]
mov qword [rsp + 0xf0], rax
cmp qword [r12 + 8], 0
jne 0x14003df8c
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0xd8], rax
cmp qword [r12 + 0xa0], 0
jne 0x14003dfa4
mov rax, qword [r12 + 0xa8]
mov qword [rsp + 0xe8], rax
mov rbp, qword [rsp + 0x7c0]
mov rcx, qword [r12 + 0x40]
cmp qword [r12 + 0x130], 0
jne 0x14003e020
mov rax, qword [r12 + 0x138]
jmp 0x14003e028
lea rax, [r12 + 0x138]
mov qword [rsp + 0xe0], rax
mov rdi, qword [rsp + 0x7b8]
sub r8, rbp
lea r13, [r14 + 0x3f8]
lea rax, [r14 + 4]
mov qword [rsp + 0x50], rax
lea rax, [r14 + 8]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x7b0]
lea rdx, [rax + 0xc8]
mov qword [rsp + 0xa0], rdx
add rax, 8
mov qword [rsp + 0x40], rax
xor eax, eax
mov qword [rsp + 0x200], rcx
cmp rcx, 2
cmove r11, rax
pxor xmm6, xmm6
movdqa xmm7, xmmword [str.xn__]
movzx eax, byte [r12]
mov byte [rsp + 0x4f], al
movzx eax, byte [r12 + 0x12a]
mov dword [rsp + 0xd4], eax
movzx eax, word [r12 + 0x128]
mov dword [rsp + 0xd0], eax
mov dl, 1
xor eax, eax
mov qword [rsp + 0x70], r14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x90], r11
test rbp, rbp
je 0x14003e120
xor r15d, r15d
nop word cs:[rax + rax]
movzx ecx, byte [rdi + r15]
cmp cl, 0x2e
setne sil
je 0x14003e140
inc r15
cmp rbp, r15
jne 0x14003e0f0
mov qword [rsp + 0x98], rdi
mov r15, rbp
test rdi, rdi
jne 0x14003e15f
jmp 0x14003ff89
test dl, 1
jne 0x14003ff80
mov sil, 1
xor ebp, ebp
mov qword [rsp + 0x98], rdi
xor r15d, r15d
jmp 0x14003e190
lea r9, [r15 + 1]
sub rbp, r9
lea r9, [rdi + r15]
inc r9
mov qword [rsp + 0x98], r9
test rdi, rdi
je 0x14003ff89
test dl, 1
je 0x14003e190
movzx eax, al
cmp r15, 3
jbe 0x14003e322
cmp byte [rdi + 2], 0x2d
jne 0x14003e32b
cmp byte [rdi + 3], 0x2d
jne 0x14003e32b
jmp 0x14003fc90
test al, 1
je 0x14003e1b0
mov r9, qword [r13]
cmp r9, 0xfe
jb 0x14003e204
mov rax, qword [r14 + 8]
mov rcx, qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
jmp 0x14003e215
mov rax, qword [r13]
mov rbx, rax
cmp rax, 0xfe
jb 0x14003e240
mov rax, qword [rsp + 0x58]
mov rbx, qword [rax]
test r15, r15
mov byte [rsp + 0x2f], sil
jne 0x14003e24a
mov rdx, qword [rsp + 0xa0]
mov r9, qword [rdx]
cmp r9, 9
jb 0x14003e2ec
mov rcx, qword [rsp + 0x7b0]
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x40]
jmp 0x14003e2fa
mov rax, r9
mov rcx, qword [rsp + 0x50]
mov rdx, r13
mov r9d, 0xfd
cmp rax, r9
je 0x14003fd90
mov dword [rcx + rax*4], 0x2e
inc qword [rdx]
mov rax, qword [r13]
mov rbx, rax
cmp rax, 0xfe
jae 0x14003e1c3
nop word [rax + rax]
test r15, r15
mov byte [rsp + 0x2f], sil
je 0x14003e1d5
xor r9d, r9d
mov qword [rsp + 0x80], rbp
nop word cs:[rax + rax]
cmp byte [rdi + r9], 0
js 0x14003e2a0
inc r9
cmp r15, r9
jne 0x14003e260
mov eax, 1
mov qword [rsp + 0x38], rax
mov r9, r15
cmp r9, 4
jae 0x14003e3a3
mov r12b, 1
mov qword [rsp + 0x78], 0
xor ebp, ebp
test r9, r9
jne 0x14003e513
jmp 0x14003e2d7
test r9, r9
je 0x14003e370
lea rax, [rdi + r9]
dec rax
mov qword [rsp + 0x38], rax
dec r9
mov rbp, r15
sub rbp, r9
je 0x14003e384
xor r12d, r12d
mov al, 1
mov qword [rsp + 0x78], rax
test r9, r9
jne 0x14003e513
mov al, 1
test r12b, r12b
mov r14, qword [rsp + 0x38]
jne 0x14003e61b
jmp 0x14003e650
mov rax, r9
mov rcx, qword [rsp + 0x40]
mov r9d, 8
cmp rax, r9
je 0x14003fdc0
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0
mov qword [rcx + rax*8 + 8], rdi
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x14003fd0e
test r15, r15
je 0x14003fc83
movzx edx, byte [rdi]
add dl, 0x9f
cmp dl, 0x19
ja 0x14003fc90
mov edx, 1
nop
cmp r15, rdx
je 0x14003fc88
movzx r10d, byte [rdi + rdx]
inc rdx
cmp r10b, 0x2d
je 0x14003e340
lea r9d, [r10 - 0x61]
cmp r9b, 0x1a
jb 0x14003e340
add r10b, 0xd0
cmp r10b, 0xa
jb 0x14003e340
jmp 0x14003fc90
mov al, 1
mov qword [rsp + 0x78], rax
mov r14, rdi
mov rbp, r15
mov al, 1
jmp 0x14003e650
mov r14, qword [rsp + 0x70]
mov r12, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0x80]
cmp r9, 4
jb 0x14003e286
mov eax, dword [rdi]
mov ecx, 0xffffdfdf
and eax, ecx
cmp eax, 0x2d2d4e58
jne 0x14003e505
cmp byte [r9 + rdi - 1], 0x2d
lea rcx, [rsp + 0x6d8]
je 0x140040231
add r9, 0xfffffffffffffffc
cmp r9, 0x7d1
jae 0x140040231
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0x310], 0
mov qword [rsp + 0x6c8], 0
lea r8, [rdi + 4]
lea rdx, [rsp + 0x310]
mov rsi, rcx
call fcn.140041620
cmp qword [rsp + 0x6d8], 0
je 0x140040291
mov qword [rsp + 0x2f8], 0
mov dword [rsp + 0x208], 0
lea rcx, [rsp + 0x208]
mov rdx, rsi
call fcn.140042200
mov rax, qword [rsp + 0x2f8]
lea r9, [rsp + 0x20c]
cmp rax, 0x3c
jb 0x14003e46c
mov rax, qword [rsp + 0x210]
mov r9, qword [rsp + 0x218]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, r14
mov r8, rbx
call fcn.1400403b0
test al, al
movzx esi, byte [rsp + 0x2f]
jne 0x140040270
mov rcx, r14
mov rdx, rbx
lea r8, str..cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_1.0.3_srcuts46.rsPunycode_overflows_should_not_be_possible_due_to_PUNYCODE_ENCODE_MAX_INPUT_LENGTH
call fcn.140042930
mov r8, rdx
mov byte [rsp + 0x20], 1
mov rcx, r12
mov rdx, rax
mov r9b, 1
call fcn.1400412a0
test al, al
jne 0x140040270
lea rcx, [rsp + 0x208]
call fcn.1400428b0
lea rcx, [rsp + 0x310]
call fcn.1400428f0
mov rdx, qword [rsp + 0xa0]
mov r9, qword [rdx]
cmp r9, 9
jb 0x14003fcd1
mov rcx, qword [rsp + 0x7b0]
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x40]
jmp 0x14003fcdf
mov r12b, 1
xor ebp, ebp
mov qword [rsp + 0x78], 0
mov r14, rdi
nop word cs:[rax + rax]
test r14, r14
je 0x14003e60f
movzx esi, byte [r14]
xor eax, eax
mov ecx, esi
mov edx, 1
shld rax, rdx, cl
shl rdx, cl
test sil, 0x40
cmovne rax, rdx
mov ecx, 0
cmovne rdx, rcx
and rax, qword [rsp + 0x1f8]
and rdx, qword [rsp + 0x1f0]
or rdx, rax
je 0x14003e572
lea eax, [rsi - 0x41]
cmp al, 0x19
ja 0x140040231
or sil, 0x20
mov r10, qword [r13]
cmp r10, 0xfe
jb 0x14003e5a0
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x58]
jmp 0x14003e5b1
mov rax, r10
mov rcx, qword [rsp + 0x50]
mov rdx, r13
mov r10d, 0xfd
cmp rax, r10
je 0x14003e5d4
inc r14
movzx r10d, sil
mov dword [rcx + rax*4], r10d
inc qword [rdx]
dec r9
movzx esi, byte [rsp + 0x2f]
jne 0x14003e520
jmp 0x14003e60f
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x68], r9
mov r13, r8
call fcn.1400fa6e0
mov r11, qword [rsp + 0x90]
mov r8, r13
mov r13, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x58]
jmp 0x14003e5b6
xor eax, eax
test r12b, r12b
mov r14, qword [rsp + 0x38]
je 0x14003e650
mov rdx, qword [rsp + 0xa0]
mov r9, qword [rdx]
cmp r9, 9
jb 0x14003fc46
mov rcx, qword [rsp + 0x7b0]
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x40]
jmp 0x14003fc54
mov dword [rsp + 0x8c], eax
movups xmm0, xmmword [rsp + 0x300]
movaps xmmword [rsp + 0x310], xmm0
mov rdx, qword [rsp + 0xa0]
mov r9, qword [rdx]
cmp r9, 9
jb 0x14003e68f
mov rcx, qword [rsp + 0x7b0]
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x40]
jmp 0x14003e69d
mov rax, r9
mov rcx, qword [rsp + 0x40]
mov r9d, 8
mov r15, rbx
cmp rax, r9
je 0x14003fdf3
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 2
movaps xmm0, xmmword [rsp + 0x310]
movups xmmword [rcx + rax*8 + 8], xmm0
inc qword [rdx]
cmp qword [rsp + 0x200], 2
jne 0x14003e6d4
xor eax, eax
jmp 0x14003e6db
movzx eax, byte [r11 + 0x4a]
and al, 1
mov qword [rsp + 0xa8], r8
mov r9, qword [rsp + 0xf0]
mov rcx, qword [r9]
mov rdx, qword [r9 + 8]
mov r8, qword [r9 + 0x18]
mov r9, qword [r9 + 0x20]
test byte [rsp + 0x4f], 1
je 0x14003e71a
mov r11, qword [rsp + 0xd8]
mov rdi, qword [r11]
mov rsi, qword [r11 + 8]
mov r10, qword [r11 + 0x18]
mov r11, qword [r11 + 0x20]
jmp 0x14003e72a
mov r10d, 1
xor r11d, r11d
xor esi, esi
mov edi, 1
mov qword [rsp + 0x360], r14
mov qword [rsp + 0x368], rbp
mov dword [rsp + 0x310], 0
mov ebx, dword [rsp + 0x248]
lea r14, [rsp + 0x318]
mov dword [r14 + 0x3c], ebx
movdqu xmm0, xmmword [rsp + 0x208]
movups xmm1, xmmword [rsp + 0x218]
movups xmm2, xmmword [rsp + 0x228]
movups xmm3, xmmword [rsp + 0x238]
movups xmmword [r14 + 0x2c], xmm3
movups xmmword [r14 + 0x1c], xmm2
movups xmmword [r14 + 0xc], xmm1
movdqu xmmword [r14 - 4], xmm0
mov qword [rsp + 0x358], 0
mov qword [rsp + 0x3b8], 0
mov dword [rsp + 0x3cc], 0
mov byte [rsp + 0x3d0], 0
movzx ebx, byte [rsp + 0xbf]
mov byte [r14 + 0xbb], bl
movzx ebx, word [rsp + 0xbd]
mov word [r14 + 0xb9], bx
mov rbx, qword [rsp + 0xe8]
mov qword [rsp + 0x370], rbx
mov rbx, qword [rsp + 0x90]
mov qword [rsp + 0x3c0], rbx
mov qword [rsp + 0x378], rcx
mov qword [rsp + 0x380], rdx
mov qword [rsp + 0x388], r8
mov qword [rsp + 0x390], r9
mov qword [rsp + 0x398], rdi
mov qword [rsp + 0x3a0], rsi
mov qword [rsp + 0x3a8], r10
mov qword [rsp + 0x3b0], r11
mov byte [rsp + 0x3d8], al
mov eax, dword [rsp + 0xd4]
mov dword [rsp + 0x3d4], eax
mov byte [rsp + 0x3d9], 1
mov r8d, dword [rsp + 0x3cc]
mov dword [rsp + 0x3c8], 0x110000
lea rsi, [rsp + 0x310]
mov rcx, rsi
mov edx, 0xffff
call fcn.140042980
mov r8d, 0xd0
lea rdi, [rsp + 0x208]
mov rcx, rdi
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsp + 0xe0]
movdqu xmm8, xmmword [rax]
mov r8d, 0xd0
lea rcx, [rsp + 0xf8]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
movdqu xmmword [rsp + 0x1c8], xmm8
mov qword [rsp + 0x1d8], 0
mov dword [rsp + 0x1e0], 0x110000
mov eax, dword [rsp + 0xd0]
mov dword [rsp + 0x1e4], eax
lea rax, [rsp + 0x1f0]
mov qword [rsp + 0x1e8], rax
mov eax, 0x110000
nop dword [rax]
mov qword [rsp + 0xc8], r15
xor ebp, ebp
cmp eax, 0x110000
jne 0x14003ea70
mov rax, qword [rsp + 0x140]
lea rcx, [rsp + 0xfc]
mov r8, rax
cmp rax, 0x12
jb 0x14003e93e
mov r8, qword [rsp + 0x100]
mov rcx, qword [rsp + 0x108]
mov rdx, qword [rsp + 0x1a0]
cmp rdx, r8
jae 0x14003e990
mov ecx, dword [rcx + rdx*4]
inc rdx
mov qword [rsp + 0x1a0], rdx
cmp rax, 0x12
jb 0x14003ea29
cmp rdx, qword [rsp + 0x100]
jne 0x14003ea4e
mov rax, qword [rsp + 0x100]
lea r8, [rsp + 0x100]
jmp 0x14003ea36
mov r15d, dword [rsp + 0x1b0]
mov rdi, qword [rsp + 0x1b4]
mov dword [rsp + 0x1b0], 0x110000
mov bl, 1
cmp r15d, 0x110000
je 0x14003f180
cmp r15d, dword [rsp + 0x1e4]
jb 0x14003e9cd
cmp edi, 2
jae 0x14003f00d
lea rcx, [rsp + 0x310]
lea rdx, [rsp + 0xf8]
call fcn.140043240
mov eax, dword [rsp + 0x310]
cmp eax, 0x110000
je 0x14003f0e8
mov edx, dword [rsp + 0x314]
mov ecx, dword [rsp + 0x318]
cmp eax, dword [rsp + 0x1e4]
jae 0x14003f08c
mov dword [rsp + 0x1b0], eax
mov dword [rsp + 0x1b4], edx
mov dword [rsp + 0x1b8], ecx
jmp 0x14003f0e8
lea r8, [rsp + 0x140]
cmp rdx, rax
jne 0x14003ea4e
test rax, rax
je 0x14003ea42
mov qword [r8], 0
mov qword [rsp + 0x1a0], 0
mov r15d, ecx
and r15d, 0xffffff
cmp ecx, 0xffffff
ja 0x14003f0f7
mov dword [rsp + 0x1e0], r15d
nop dword [rax]
xor edi, edi
xor r15d, r15d
xor esi, esi
jmp 0x14003ea96
mov rdi, qword [rsp + 0x1b4]
mov dword [rsp + 0x1b0], 0x110000
mov sil, 1
mov eax, dword [rsp + 0x1e0]
mov dword [rsp + 0x1e0], 0x110000
cmp eax, 0x110000
jne 0x14003eb40
lea rcx, [rsp + 0xf8]
mov edx, r15d
mov r8d, edi
call fcn.140042980
mov edi, eax
mov r15, qword [rsp + 0x1c8]
mov rbx, qword [rsp + 0x1d0]
test sil, 1
je 0x14003eb60
mov qword [rsp + 0x330], r15
mov qword [rsp + 0x338], rbx
mov qword [rsp + 0x310], 1
lea eax, [rdi - 0x1161]
lea rcx, [rsp + 0x318]
movdqu xmmword [rcx], xmm6
cmp eax, 0x9e
jbe 0x14003ef89
lea rcx, [rsp + 0x310]
mov edx, ebp
mov r8d, edi
call fcn.14003c5e0
cmp eax, 0x110000
jne 0x14003eb62
jmp 0x14003f0d0
mov r15, qword [rsp + 0x1c8]
mov rbx, qword [rsp + 0x1d0]
jmp 0x14003eb62
mov eax, edi
mov rsi, qword [rsp + 0x140]
cmp rsi, 0x12
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x108]
mov r14, qword [rsp + 0x1a0]
mov rdi, rsi
mov qword [rsp + 0x38], rcx
cmovae rsi, rcx
lea r13, [rsp + 0xfc]
mov qword [rsp + 0x68], rdx
cmovae r13, rdx
jmp 0x14003ebd5
lea rcx, [rsp + 0x310]
mov edx, ebp
call fcn.14003c5e0
cmp eax, 0x110000
je 0x14003eca0
inc r14
mov qword [rsp + 0x1a0], r14
mov ebp, eax
cmp r14, rsi
jae 0x14003ecc0
mov r12d, dword [r13 + r14*4]
mov r8d, r12d
and r8d, 0xffffff
mov qword [rsp + 0x330], r15
mov qword [rsp + 0x338], rbx
mov qword [rsp + 0x310], 1
lea eax, [r8 - 0x1161]
lea rcx, [rsp + 0x318]
movdqu xmmword [rcx], xmm6
cmp eax, 0x9e
ja 0x14003ebb0
cmp eax, 0x15
jae 0x14003ec50
lea ecx, [rbp - 0x1100]
cmp ecx, 0x13
jae 0x14003eca0
imul ecx, ecx, 0x24c
lea edx, [rax + rax*8]
lea edx, [rdx + rdx*2]
add edx, eax
lea eax, [rcx + rdx]
add eax, 0xac00
jmp 0x14003ebca
lea eax, [r8 - 0x11a8]
cmp eax, 0x1b
jae 0x14003eca0
lea eax, [rbp - 0xac00]
cmp eax, 0x2ba3
ja 0x14003eca0
mov ecx, eax
shr ecx, 2
imul rcx, rcx, 0x24924925
shr rcx, 0x20
lea edx, [rcx + rcx*8]
lea edx, [rdx + rdx*2]
add edx, ecx
sub eax, edx
jne 0x14003eca0
lea eax, [r8 + rbp]
add eax, 0xffffee59
jmp 0x14003ebca
cmp rdi, 0x12
jb 0x14003ed80
lea rax, [rsp + 0x100]
mov rcx, qword [rsp + 0x38]
cmp rcx, r14
jmp 0x14003ed8e
cmp rdi, 0x12
mov rax, qword [rsp + 0x38]
cmovb rax, rdi
test rax, rax
je 0x14003ecf2
xor eax, eax
cmp rdi, 0x12
setb al
shl eax, 6
mov qword [rsp + rax + 0x100], 0
mov rdi, qword [rsp + 0x140]
mov r13, qword [rsp + 0x60]
mov qword [rsp + 0x1a0], 0
cmp rdi, 0x12
jb 0x14003ed11
mov rdi, qword [rsp + 0x100]
test rdi, rdi
jne 0x14003f005
mov r15d, dword [rsp + 0x1b0]
cmp r15d, 0x110000
je 0x14003f005
cmp r15d, dword [rsp + 0x1e4]
jb 0x14003f005
mov eax, dword [rsp + 0x1b4]
lea ecx, [rax - 0x1161]
cmp ecx, 0x62
jb 0x14003ea80
mov ecx, eax
and ecx, 0xffffff00
cmp ecx, 0xd800
je 0x14003ea80
dec eax
cmp eax, 1
jbe 0x14003ea80
jmp 0x14003f005
mov rcx, rdi
lea rax, [rsp + 0x140]
cmp rdi, r14
mov r13, qword [rsp + 0x60]
jb 0x1400402f4
mov qword [rax], 0
mov rsi, rcx
sub rsi, r14
je 0x14003ee1d
mov rbx, qword [rsp + 0x140]
cmp rbx, 0x12
jb 0x14003edcd
mov rbx, qword [rsp + 0x100]
lea rax, [rsp + 0x100]
cmp r14, rbx
jne 0x14003eddf
jmp 0x14003ee1a
lea rax, [rsp + 0xfc]
mov qword [rsp + 0x68], rax
cmp r14, rbx
je 0x14003ee12
mov rax, qword [rsp + 0x68]
lea rdx, [rax + r14*4]
lea rcx, [rax + rbx*4]
lea r8, [rsi*4]
call sub.VCRUNTIME140.dll_memmove
add rbx, rsi
cmp qword [rsp + 0x140], 0x11
mov rcx, rbx
lea rax, [rsp + 0x100]
ja 0x14003ee1a
lea rax, [rsp + 0x140]
mov qword [rax], rcx
mov qword [rsp + 0x1a0], 0
cmp r12d, 0x1000000
jb 0x14003f005
shr r12d, 0x18
mov esi, 1
mov r13, qword [rsp + 0x140]
cmp r13, 0x12
mov rax, qword [rsp + 0x100]
mov rcx, qword [rsp + 0x108]
mov r15, qword [rsp + 0x1c8]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x68], rax
cmovae r13, rax
mov r14, qword [rsp + 0x1d0]
lea rbx, [rsp + 0xfc]
mov qword [rsp + 0xc0], rcx
cmovae rbx, rcx
jmp 0x14003ee96
inc rsi
mov r12d, edi
cmp rsi, r13
jae 0x14003ef70
mov r8d, dword [rbx + rsi*4]
cmp r8d, 0x1000000
jb 0x14003f0e0
mov edi, r8d
shr edi, 0x18
cmp r12b, dil
je 0x14003ee90
and r8d, 0xffffff
mov qword [rsp + 0x330], r15
mov qword [rsp + 0x338], r14
mov qword [rsp + 0x310], 1
lea rax, [rsp + 0x318]
movdqu xmmword [rax], xmm6
lea rcx, [rsp + 0x310]
mov edx, ebp
call fcn.14003c5e0
cmp eax, 0x110000
je 0x14003ee90
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x12
mov r9, qword [rsp + 0x68]
cmovb r9, rdx
cmp r9, rsi
jbe 0x14004032d
xor ecx, ecx
cmp rdx, 0x12
setb cl
lea rdx, [rsp + 0xfc]
mov r8, qword [rsp + 0xc0]
cmovb r8, rdx
shl ecx, 6
lea rdx, [r9 - 1]
mov qword [rsp + rcx + 0x100], rdx
lea rcx, [r8 + rsi*4]
lea rdx, [r8 + rsi*4]
add rdx, 4
mov r8, rsi
not r8
add r8, r9
shl r8, 2
mov edi, eax
call sub.VCRUNTIME140.dll_memmove
mov ebp, edi
jmp 0x14003ee3f
mov r13, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x38]
cmp rdi, 0x12
jae 0x14003ed09
jmp 0x14003ed11
cmp eax, 0x15
jae 0x14003efb8
lea ecx, [rbp - 0x1100]
cmp ecx, 0x13
jae 0x14003f0d0
imul ecx, ecx, 0x24c
lea edx, [rax + rax*8]
lea edx, [rdx + rdx*2]
add edx, eax
lea eax, [rcx + rdx]
add eax, 0xac00
jmp 0x14003eb62
lea eax, [rdi - 0x11a8]
cmp eax, 0x1b
jae 0x14003f0d0
lea eax, [rbp - 0xac00]
cmp eax, 0x2ba3
ja 0x14003f0d0
mov ecx, eax
shr ecx, 2
imul rcx, rcx, 0x24924925
shr rcx, 0x20
lea edx, [rcx + rcx*8]
lea edx, [rdx + rdx*2]
add edx, ecx
sub eax, edx
jne 0x14003f0d0
lea eax, [rdi + rbp]
add eax, 0xffffee59
jmp 0x14003eb62
mov r15d, ebp
jmp 0x14003f0e8
bt rdi, 0x20
jb 0x14003ea75
cmp edi, 0x10000
jb 0x14003ea75
test di, di
je 0x14003e9cd
movzx eax, di
cmp eax, 1
je 0x14003ea75
mov ecx, edi
shr ecx, 0x10
mov eax, ecx
and eax, 0x7f
cmp ax, 0x3c
setne al
add ecx, 0xfffff400
movzx ecx, cx
cmp ecx, 0xfd00
setb cl
lea edx, [r15 - 0x1ffc]
cmp edx, 0xffffff74
ja 0x14003ea75
lea edx, [r15 - 0xfb4f]
cmp edx, 0xffffffcd
ja 0x14003ea75
or al, cl
jne 0x14003e9cd
jmp 0x14003ea75
mov r8d, edx
and r8d, 0xffffff00
cmp r8d, 0xd800
sete r8b
lea r9d, [rdx - 1]
cmp r9d, 2
setb r9b
or r9b, r8b
je 0x14003f8a7
mov dword [rsp + 0x1b0], eax
mov dword [rsp + 0x1b4], edx
mov dword [rsp + 0x1b8], ecx
jmp 0x14003ea75
mov dword [rsp + 0x1e0], edi
nop word [rax + rax]
mov r15d, ebp
mov r13, qword [rsp + 0x60]
mov bl, 1
cmp r15d, 0x110000
je 0x14003f180
cmp r15d, 0x7f
ja 0x14003f138
xor eax, eax
mov ecx, r15d
mov edx, 1
shld rax, rdx, cl
shl rdx, cl
mov rcx, qword [rsp + 0x1e8]
test r15b, 0x40
cmovne rax, rdx
mov r8d, 0
cmovne rdx, r8
and rax, qword [rcx + 8]
and rdx, qword [rcx]
or rdx, rax
jne 0x14003feb2
xor ebx, ebx
cmp r15d, 0x2e
je 0x14003f180
cmp r15d, 0x110000
je 0x14003f180
cmp r15d, 0xfffd
je 0x14003feb2
mov r8, qword [r13]
cmp r8, 0xfe
jb 0x14003f3fa
mov rsi, qword [rsp + 0x70]
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x58]
jmp 0x14003f410
mov rdx, qword [r13]
mov rcx, qword [rsp + 0x50]
mov rax, rdx
cmp rdx, 0xfe
mov r14, qword [rsp + 0x70]
jb 0x14003f1a2
mov rax, qword [r14 + 8]
mov rcx, qword [r14 + 0x10]
mov r8, rax
mov rdi, qword [rsp + 0xc8]
sub r8, rdi
mov r12, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0x80]
jb 0x14004030c
cmp r8, 4
jb 0x14003f1e4
movdqu xmm0, xmmword [rcx + rdi*4]
pcmpeqb xmm0, xmm7
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x14003f334
mov rax, qword [rsp + 0x50]
cmp rdx, 0xfe
jb 0x14003f1fa
mov rdx, qword [r14 + 8]
mov rax, qword [r14 + 0x10]
mov r8, rdx
sub r8, rdi
jb 0x14004031e
lea rdx, [rax + rdi*4]
mov rax, qword [rsp + 0x78]
and al, 1
mov byte [rsp + 0x20], al
mov r9d, dword [rsp + 0x8c]
and r9b, 1
mov rcx, r12
call fcn.1400412a0
test al, al
jne 0x14003feb2
test bl, bl
jne 0x14003fd2b
mov r8, qword [r13]
cmp r8, 0xfe
jb 0x14003f260
mov rax, qword [r14 + 8]
mov rcx, qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
jmp 0x14003f271
mov rax, r8
mov rcx, qword [rsp + 0x50]
mov rdx, r13
mov r8d, 0xfd
mov rsi, qword [rsp + 0xa0]
cmp rax, r8
je 0x14003fb97
mov dword [rcx + rax*4], 0x2e
inc qword [rdx]
mov r15, qword [r13]
cmp r15, 0xfe
jb 0x14003f2a1
mov rax, qword [rsp + 0x58]
mov r15, qword [rax]
movups xmm0, xmmword [rsp + 0x300]
movaps xmmword [rsp + 0x310], xmm0
mov r8, qword [rsi]
cmp r8, 9
jb 0x14003f2e0
mov rcx, qword [rsp + 0x7b0]
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x40]
jmp 0x14003f2f1
mov rax, r8
mov rcx, qword [rsp + 0x40]
mov rdx, rsi
mov r8d, 8
cmp rax, r8
je 0x14003fbb1
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 2
movdqa xmm0, xmmword [rsp + 0x310]
movdqu xmmword [rcx + rax*8 + 8], xmm0
inc qword [rdx]
mov al, 1
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x1e0]
mov cl, 1
mov dword [rsp + 0x8c], ecx
jmp 0x14003e900
mov rax, rdx
mov r8, qword [rsp + 0x50]
cmp rdx, 0xfe
jb 0x14003f34d
mov rax, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
lea rcx, [rdi + 4]
cmp rax, rcx
jb 0x140040345
je 0x14003f384
shl rax, 2
lea r9, [rdi*4 + 0x10]
nop dword [rax + rax]
cmp dword [r8 + r9], 0x7f
ja 0x14003feb2
add r9, 4
cmp rax, r9
jne 0x14003f370
mov rax, rdx
mov r8, qword [rsp + 0x50]
cmp rdx, 0xfe
jb 0x14003f39d
mov rax, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
test rax, rax
je 0x140040360
cmp dword [r8 + rax*4 - 4], 0x2d
je 0x14003feb2
cmp rdx, 0xfe
jb 0x14003f434
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
sub rax, rdi
add rax, 0xfffffffffffff82b
cmp rax, 0xfffffffffffff82f
jb 0x14003feb2
mov qword [rsp + 0x310], 0
mov qword [rsp + 0x6c8], 0
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
jmp 0x14003f469
mov rax, r8
mov rcx, qword [rsp + 0x50]
mov rdx, r13
mov r8d, 0xfd
mov rsi, qword [rsp + 0x70]
cmp rax, r8
je 0x14003fc22
mov dword [rcx + rax*4], r15d
inc qword [rdx]
mov eax, dword [rsp + 0x1e0]
mov r15, qword [rsp + 0xc8]
jmp 0x14003e900
mov rax, rdx
sub rax, rdi
add rax, 0xfffffffffffff82b
cmp rax, 0xfffffffffffff82f
jb 0x14003feb2
mov qword [rsp + 0x310], 0
mov qword [rsp + 0x6c8], 0
mov r8, qword [rsp + 0x50]
mov rax, rdx
sub rax, rcx
jb 0x140040354
lea rsi, [r8 + rcx*4]
lea rcx, [r8 + rdx*4]
mov qword [rsp + 0x38], rcx
shl rdx, 2
lea r9, [rdi*4 + 0x10]
mov rbp, rax
mov dword [rsp + 0xc0], ebx
nop dword [rax + rax]
cmp r9, rdx
je 0x14003f5ca
mov rcx, rbp
dec rbp
cmp dword [r8 + rdx - 4], 0x2d
lea rdx, [rdx - 4]
jne 0x14003f4a0
test rbp, rbp
je 0x14003f5e3
sub rax, rcx
lea r15, [rsi + rcx*4]
test rax, rax
jne 0x14003f5d8
xor edx, edx
lea rcx, [rsp + 0x318]
cmp rdx, 2
jae 0x14003fb7a
mov rdi, qword [rsp + 0x6c8]
lea r15, [rsp + 0x318]
cmp rdi, 0x3c
jb 0x14003f50e
mov r15, qword [rsp + 0x320]
mov rdi, qword [rsp + 0x318]
lea rax, [rdi + rbp]
mov qword [rsp + 0x2f8], 0
mov dword [rsp + 0x208], 0
mov r14d, 0x3b
cmp rax, 0x3c
jb 0x14003f8a3
dec rax
bsr rcx, rax
xor rcx, 0x3f
je 0x14004037d
mov rdx, 0xffffffffffffffff
shr rdx, cl
inc rdx
lea rcx, [rsp + 0x208]
call fcn.1400424b0
movabs rcx, 0x8000000000000001
cmp rax, rcx
jne 0x140040378
mov rdx, qword [rsp + 0x2f8]
cmp rdx, 0x3c
jb 0x14003f8d2
mov rax, qword [rsp + 0x210]
mov r8, qword [rsp + 0x218]
lea rcx, [rsp + 0x210]
mov r14, rdx
lea rbx, [rsi + rbp*4]
mov rdx, rax
sub rdx, r14
jb 0x14003f8f5
xor ebp, ebp
xor r12d, r12d
mov qword [rcx], rax
cmp rbp, rdi
jae 0x14003f970
jmp 0x14003f980
xor ebp, ebp
mov r15, rsi
test rax, rax
je 0x14003f4d4
lea rax, [r15 + rax*4]
mov qword [rsp + 0x38], rax
jmp 0x14003f5e8
mov r15, rsi
xor ebp, ebp
xor r12d, r12d
mov edi, 0x48
mov dword [rsp + 0x68], 0x80
mov dword [rsp + 0x78], ebp
mov eax, dword [r15]
lea ecx, [rax - 0x30]
cmp ecx, 0xa
setb dl
lea r8d, [rax - 0x61]
cmp r8d, 0x1a
setb r9b
or r9b, dl
cmp r9b, 1
jne 0x14003fee3
add eax, 0xffffffea
cmp ecx, 0xa
cmovb r8d, eax
lea r10d, [rdi + 0x1a]
add r15, 4
mov r11d, edi
neg r11d
mov ebx, 0x24
mov r9d, 1
mov ecx, r12d
nop word [rax + rax]
mov eax, r8d
mul r9d
jo 0x14003fee3
add ecx, eax
jb 0x14003fee3
lea eax, [r11 + rbx]
cmp ebx, r10d
mov edx, 0x1a
cmovae eax, edx
cmp ebx, edi
mov edx, 1
cmovbe eax, edx
cmp r8d, eax
jb 0x14003f6da
mov edx, 0x24
sub edx, eax
mov eax, r9d
mul edx
jo 0x14003fee3
cmp r15, qword [rsp + 0x38]
je 0x14003fee3
mov r9d, eax
add ebx, 0x24
mov r8d, dword [r15]
lea eax, [r8 - 0x30]
lea edx, [r8 - 0x16]
add r8d, 0xffffff9f
cmp r8d, 0x1a
setb r14b
cmp eax, 0xa
cmovb r8d, edx
setb al
or al, r14b
add r15, 4
cmp al, 1
je 0x14003f650
jmp 0x14003fee3
mov r10d, dword [rsp + 0x78]
inc r10d
mov r9d, 0xd41d41d5
je 0x140040395
mov eax, ecx
sub eax, r12d
test r12d, r12d
mov r8d, 2
mov edx, 0x2bc
cmove r8d, edx
xor edi, edi
xor edx, edx
div r8d
mov r8d, eax
xor edx, edx
div r10d
add eax, r8d
cmp eax, 0x1c8
jb 0x14003f749
xor edi, edi
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 edi, 0x24
cmp eax, 0x3e57
mov eax, r8d
ja 0x14003f720
jmp 0x14003f74c
mov r8d, eax
lea eax, [r8*4]
lea eax, [rax + rax*8]
add r8d, 0x26
xor edx, edx
div r8w
mov r14d, eax
mov eax, ecx
xor edx, edx
mov dword [rsp + 0x78], r10d
div r10d
mov r12d, edx
add dword [rsp + 0x68], eax
setb al
test al, al
jne 0x14003fee3
mov eax, dword [rsp + 0x68]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x14003fee3
cmp dword [rsp + 0x68], 0x110000
je 0x14003fee3
mov rax, qword [rsp + 0x6c8]
mov rcx, rax
lea rdx, [rsp + 0x318]
cmp rax, 0x3c
jb 0x14003f7d2
mov rcx, qword [rsp + 0x318]
mov rdx, qword [rsp + 0x320]
mov ebx, r12d
test rcx, rcx
je 0x14003f813
shl rcx, 4
xor eax, eax
jmp 0x14003f7f9
add rax, 0x10
cmp rcx, rax
je 0x14003f80b
mov r8, qword [rdx + rax]
cmp r8, rbx
jb 0x14003f7f0
inc r8
mov qword [rdx + rax], r8
jmp 0x14003f7f0
mov rax, qword [rsp + 0x6c8]
cmp rax, 0x3c
jb 0x14003f833
mov rcx, qword [rsp + 0x318]
mov rdx, qword [rsp + 0x320]
lea r8, [rsp + 0x318]
jmp 0x14003f84b
mov rcx, rax
lea rdx, [rsp + 0x318]
lea r8, [rsp + 0x6c8]
mov eax, 0x3b
cmp rcx, rax
je 0x14003f87c
shl rcx, 4
mov qword [rdx + rcx], rbx
mov eax, dword [rsp + 0x68]
mov dword [rdx + rcx + 8], eax
inc qword [r8]
movzx eax, r14w
add edi, eax
inc r12d
cmp r15, qword [rsp + 0x38]
jne 0x14003f5fc
jmp 0x14003fb4e
lea rcx, [rsp + 0x310]
call fcn.1400fa950
mov rcx, qword [rsp + 0x318]
mov rdx, qword [rsp + 0x320]
lea r8, [rsp + 0x318]
jmp 0x14003f850
xor eax, eax
jmp 0x14003f8d5
lea r8d, [rdx - 0x11c3]
mov dword [rsp + 0x1b0], eax
mov dword [rsp + 0x1b4], edx
mov dword [rsp + 0x1b8], ecx
cmp r8d, 0xffffff9e
jae 0x14003ea75
jmp 0x14003f0e8
mov rax, rdx
lea r8, [rsp + 0x20c]
lea rcx, [rsp + 0x2f8]
lea rbx, [rsi + rbp*4]
mov rdx, rax
sub rdx, r14
jae 0x14003f5b4
lea r8, [r8 + rax*4]
xor ebp, ebp
xor r12d, r12d
jmp 0x14003f91f
add r10, r15
inc rbp
add r10, 8
mov r9, rsi
mov r10d, dword [r10]
mov dword [r8 + r12*4], r10d
inc r12
mov r10, rdx
add r10, r12
je 0x14003f955
cmp rbp, rdi
jae 0x14003f940
mov r10, rbp
shl r10, 4
cmp r12, qword [r15 + r10]
je 0x14003f900
cmp rsi, rbx
jne 0x14003f949
jmp 0x14003feb0
cmp rsi, rbx
je 0x14003fa4b
lea r9, [rsi + 4]
mov r10, rsi
mov rsi, r9
jmp 0x14003f90d
mov rsi, r9
mov rax, r14
mov qword [rcx], rax
cmp rbp, rdi
jb 0x14003f980
nop word cs:[rax + rax]
cmp rsi, rbx
jne 0x14003f9d9
jmp 0x14003fa51
mov rax, rbp
shl rax, 4
cmp r12, qword [r15 + rax]
jne 0x14003f9d0
add rax, r15
inc rbp
add rax, 8
mov r14, rsi
mov rsi, rax
mov r8, qword [rsp + 0x2f8]
cmp r8, 0x3c
jae 0x14003f9eb
mov rax, r8
lea rcx, [rsp + 0x20c]
lea rdx, [rsp + 0x2f8]
mov r8d, 0x3b
jmp 0x14003fa03
cmp rsi, rbx
je 0x14003fea0
lea r14, [rsi + 4]
mov r8, qword [rsp + 0x2f8]
cmp r8, 0x3c
jb 0x14003f9ab
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0x218]
lea rdx, [rsp + 0x210]
mov esi, dword [rsi]
cmp rax, r8
je 0x14003fa24
mov dword [rcx + rax*4], esi
inc qword [rdx]
inc r12
mov rsi, r14
cmp rbp, rdi
jb 0x14003f980
jmp 0x14003f970
lea rcx, [rsp + 0x208]
call fcn.1400fa640
mov rax, qword [rsp + 0x210]
mov rcx, qword [rsp + 0x218]
lea rdx, [rsp + 0x210]
jmp 0x14003fa0a
add rax, r12
mov qword [rcx], rax
mov rax, qword [r13]
mov rcx, r13
cmp rax, 0xfe
jb 0x14003fa68
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
mov rdi, qword [rsp + 0xc8]
cmp rax, rdi
mov r14, qword [rsp + 0x70]
mov r12, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0x80]
mov ebx, dword [rsp + 0xc0]
jbe 0x14003fa94
mov qword [rcx], rdi
mov rax, qword [rsp + 0x2f8]
lea r9, [rsp + 0x20c]
cmp rax, 0x3c
jb 0x14003faba
mov rax, qword [rsp + 0x210]
mov r9, qword [rsp + 0x218]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, r14
mov r8, rdi
call fcn.1400403b0
test al, al
jne 0x1400402b2
cmp qword [rsp + 0x2f8], 0x3c
jb 0x14003fafc
mov rsi, qword [rsp + 0x218]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rsp + 0x6c8], 0x3c
jb 0x14003fb23
mov rsi, qword [rsp + 0x320]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdx, qword [r13]
mov al, 1
mov qword [rsp + 0x78], rax
mov al, 1
mov dword [rsp + 0x8c], eax
mov rax, qword [rsp + 0x50]
cmp rdx, 0xfe
jae 0x14003f1f2
jmp 0x14003f1fa
mov rdx, qword [rsp + 0x6c8]
cmp rdx, 0x3c
jb 0x14003f4d6
mov rdx, qword [rsp + 0x318]
mov rcx, qword [rsp + 0x320]
cmp rdx, 2
jb 0x14003f4e8
cmp rdx, 0x15
jae 0x14003fc3c
shl rdx, 4
add rdx, rcx
lea rax, [rcx + 0x10]
mov r8d, 0x10
jmp 0x14003fbee
mov rcx, r14
call fcn.1400fa6e0
mov rax, qword [r14 + 8]
mov rcx, qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
jmp 0x14003f282
mov rsi, qword [rsp + 0x7b0]
mov rcx, rsi
call fcn.1400fab90
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x40]
jmp 0x14003f2fa
mov r11, rcx
mov qword [r11], r9
mov dword [r11 + 8], r10d
add rax, 0x10
add r8, 0x10
cmp rax, rdx
je 0x14003f4e8
mov r9, qword [rax]
cmp r9, qword [rax - 0x10]
jae 0x14003fbdd
mov r10d, dword [rax + 8]
mov rdi, r8
movdqu xmm0, xmmword [rcx + rdi - 0x10]
movdqu xmmword [rcx + rdi], xmm0
cmp rdi, 0x10
je 0x14003fbd3
lea r11, [rdi - 0x10]
cmp r9, qword [rcx + rdi - 0x20]
mov rdi, r11
jb 0x14003fbfe
add r11, rcx
jmp 0x14003fbd6
mov rcx, rsi
call fcn.1400fa6e0
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x58]
jmp 0x14003f419
call fcn.140045e90
jmp 0x14003f4e8
mov rax, r9
mov rcx, qword [rsp + 0x40]
mov r9d, 8
mov r14, qword [rsp + 0x70]
mov r12, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0x80]
cmp rax, r9
je 0x14003fe21
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0
jmp 0x14003fd04
xor r15d, r15d
jmp 0x14003fcae
cmp byte [rdi + r15 - 1], 0x2d
jne 0x14003fcae
and eax, 1
add r8, rax
mov rax, qword [r13]
mov rbx, rax
cmp rax, 0xfe
jb 0x14003e240
jmp 0x14003e1c3
and eax, 1
add r8, r15
add r8, rax
mov al, 1
mov dl, 1
mov rdi, qword [rsp + 0x98]
cmp cl, 0x2e
je 0x14003e0d9
jmp 0x14003ff89
mov rax, r9
mov rcx, qword [rsp + 0x40]
mov r9d, 8
mov r8, qword [rsp + 0xa8]
mov r11, qword [rsp + 0x90]
cmp rax, r9
je 0x14003fe5c
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 1
mov qword [rcx + rax*8 + 8], rdi
mov qword [rcx + rax*8 + 0x10], r15
inc qword [rdx]
mov al, 1
xor edx, edx
mov rdi, qword [rsp + 0x98]
test sil, sil
je 0x14003e0d9
jmp 0x14003ff89
cmp qword [rsp + 0x140], 0x12
jb 0x14003fd52
mov rsi, qword [rsp + 0x108]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rsp + 0x1d8], 0
je 0x14003fd79
mov rsi, qword [rsp + 0x1c8]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r8, qword [rsp + 0xa8]
mov r11, qword [rsp + 0x90]
movzx esi, byte [rsp + 0x2f]
jmp 0x14003fd11
mov rcx, r14
mov byte [rsp + 0x2f], sil
mov rsi, r8
mov rbx, r11
call fcn.1400fa6e0
mov r11, rbx
mov r8, rsi
movzx esi, byte [rsp + 0x2f]
mov rax, qword [r14 + 8]
mov rcx, qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
jmp 0x14003e21e
mov r15, qword [rsp + 0x7b0]
mov rcx, r15
mov rsi, r8
mov rbx, r11
call fcn.1400fab90
mov r11, rbx
mov r8, rsi
movzx esi, byte [rsp + 0x2f]
mov rax, qword [r15 + 8]
mov rcx, qword [r15 + 0x10]
mov rdx, qword [rsp + 0x40]
jmp 0x14003e303
mov rbx, qword [rsp + 0x7b0]
mov rcx, rbx
mov rsi, r8
mov rdi, r11
call fcn.1400fab90
mov r11, rdi
mov r8, rsi
mov rax, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rsp + 0x40]
jmp 0x14003e6a9
mov rbp, qword [rsp + 0x7b0]
mov rcx, rbp
mov rsi, r8
mov rbx, r11
call fcn.1400fab90
mov r11, rbx
mov r8, rsi
movzx esi, byte [rsp + 0x2f]
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x10]
mov rbp, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x40]
jmp 0x14003fc72
mov rbp, qword [rsp + 0x7b0]
mov rcx, rbp
call fcn.1400fab90
mov r11, qword [rsp + 0x90]
mov r8, qword [rsp + 0xa8]
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x10]
mov rbp, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x40]
jmp 0x14003fcf8
jmp 0x14003fea0
jmp 0x14003feb0
mov rax, qword [rsp + 0x30]
mov qword [rax], 0
mov word [rax + 8], 0x100
cmp qword [rsp + 0x140], 0x12
jae 0x14003ff34
cmp qword [rsp + 0x1d8], 0
jne 0x14003ff5f
jmp 0x140040243
mov rax, qword [rsp + 0x30]
mov qword [rax], 0
mov word [rax + 8], 0x100
cmp qword [rsp + 0x6c8], 0x3c
jb 0x14003ff29
mov rsi, qword [rsp + 0x320]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rsp + 0x140], 0x12
jb 0x14003fecf
jmp 0x14003ff34
cmp qword [rsp + 0x140], 0x12
jb 0x14003fecf
mov rsi, qword [rsp + 0x108]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rsp + 0x1d8], 0
je 0x140040243
mov rsi, qword [rsp + 0x1c8]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140040243
movzx eax, al
and eax, 1
add r8, rax
mov rdi, qword [r13]
mov rbx, qword [rsp + 0x50]
cmp rdi, 0xfe
jb 0x14003ffa3
mov rdi, qword [r14 + 8]
mov rbx, qword [r14 + 0x10]
test rdi, rdi
je 0x14004004c
mov rax, qword [r12 + 0x158]
mov qword [rsp + 0x38], rax
shl rdi, 2
xor r14d, r14d
movdqa xmm6, xmmword [0x1400ff8f0]
movdqa xmm7, xmmword [0x1400ff6b0]
movdqa xmm8, xmmword [0x1400ff900]
mov ebp, 0x2022
jmp 0x14003ffe9
add r14, 4
cmp rdi, r14
je 0x14004004c
mov edx, dword [rbx + r14]
cmp edx, 0x590
jb 0x14003ffe0
movd xmm0, edx
pshufd xmm0, xmm0, 0
paddd xmm0, xmm6
pxor xmm0, xmm7
pcmpgtd xmm0, xmm8
movmskps eax, xmm0
cmp eax, 0xf
jne 0x14003ffe0
mov rcx, qword [rsp + 0x38]
mov rsi, r8
call fcn.140045bd0
mov r8, rsi
movzx eax, al
bt ebp, eax
jae 0x14003ffe0
mov rdx, qword [r13]
cmp rdx, 0xfe
jb 0x140040071
mov rax, qword [rsp + 0x70]
mov rdx, qword [rax + 8]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x50], rax
jmp 0x140040071
xor ebp, ebp
mov rax, qword [rsp + 0x30]
mov qword [rax], r8
mov byte [rax + 8], bpl
mov byte [rax + 9], 0
jmp 0x140040243
cmp r15d, 0x2e
mov r8, rsi
mov rdx, qword [rsp + 0x60]
jne 0x14004004e
mov r14, qword [rsp + 0x50]
mov bpl, 1
test rdx, rdx
je 0x14004004e
lea rax, [rdx*4]
xor r13d, r13d
nop dword [rax]
mov r15d, dword [r14 + r13*4]
cmp r15d, 0x2e
je 0x1400400b9
inc r13
add rax, 0xfffffffffffffffc
jne 0x140040090
mov eax, 4
mov qword [rsp + 0x50], rax
mov r13, rdx
xor eax, eax
mov qword [rsp + 0x60], rax
jmp 0x1400400d2
lea rax, [r13 + 1]
lea rcx, [r14 + r13*4]
add rcx, 4
mov qword [rsp + 0x50], rcx
sub rdx, rax
mov qword [rsp + 0x60], rdx
test r13, r13
je 0x140040063
mov edx, dword [r14]
mov rcx, qword [rsp + 0x38]
call fcn.140045bd0
mov ebx, eax
movzx eax, al
mov ecx, 0x2003
bt ecx, eax
jae 0x140040231
mov r12, r13
dec r12
je 0x140040063
mov edx, dword [r14 + r13*4 - 4]
mov rcx, qword [rsp + 0x38]
call fcn.140045bd0
cmp al, 0x11
jne 0x140040140
nop word cs:[rax + rax]
cmp r12, 1
je 0x140040063
mov edx, dword [r14 + r12*4 - 4]
mov rcx, qword [rsp + 0x38]
call fcn.140045bd0
dec r12
cmp al, 0x11
je 0x140040120
test bl, bl
mov ecx, 0x2026
mov edx, 5
cmove ecx, edx
movzx edx, al
bt ecx, edx
jae 0x140040231
shl r12, 2
test bl, bl
je 0x1400401dd
cmp r12, 4
je 0x140040063
mov ebx, 4
xor r13d, r13d
jmp 0x14004019a
cmp cl, 5
sete al
add al, al
cmp cl, 2
movzx r13d, al
mov eax, 1
cmove r13d, eax
mov eax, edi
add rbx, 4
cmp r12, rbx
je 0x140040215
mov edi, eax
mov edx, dword [r14 + rbx]
mov rcx, qword [rsp + 0x38]
call fcn.140045bd0
mov ecx, eax
movzx eax, al
mov edx, 0x6247e
bt edx, eax
jae 0x140040231
test r13b, r13b
je 0x140040177
movzx eax, r13b
cmp eax, 1
mov eax, edi
jne 0x1400401d3
mov r13b, 1
cmp cl, 5
jne 0x140040191
jmp 0x140040231
mov r13b, 2
cmp cl, 2
jne 0x140040191
jmp 0x140040231
cmp r12, 4
je 0x140040063
mov edi, 4
mov edx, dword [r14 + rdi]
mov rcx, qword [rsp + 0x38]
call fcn.140045bd0
movzx eax, al
mov ecx, 0x6045d
bt ecx, eax
jae 0x140040231
add rdi, 4
cmp r12, rdi
jne 0x1400401ec
jmp 0x140040063
cmp al, 5
jne 0x14004021f
cmp r13b, 1
je 0x140040231
cmp al, 2
jne 0x140040063
cmp r13b, 2
jne 0x140040063
mov rax, qword [rsp + 0x30]
mov qword [rax], 0
mov word [rax + 8], 0x100
movaps xmm6, xmmword [rsp + 0x710]
movaps xmm7, xmmword [rsp + 0x720]
movaps xmm8, xmmword [rsp + 0x730]
add rsp, 0x748
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x30]
mov qword [rax], 0
mov word [rax + 8], 0x100
lea rcx, [rsp + 0x208]
call fcn.1400428b0
jmp 0x1400402a3
mov rax, qword [rsp + 0x30]
mov qword [rax], 0
mov word [rax + 8], 0x100
lea rcx, [rsp + 0x310]
call fcn.1400428f0
jmp 0x140040243
mov rax, qword [rsp + 0x30]
mov qword [rax], 0
mov word [rax + 8], 0x100
cmp qword [rsp + 0x2f8], 0x3c
jb 0x14003fef5
mov rsi, qword [rsp + 0x218]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14003fef5
lea rcx, str.assertion_failed:_end___len
lea r8, [0x1401347f0]
mov edx, 0x1c
call fcn.1400f8090
lea r8, str..cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_1.0.3_srcuts46.rsPunycode_overflows_should_not_be_possible_due_to_PUNYCODE_ENCODE_MAX_INPUT_LENGTH
mov rcx, rdi
mov rdx, rax
call fcn.1400f7fd0
lea r8, str..cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_1.0.3_srcuts46.rsPunycode_overflows_should_not_be_possible_due_to_PUNYCODE_ENCODE_MAX_INPUT_LENGTH
mov rcx, rdi
call fcn.1400f7fd0
lea rcx, str.assertion_failed:_index___len
lea r8, [0x140134828]
mov edx, 0x1d
call fcn.1400f8090
lea r8, str..cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_1.0.3_srcuts46.rsPunycode_overflows_should_not_be_possible_due_to_PUNYCODE_ENCODE_MAX_INPUT_LENGTH
mov rdx, rax
call fcn.1400f7fd0
lea r8, str..cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_1.0.3_srcuts46.rsPunycode_overflows_should_not_be_possible_due_to_PUNYCODE_ENCODE_MAX_INPUT_LENGTH
call fcn.1400f7fd0
lea rcx, str.internal_error:_entered_unreachable_codemark_pending_called_when_the_timer_entry_is_in_an_invalid_state
lea r8, str..cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_1.0.3_srcuts46.rsPunycode_overflows_should_not_be_possible_due_to_PUNYCODE_ENCODE_MAX_INPUT_LENGTH
mov edx, 0x28
call fcn.1400f8090
test rax, rax
jne 0x1400403a1
lea rcx, str.capacity_overflow
lea r8, [0x1401347a0]
mov edx, 0x11
call fcn.1400f8090
lea rcx, str..cargo_registry_srcindex.crates.io_6f17d22bba15001fidna_1.0.3_srcpunycode.rs
call fcn.1400f8210
mov rcx, rax
call fcn.1400f7b90
int3