Function at 0x180017cb0
Capabilities:
Encrypt data using speck

Disassembly:
push rbx
push rsi
push r14
sub rsp, 0xf0
mov r11, qword [rcx + 0x40]
lea rax, [rcx + 0x50]
mov qword [rax], rdx
xor ebx, ebx
mov r8, qword [rcx + 0x10]
mov rsi, rcx
mov r10, qword [rdx + 8]
mov r14d, ebx
mov r9, qword [rdx]
mov qword [rsp + 0x48], rax
mov eax, dword [rcx + 8]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x28], r11
mov dword [rsp + 0x20], ebx
lea rcx, [r8 + rax*4]
mov qword [rsp + 0x40], r10
cmp r8, rcx
jne 0x180017d0d
lea eax, [rbx + 0xd]
add rsp, 0xf0
pop r14
pop rsi
pop rbx
ret
mov rax, qword [rsi + 0x30]
movabs rcx, 0x3333333333333333
mov qword [rsp + 0x118], rbp
lea rbp, [0x180000000]
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x128], r12
mov r12d, 9
mov qword [rsp + 0xe8], r13
lea r13, [r8 + 4]
mov qword [rsp + 0xe0], r15
lea r15, [r9 + 8]
movaps xmmword [rsp + 0xd0], xmm6
movabs r9, 0x7400000000000000
movsd xmm6, qword [0x18003f640]
mov dword [rax], ebx
mov rax, qword [rsi + 0x30]
movaps xmmword [rsp + 0xc0], xmm7
xorps xmm7, xmm7
movaps xmmword [rsp + 0xb0], xmm8
movsd xmm8, qword [0x18003f648]
mov dword [rax + 4], ebx
mov edx, dword [r8]
movabs r8, 0x2200000000000000
movzx eax, byte [r11 + rdx]
lea rdi, [r11 + rdx]
movaps xmmword [rsp + 0xa0], xmm9
movsd xmm9, qword [0x18003f638]
movaps xmmword [rsp + 0x90], xmm10
movsd xmm10, qword [0x18003f750]
mov qword [rsp + 0x50], rcx
cmp al, 0x5b
je 0x18001885c
cmp al, 0x7b
jne 0x180017e9c
mov ecx, dword [rsi + 8]
mov rdx, r11
mov rax, qword [rsi + 0x10]
dec ecx
mov rdi, rsi
mov ecx, dword [rax + rcx*4]
cmp byte [rcx + rdx], 0x7d
jne case.0x180017ec5.35
mov eax, dword [r13]
cmp byte [rax + rdx], 0x7d
jne 0x180019645
mov rax, qword [rsp + 0x48]
mov rdx, r15
add r13, 4
mov rax, qword [rax]
sub rdx, qword [rax]
movabs rax, 0x7b00000000000000
sar rdx, 3
lea ecx, [rdx + 2]
or rcx, rax
mov eax, edx
mov qword [r15], rcx
movabs rdx, 0x7d00000000000000
or rax, rdx
mov qword [r15 + 8], rax
add r15, 0x10
mov rdx, qword [rsp + 0x60]
movabs r8, 0x7200000000000000
mov qword [r15], r8
mov rax, qword [rdx + 0x50]
mov rcx, qword [rax]
sub r15, rcx
lea rax, [r15 + 8]
sar rax, 3
mov eax, eax
or rax, r8
mov qword [rcx], rax
mov eax, 3
sub r13, qword [rdx + 0x10]
sar r13, 2
mov dword [rdx + 0x18], r13d
cmp r13d, dword [rdx + 8]
cmovne ebx, eax
mov eax, ebx
jmp 0x18001a385
add eax, 0xffffffde
cmp eax, 0x52
ja case.0x180017ec5.35
lea r12, [0x180000000]
cdqe
movzx eax, byte [r12 + rax + 0x1a3fc]
mov ecx, dword [r12 + rax*4 + 0x1a3e4]
add rcx, r12
jmp rcx
mov rax, qword [rsp + 0x48]
lea r9, [rdi + 1]
mov rcx, r10
mov rax, qword [rax]
sub rcx, qword [rax + 8]
mov rax, r8
or rcx, rax
lea r8, [r10 + 4]
mov qword [r15], rcx
add r15, 8
movzx eax, byte [r9]
mov byte [r8], al
movzx eax, byte [r9]
cmp al, 0x22
je 0x1800180b9
nop
cmp al, 0x5c
jne 0x18001809b
movzx eax, byte [r9 + 1]
cmp al, 0x75
jne 0x180018085
movzx eax, byte [r9 + 2]
movzx ecx, byte [r9 + 4]
mov edx, dword [r12 + rcx*4 + 0x39c88]
or edx, dword [r12 + rax*4 + 0x3a318]
movzx eax, byte [r9 + 3]
or edx, dword [r12 + rax*4 + 0x39fd0]
movzx eax, byte [r9 + 5]
add r9, 6
or edx, dword [r12 + rax*4 + 0x39940]
lea r11d, [rdx - 0xd800]
cmp r11d, 0x3ff
ja 0x180017fd4
movzx ecx, byte [r9]
movzx eax, byte [r9 + 1]
shl ecx, 8
or ecx, eax
cmp ecx, 0x5c75
jne 0x1800180be
movzx eax, byte [r9 + 2]
movzx ecx, byte [r9 + 4]
mov r10d, dword [r12 + rcx*4 + 0x39c88]
or r10d, dword [r12 + rax*4 + 0x3a318]
movzx eax, byte [r9 + 3]
or r10d, dword [r12 + rax*4 + 0x39fd0]
movzx eax, byte [r9 + 5]
or r10d, dword [r12 + rax*4 + 0x39940]
sub r10d, 0xdc00
cmp r10d, 0x400
jae 0x1800180be
mov edx, r11d
shl edx, 0xa
or edx, r10d
add edx, 0x10000
add r9, 6
jmp 0x180017fe5
lea eax, [rdx - 0xdc00]
cmp eax, 0x3ff
jbe 0x1800180be
cmp edx, 0x7f
ja 0x180017ff5
mov byte [r8], dl
inc r8
jmp 0x1800180a1
cmp edx, 0x7ff
ja 0x18001801a
mov eax, edx
and dl, 0x3f
shr eax, 6
add dl, 0x80
sub al, 0x40
mov byte [r8 + 1], dl
mov byte [r8], al
add r8, 2
jmp 0x1800180a1
cmp edx, 0xffff
ja 0x180018049
mov eax, edx
shr eax, 0xc
sub al, 0x20
mov byte [r8], al
mov eax, edx
shr eax, 6
and dl, 0x3f
and al, 0x3f
add dl, 0x80
add al, 0x80
mov byte [r8 + 2], dl
mov byte [r8 + 1], al
add r8, 3
jmp 0x1800180a1
cmp edx, 0x10ffff
ja 0x1800180be
mov eax, edx
shr eax, 0x12
sub al, 0x10
mov byte [r8], al
mov eax, edx
shr eax, 0xc
and al, 0x3f
add al, 0x80
mov byte [r8 + 1], al
mov eax, edx
shr eax, 6
and dl, 0x3f
and al, 0x3f
add dl, 0x80
add al, 0x80
mov byte [r8 + 3], dl
mov byte [r8 + 2], al
add r8, 4
jmp 0x1800180a1
movzx ecx, byte [rax + r12 + 0x3dfa0]
test cl, cl
je 0x1800180be
mov byte [r8], cl
add r9, 2
jmp 0x18001809e
inc r9
inc r8
movzx eax, byte [r9]
mov byte [r8], al
movzx eax, byte [r9]
cmp al, 0x22
jne 0x180017f00
mov r10, qword [rsp + 0x40]
test r8, r8
jne 0x1800180cb
mov dword [rsp + 0x20], 5
jmp 0x180018429
mov eax, r8d
mov dword [rsp + 0x20], ebx
sub eax, r10d
sub eax, 4
mov dword [r10], eax
mov byte [r8], bl
jmp 0x180018429
mov rcx, qword [rsi + 0x48]
sub rcx, rdx
cmp rcx, 4
jbe 0x180018108
movzx eax, byte [rdi + 4]
movzx ecx, byte [rax + r12 + 0x39740]
mov eax, dword [rdi]
xor eax, 0x65757274
or ecx, eax
jmp 0x180018110
jne 0x18001812a
cmp dword [rdi], 0x65757274
sete al
test al, al
je 0x18001812a
mov rax, r9
mov dword [rsp + 0x20], ebx
mov qword [r15], rax
add r15, 8
jmp 0x180018429
mov dword [rsp + 0x20], 6
jmp 0x180018429
mov rcx, qword [rsi + 0x48]
sub rcx, rdx
cmp rcx, 5
jbe 0x18001815d
movzx eax, byte [rdi + 5]
movzx ecx, byte [rax + r12 + 0x39740]
mov eax, dword [rdi + 1]
xor eax, 0x65736c61
or ecx, eax
jmp 0x180018166
jne 0x180018187
cmp dword [rdi + 1], 0x65736c61
sete al
test al, al
je 0x180018187
movabs rax, 0x6600000000000000
mov dword [rsp + 0x20], ebx
mov qword [r15], rax
add r15, 8
jmp 0x180018429
mov dword [rsp + 0x20], 7
jmp 0x180018429
mov rcx, qword [rsi + 0x48]
sub rcx, rdx
cmp rcx, 4
jbe 0x1800181b9
movzx eax, byte [rdi + 4]
movzx ecx, byte [rax + r12 + 0x39740]
mov eax, dword [rdi]
xor eax, 0x6c6c756e
or ecx, eax
jmp 0x1800181c1
jne 0x1800181e2
cmp dword [rdi], 0x6c6c756e
sete al
test al, al
je 0x1800181e2
movabs rax, 0x6e00000000000000
mov dword [rsp + 0x20], ebx
mov qword [r15], rax
add r15, 8
jmp 0x180018429
mov dword [rsp + 0x20], 8
jmp 0x180018429
mov rcx, qword [rsi + 0x48]
sub rcx, rdx
lea rdx, [0x18003fb40]
add rcx, 0x40
call fcn.18002d22c
mov rbx, rax
test rax, rax
jne 0x18001821b
mov dword [rsp + 0x20], 2
jmp 0x180018427
mov eax, dword [r13 - 4]
mov rdx, rdi
mov r8, qword [rsi + 0x48]
mov rcx, rbx
sub r8, rax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [r13 - 4]
mov rdx, r14
movdqa xmm0, xmmword [str.________________________________0000000000000000]
mov rcx, rbx
sub rcx, rax
mov r8, r14
add rcx, qword [rsi + 0x48]
movups xmmword [rcx], xmm0
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm0
movups xmmword [rcx + 0x30], xmm0
movzx edi, byte [rbx]
cmp dil, 0x2d
sete dl
add rdx, rbx
mov rsi, rdx
nop dword [rax]
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
ja 0x180018289
movzx eax, al
lea rcx, [r8 + r8*4]
inc rdx
lea r8, [rax + rcx*2]
jmp 0x180018270
mov r11, rdx
sub r11, rsi
je 0x180018417
cmp byte [rsi], 0x30
jne 0x1800182a4
cmp r11, 1
ja 0x180018417
xor r9b, r9b
mov r10, r14
cmp byte [rdx], 0x2e
jne 0x180018379
mov rcx, qword [rdx + 1]
inc rdx
movabs rax, 0x606060606060606
movabs r11, 0xf0f0f0f0f0f0f0f
add rax, rcx
movabs rbp, 0x3333333333333333
shr rax, 4
mov r9b, 1
xor rax, rcx
mov r10, rdx
and rax, r11
xor rax, rcx
cmp rax, rbp
jne 0x180018346
and rcx, r11
imul rax, rcx, 0xa01
imul r8, r8, 0x5f5e100
shr rax, 8
movabs rcx, 0xff00ff00ff00ff
and rax, rcx
imul rcx, rax, 0x640001
movabs rax, 0xffff0000ffff
shr rcx, 0x10
and rcx, rax
movabs rax, 0x271000000001
imul rcx, rax
shr rcx, 0x20
add r8, rcx
add rdx, 8
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
ja 0x180018360
movzx eax, al
lea rcx, [r8 + r8*4]
inc rdx
lea r8, [rax + rcx*2]
nop dword [rax]
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
jbe 0x18001834f
sub r10, rdx
je 0x180018417
mov eax, edx
sub eax, esi
movsxd r11, eax
movzx eax, byte [rdx]
sub al, 0x45
test al, 0xdf
je 0x18001848d
test r9b, r9b
jne 0x180018504
cmp dil, 0x2d
mov rax, r14
setne al
add rax, 0x13
cmp r11, rax
jbe 0x1800183ac
mov dword [rsp + 0x20], 0xa
jmp 0x18001841f
jne 0x18001843a
cmp dil, 0x2d
jne 0x180018402
movabs rax, 0x8000000000000000
cmp r8, rax
jbe 0x1800183d1
mov dword [rsp + 0x20], 0xa
jmp 0x18001841f
neg r8
movabs rax, 0x6c00000000000000
mov qword [r15], rax
mov qword [r15 + 8], r8
add r15, 0x10
movzx eax, byte [rdx]
movzx ecx, byte [rax + r12 + 0x39740]
neg cl
sbb eax, eax
and eax, 9
mov dword [rsp + 0x20], eax
jmp 0x18001841f
cmp dil, 0x31
jne 0x180018417
movabs rax, 0x7fffffffffffffff
cmp r8, rax
ja 0x180018449
mov dword [rsp + 0x20], 9
mov rcx, rbx
call fcn.18002d224
xor ebx, ebx
mov eax, dword [rsp + 0x20]
test eax, eax
je 0x180017e51
jmp 0x18001a385
movabs rax, 0x7fffffffffffffff
cmp r8, rax
jbe 0x180018455
movabs r9, 0x7500000000000000
jmp 0x180018468
cmp dil, 0x2d
jne 0x18001845e
neg r8
movabs r9, 0x6c00000000000000
lea rax, [r15 + 8]
mov qword [r15], r9
mov rcx, rax
mov qword [rax], r8
movzx eax, byte [rdx]
lea r15, [rcx + 8]
cmp byte [rax + r12 + 0x39740], r14b
jne 0x180018417
mov dword [rsp + 0x20], r14d
jmp 0x18001841f
movzx ebp, byte [rdx + 1]
inc rdx
lea eax, [rbp - 0x2b]
test al, 0xfd
jne 0x18001849e
inc rdx
mov r9, rdx
mov rcx, r14
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
ja 0x1800184bd
movzx eax, al
lea rcx, [rcx + rcx*4]
inc rdx
lea rcx, [rax + rcx*2]
jmp 0x1800184a4
cmp rdx, r9
je 0x180018417
lea rax, [r9 + 0x12]
cmp rdx, rax
jbe 0x1800184f3
cmp byte [r9], 0x30
jne 0x1800184de
inc r9
cmp byte [r9], 0x30
je 0x1800184d5
lea rax, [r9 + 0x12]
movabs r9, 0xde0b6b3a763ffff
cmp rdx, rax
cmova rcx, r9
mov rax, rcx
neg rax
cmp bpl, 0x2d
cmovne rax, rcx
add r10, rax
movzx eax, byte [rdx]
movzx ebp, byte [rax + r12 + 0x39740]
cmp r11, 0x13
jbe 0x18001859c
mov rcx, rsi
nop dword [rax]
movzx eax, byte [rcx]
sub al, 0x2e
test al, 0xfd
jne 0x18001852e
inc rcx
jmp 0x180018520
sub r11, rcx
add r11, rsi
cmp r11, 0x13
jbe 0x18001859c
mov rcx, rbx
call fcn.1800151a0
comisd xmm0, xmmword [0x18003f638]
ja 0x18001855e
movsd xmm1, qword [0x18003f648]
comisd xmm1, xmm0
ja 0x18001855e
mov dl, 1
jmp 0x180018560
xor dl, dl
movabs rax, 0x6400000000000000
movsd qword [rsp + 0x50], xmm0
mov qword [r15], rax
mov ecx, r14d
mov rax, qword [rsp + 0x50]
mov qword [r15 + 8], rax
add r15, 0x10
test dl, dl
mov eax, 9
cmove ecx, eax
mov dword [rsp + 0x20], ecx
jne 0x18001884b
jmp 0x18001841f
cmp r10, 0xfffffffffffffeaa
jl 0x180018818
cmp r10, 0x134
jg 0x18001880f
lea rax, [r10 + 0x16]
cmp rax, 0x2c
ja 0x18001862c
movabs rax, 0x1fffffffffffff
cmp r8, rax
ja 0x18001862c
xorps xmm0, xmm0
test r8, r8
js 0x1800185de
cvtsi2sd xmm0, r8
jmp 0x1800185f4
mov rax, r8
and r8d, 1
shr rax, 1
or rax, r8
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
lea rax, [r10*8]
lea rcx, [0x18003a920]
test r10, r10
jns 0x180018611
sub rcx, rax
divsd xmm0, qword [rcx]
jmp 0x180018616
mulsd xmm0, qword [rax + rcx]
cmp dil, 0x2d
jne 0x18001882b
xorps xmm0, xmmword [0x18003f750]
jmp 0x18001882b
test r8, r8
je 0x180018818
imul r9, r10, 0x3526a
mov dword [rsp + 0x20], r14d
sar r9, 0x10
add r9, 0x43f
bsr rax, r8
je 0x18001865b
mov esi, 0x3f
sub esi, eax
jmp 0x180018660
mov esi, 0x40
mov ecx, esi
shl r8, cl
lea ecx, [r10*2 + 0x2ac]
mov rax, qword [r12 + rcx*8 + 0x3a9e0]
mul r8
mov qword [rsp + 0x58], rdx
mov r11, rax
mov qword [rsp + 0x50], rax
and edx, 0x1ff
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
cmp rdx, 0x1ff
jne 0x1800186be
inc ecx
mov rax, qword [r12 + rcx*8 + 0x3a9e0]
mul r8
add r11, rdx
cmp rdx, r11
mov rdx, qword [rsp + 0x58]
jbe 0x1800186c8
inc rdx
jmp 0x1800186c8
mov rdx, qword [rsp + 0x58]
mov r11, qword [rsp + 0x50]
mov rax, rdx
mov r8, rdx
shr rax, 0x3f
lea rcx, [rax + 9]
xor eax, 1
add eax, esi
shr r8, cl
cdqe
sub r9, rax
test r9, r9
jg 0x180018758
mov eax, 1
sub rax, r9
cmp rax, 0x40
jge 0x180018818
mov rcx, rax
movabs rax, 0x10000000000000
shr r8, cl
mov rcx, r14
mov rdx, r8
and edx, 1
add rdx, r8
movabs r8, 0x8000000000000000
shr rdx, 1
cmp rdx, rax
cmovae rcx, rax
cmp dil, 0x2d
mov rax, r14
cmove rax, r8
or rcx, rax
movabs rax, 0xffefffffffffffff
and rdx, rax
or rcx, rdx
mov qword [rsp + 0x48], rcx
movsd xmm0, qword [rsp + 0x48]
jmp 0x18001882b
cmp r11, 1
ja 0x180018781
lea rax, [r10 + 4]
cmp rax, 0x1b
ja 0x180018781
movzx eax, r8b
and al, 3
cmp al, 1
jne 0x180018781
mov rax, r8
shl rax, cl
cmp rax, rdx
jne 0x180018781
and r8, 0xfffffffffffffffe
mov rcx, r8
movabs rax, 0x20000000000000
and ecx, 1
add rcx, r8
shr rcx, 1
cmp rcx, rax
jb 0x1800187a9
movabs rcx, 0x10000000000000
inc r9
cmp r9, 0x7fe
jle 0x1800187db
mov rcx, rbx
call fcn.1800151a0
comisd xmm0, xmmword [0x18003f638]
ja 0x180018417
movsd xmm1, qword [0x18003f648]
comisd xmm1, xmm0
jbe 0x18001882b
jmp 0x180018417
cmp dil, 0x2d
mov edx, 0x800
mov rax, r14
cmove rax, rdx
movabs rdx, 0xffefffffffffffff
or rax, r9
and rcx, rdx
shl rax, 0x34
or rax, rcx
mov qword [rsp + 0x48], rax
movsd xmm0, qword [rsp + 0x48]
jmp 0x18001882b
test r8, r8
jne 0x180018417
cmp dil, 0x2d
jne 0x180018828
movsd xmm0, qword [0x18003f640]
jmp 0x18001882b
xorps xmm0, xmm0
movabs rax, 0x6400000000000000
movsd qword [rsp + 0x50], xmm0
mov qword [r15], rax
mov rax, qword [rsp + 0x50]
mov qword [r15 + 8], rax
add r15, 0x10
neg bpl
sbb eax, eax
and eax, 9
mov dword [rsp + 0x20], eax
jmp 0x18001841f
mov ecx, dword [rsi + 8]
mov rdx, r11
mov rax, qword [rsi + 0x10]
dec ecx
mov rdi, rsi
mov ecx, dword [rax + rcx*4]
cmp byte [rcx + rdx], 0x5d
jne case.0x180017ec5.35
mov eax, dword [r13]
cmp byte [rax + rdx], 0x5d
jne 0x1800188bc
mov rax, qword [rsp + 0x48]
mov rdx, r15
add r13, 4
movabs r11, 0x5b00000000000000
mov rax, qword [rax]
sub rdx, qword [rax]
sar rdx, 3
mov eax, edx
lea ecx, [rdx + 2]
movabs rdx, 0x5d00000000000000
or rcx, r11
mov qword [r15], rcx
jmp 0x180017e46
inc r14d
mov eax, r14d
mov dword [rsp + 0x20], r14d
cmp rax, qword [rdi + 0x28]
jae 0x18001a380
mov rax, qword [rdi + 0x38]
mov rcx, r15
mov rdx, qword [rsp + 0x28]
add r15, 8
mov byte [r14 + rax], 1
mov rax, qword [rdi + 0x50]
sub rcx, qword [rax]
mov rax, qword [rdi + 0x30]
sar rcx, 3
mov dword [rax + r14*8], ecx
mov rax, qword [rdi + 0x30]
mov dword [rax + r14*8 + 4], ebx
mov rax, qword [rdi + 0x30]
inc dword [rax + r14*8 + 4]
mov r14d, dword [r13]
mov r11, r15
add r14, rdx
add r13, 4
movzx esi, byte [r14]
cmp sil, 0x5b
je 0x1800192b7
cmp sil, 0x7b
je 0x180019266
cmp sil, 0x22
jne 0x180018b53
mov rax, qword [rdi + 0x50]
lea r9, [r14 + 1]
mov rcx, r10
sub rcx, qword [rax + 8]
or rcx, r8
lea r8, [r10 + 4]
mov qword [r15], rcx
add r15, 8
movzx eax, byte [r9]
mov byte [r8], al
movzx eax, byte [r9]
cmp al, sil
je 0x180018b24
nop dword [rax]
cmp al, 0x5c
jne 0x180018b06
movzx eax, byte [r9 + 1]
cmp al, 0x75
jne 0x180018af1
movzx eax, byte [r9 + 2]
movzx ecx, byte [r9 + 4]
mov edx, dword [rbp + rcx*4 + 0x39c88]
or edx, dword [rbp + rax*4 + 0x3a318]
movzx eax, byte [r9 + 3]
or edx, dword [rbp + rax*4 + 0x39fd0]
movzx eax, byte [r9 + 5]
add r9, 6
or edx, dword [rbp + rax*4 + 0x39940]
lea r11d, [rdx - 0xd800]
cmp r11d, 0x3ff
ja 0x180018a40
movzx ecx, byte [r9]
movzx eax, byte [r9 + 1]
shl ecx, 8
or ecx, eax
cmp ecx, 0x5c75
jne 0x180018b29
movzx eax, byte [r9 + 2]
movzx ecx, byte [r9 + 4]
mov r10d, dword [rbp + rcx*4 + 0x39c88]
or r10d, dword [rbp + rax*4 + 0x3a318]
movzx eax, byte [r9 + 3]
or r10d, dword [rbp + rax*4 + 0x39fd0]
movzx eax, byte [r9 + 5]
or r10d, dword [rbp + rax*4 + 0x39940]
sub r10d, 0xdc00
cmp r10d, 0x400
jae 0x180018b29
mov edx, r11d
shl edx, 0xa
or edx, r10d
add edx, 0x10000
add r9, 6
jmp 0x180018a51
lea eax, [rdx - 0xdc00]
cmp eax, 0x3ff
jbe 0x180018b29
cmp edx, 0x7f
ja 0x180018a61
mov byte [r8], dl
inc r8
jmp 0x180018b0c
cmp edx, 0x7ff
ja 0x180018a86
mov eax, edx
and dl, 0x3f
shr eax, 6
add dl, 0x80
sub al, 0x40
mov byte [r8 + 1], dl
mov byte [r8], al
add r8, 2
jmp 0x180018b0c
cmp edx, 0xffff
ja 0x180018ab5
mov eax, edx
shr eax, 0xc
sub al, 0x20
mov byte [r8], al
mov eax, edx
shr eax, 6
and dl, 0x3f
and al, 0x3f
add dl, 0x80
add al, 0x80
mov byte [r8 + 2], dl
mov byte [r8 + 1], al
add r8, 3
jmp 0x180018b0c
cmp edx, 0x10ffff
ja 0x180018b29
mov eax, edx
shr eax, 0x12
sub al, 0x10
mov byte [r8], al
mov eax, edx
shr eax, 0xc
and al, 0x3f
add al, 0x80
mov byte [r8 + 1], al
mov eax, edx
shr eax, 6
and dl, 0x3f
and al, 0x3f
add dl, 0x80
add al, 0x80
mov byte [r8 + 3], dl
mov byte [r8 + 2], al
add r8, 4
jmp 0x180018b0c
movzx ecx, byte [rax + rbp + 0x3dfa0]
test cl, cl
je 0x180018b29
mov byte [r8], cl
add r9, 2
jmp 0x180018b09
inc r9
inc r8
movzx eax, byte [r9]
mov byte [r8], al
movzx eax, byte [r9]
cmp al, 0x22
jne 0x180018970
mov r10, qword [rsp + 0x40]
test r8, r8
jne 0x180018b33
mov eax, 5
jmp 0x180019236
mov eax, r8d
sub eax, r10d
sub eax, 4
mov dword [r10], eax
lea r10, [r8 + 1]
mov qword [rsp + 0x40], r10
mov eax, ebx
mov byte [r8], 0
jmp 0x18001923b
cmp sil, 0x3a
jb 0x180018c1b
cmp sil, 0x66
je 0x180018bdf
cmp sil, 0x6e
je 0x180018ba4
cmp sil, 0x74
jne case.0x180017ec5.35
movzx eax, byte [r14 + 4]
movzx ecx, byte [rax + rbp + 0x39740]
mov eax, dword [r14]
xor eax, 0x65757274
or ecx, eax
je 0x180018b96
mov eax, 6
jmp 0x180019240
mov qword [r15], r9
mov eax, ebx
add r15, 8
jmp 0x180019240
movzx eax, byte [r14 + 4]
movzx ecx, byte [rax + rbp + 0x39740]
mov eax, dword [r14]
xor eax, 0x6c6c756e
or ecx, eax
je 0x180018bc7
mov eax, 8
jmp 0x180019240
movabs rax, 0x6e00000000000000
mov qword [r15], rax
add r15, 8
mov eax, ebx
jmp 0x180019240
movzx eax, byte [r14 + 5]
movzx ecx, byte [rax + rbp + 0x39740]
mov eax, dword [r14 + 1]
xor eax, 0x65736c61
or ecx, eax
je 0x180018c03
mov eax, 7
jmp 0x180019240
movabs rax, 0x6600000000000000
mov qword [r15], rax
add r15, 8
mov eax, ebx
jmp 0x180019240
cmp sil, 0x2d
mov rdx, rbx
mov r8, rbx
sete dl
add rdx, r14
mov rdi, rdx
nop
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
ja 0x180018c49
movzx eax, al
lea rcx, [r8 + r8*4]
inc rdx
lea r8, [rax + rcx*2]
jmp 0x180018c30
mov r10, rdx
sub r10, rdi
je 0x180019233
cmp byte [rdi], 0x30
jne 0x180018c64
cmp r10, 1
ja 0x180019233
xor r9b, r9b
cmp byte [rdx], 0x2e
jne 0x180018d2b
mov rcx, qword [rdx + 1]
inc rdx
movabs rax, 0x606060606060606
movabs r10, 0xf0f0f0f0f0f0f0f
add rax, rcx
mov r9b, 1
shr rax, 4
mov rbx, rdx
xor rax, rcx
and rax, r10
xor rax, rcx
cmp rax, qword [rsp + 0x50]
jne 0x180018cfb
and rcx, r10
imul rax, rcx, 0xa01
imul r8, r8, 0x5f5e100
shr rax, 8
movabs rcx, 0xff00ff00ff00ff
and rax, rcx
imul rcx, rax, 0x640001
movabs rax, 0xffff0000ffff
shr rcx, 0x10
and rcx, rax
movabs rax, 0x271000000001
imul rcx, rax
shr rcx, 0x20
add r8, rcx
add rdx, 8
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
ja 0x180018d12
movzx eax, al
lea rcx, [r8 + r8*4]
inc rdx
lea r8, [rax + rcx*2]
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
jbe 0x180018d04
sub rbx, rdx
je 0x180019231
mov eax, edx
sub eax, edi
movsxd r10, eax
movzx eax, byte [rdx]
sub al, 0x45
test al, 0xdf
je 0x180018e1b
test r9b, r9b
jne 0x180018e93
xor ebx, ebx
cmp sil, 0x2d
mov eax, ebx
setne al
add rax, 0x13
cmp r10, rax
jbe 0x180018d5d
lea eax, [rbx + 0xa]
jmp 0x180019236
jne 0x180018dcb
cmp sil, 0x2d
jne 0x180018dad
movabs rax, 0x8000000000000000
cmp r8, rax
jbe 0x180018d7e
mov eax, 0xa
jmp 0x180019236
neg r8
movabs rax, 0x6c00000000000000
mov qword [r15], rax
mov qword [r15 + 8], r8
add r15, 0x10
movzx eax, byte [rdx]
movzx ecx, byte [rax + rbp + 0x39740]
neg cl
sbb eax, eax
and eax, 9
jmp 0x180019236
cmp sil, 0x31
jne 0x180019233
movabs rax, 0x7fffffffffffffff
cmp r8, rax
ja 0x180018dda
jmp 0x180019233
movabs rax, 0x7fffffffffffffff
cmp r8, rax
jbe 0x180018de6
movabs rax, 0x7500000000000000
jmp 0x180018df9
cmp sil, 0x2d
jne 0x180018def
neg r8
movabs rax, 0x6c00000000000000
mov qword [r11], rax
add r15, 0x10
mov qword [r11 + 8], r8
movzx eax, byte [rdx]
cmp byte [rax + rbp + 0x39740], bl
jne 0x180019233
mov eax, ebx
jmp 0x180019236
movzx r11d, byte [rdx + 1]
inc rdx
lea eax, [r11 - 0x2b]
test al, 0xfd
jne 0x180018e2e
inc rdx
mov r9, rdx
xor ecx, ecx
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
ja 0x180018e4c
movzx eax, al
lea rcx, [rcx + rcx*4]
inc rdx
lea rcx, [rax + rcx*2]
jmp 0x180018e33
cmp rdx, r9
je 0x180019231
lea rax, [r9 + 0x12]
cmp rdx, rax
jbe 0x180018e82
cmp byte [r9], 0x30
jne 0x180018e6d
inc r9
cmp byte [r9], 0x30
je 0x180018e64
lea rax, [r9 + 0x12]
cmp rdx, rax
movabs rax, 0xde0b6b3a763ffff
cmova rcx, rax
mov rax, rcx
neg rax
cmp r11b, 0x2d
cmovne rax, rcx
add rbx, rax
movzx eax, byte [rdx]
movzx ebp, byte [rax + rbp + 0x39740]
cmp r10, 0x13
jbe 0x180018f19
mov rcx, rdi
movzx eax, byte [rcx]
sub al, 0x2e
test al, 0xfd
jne 0x180018eb5
inc rcx
jmp 0x180018ea7
sub r10, rcx
add r10, rdi
cmp r10, 0x13
jbe 0x180018f19
mov rcx, r14
call fcn.1800151a0
comisd xmm0, xmm9
ja 0x180018edb
comisd xmm8, xmm0
ja 0x180018edb
mov dl, 1
jmp 0x180018edd
xor dl, dl
movabs rax, 0x6400000000000000
movsd qword [rsp + 0x30], xmm0
mov qword [r15], rax
xor ebx, ebx
mov rax, qword [rsp + 0x30]
mov qword [r15 + 8], rax
add r15, 0x10
test dl, dl
mov eax, ebx
cmove eax, r12d
jne 0x180019220
lea rbp, [0x180000000]
jmp 0x180019236
cmp rbx, 0xfffffffffffffeaa
jl 0x1800191f0
cmp rbx, 0x134
jg 0x1800191dd
lea rax, [rbx + 0x16]
cmp rax, 0x2c
ja 0x180018fa8
movabs rax, 0x1fffffffffffff
cmp r8, rax
ja 0x180018fa8
xorps xmm0, xmm0
test r8, r8
js 0x180018f5b
cvtsi2sd xmm0, r8
jmp 0x180018f71
mov rax, r8
and r8d, 1
shr rax, 1
or rax, r8
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
lea rcx, [rbx*8]
lea rax, [0x18003a920]
test rbx, rbx
jns 0x180018f8e
sub rax, rcx
divsd xmm0, qword [rax]
jmp 0x180018f93
mulsd xmm0, qword [rcx + rax]
xor ebx, ebx
cmp sil, 0x2d
jne 0x1800191ac
xorps xmm0, xmm10
jmp 0x1800191ac
test r8, r8
jne 0x180018fc5
xor ebx, ebx
cmp sil, 0x2d
jne 0x180018fbd
movaps xmm0, xmm6
jmp 0x1800191ac
movaps xmm0, xmm7
jmp 0x1800191ac
imul r9, rbx, 0x3526a
mov dword [rsp + 0x30], 0
sar r9, 0x10
add r9, 0x43f
bsr rax, r8
je 0x180018ff0
mov r10d, 0x3f
sub r10d, eax
jmp 0x180018ff6
mov r10d, 0x40
mov ecx, r10d
lea r12, [0x180000000]
shl r8, cl
lea ecx, [rbx*2 + 0x2ac]
mov rax, qword [r12 + rcx*8 + 0x3a9e0]
mul r8
mov qword [rsp + 0x78], rdx
mov r11, rax
and edx, 0x1ff
mov qword [rsp + 0x70], rax
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x30], xmm0
cmp rdx, 0x1ff
jne 0x18001905b
inc ecx
mov rax, qword [r12 + rcx*8 + 0x3a9e0]
mul r8
add r11, rdx
cmp rdx, r11
mov rdx, qword [rsp + 0x38]
jbe 0x180019065
inc rdx
jmp 0x180019065
mov rdx, qword [rsp + 0x38]
mov r11, qword [rsp + 0x30]
mov rax, rdx
mov r8, rdx
shr rax, 0x3f
lea rcx, [rax + 9]
xor eax, 1
add eax, r10d
shr r8, cl
cdqe
sub r9, rax
test r9, r9
jg 0x1800190f3
mov ecx, 1
sub rcx, r9
cmp rcx, 0x40
jge 0x180018fad
shr r8, cl
xor ebx, ebx
mov rdx, r8
movabs rax, 0x10000000000000
and edx, 1
mov ecx, ebx
add rdx, r8
movabs r8, 0x8000000000000000
shr rdx, 1
cmp rdx, rax
cmovae rcx, rax
cmp sil, 0x2d
mov eax, ebx
cmove rax, r8
or rcx, rax
movabs rax, 0xffefffffffffffff
and rdx, rax
or rcx, rdx
mov qword [rsp + 0x30], rcx
movsd xmm0, qword [rsp + 0x30]
jmp 0x1800191ac
cmp r11, 1
ja 0x18001911c
lea rax, [rbx + 4]
cmp rax, 0x1b
ja 0x18001911c
movzx eax, r8b
and al, 3
cmp al, 1
jne 0x18001911c
mov rax, r8
shl rax, cl
cmp rax, rdx
jne 0x18001911c
and r8, 0xfffffffffffffffe
mov rcx, r8
movabs rax, 0x20000000000000
and ecx, 1
add rcx, r8
shr rcx, 1
cmp rcx, rax
jb 0x180019144
movabs rcx, 0x10000000000000
inc r9
cmp r9, 0x7fe
jle 0x180019176
mov rcx, r14
call fcn.1800151a0
comisd xmm0, xmm9
ja 0x180019163
comisd xmm8, xmm0
jbe 0x1800191aa
mov eax, 9
lea rbp, [0x180000000]
xor ebx, ebx
jmp 0x180019236
xor ebx, ebx
mov edx, 0x800
cmp sil, 0x2d
mov eax, ebx
cmove eax, edx
movabs rdx, 0xffefffffffffffff
or rax, r9
and rcx, rdx
shl rax, 0x34
or rax, rcx
mov qword [rsp + 0x30], rax
movsd xmm0, qword [rsp + 0x30]
jmp 0x1800191ac
xor ebx, ebx
movabs rax, 0x6400000000000000
movsd qword [rsp + 0x30], xmm0
mov qword [r15], rax
mov rax, qword [rsp + 0x30]
mov qword [r15 + 8], rax
add r15, 0x10
neg bpl
lea rbp, [0x180000000]
sbb eax, eax
and eax, 9
jmp 0x180019236
test r8, r8
je 0x1800191f0
mov eax, r12d
lea rbp, [0x180000000]
xor ebx, ebx
jmp 0x180019236
cmp sil, 0x2d
jne 0x1800191fb
movaps xmm0, xmm6
jmp 0x1800191fe
movaps xmm0, xmm7
movabs rax, 0x6400000000000000
movsd qword [rsp + 0x30], xmm0
mov qword [r15], rax
mov rax, qword [rsp + 0x30]
mov qword [r15 + 8], rax
add r15, 0x10
xor ebx, ebx
neg bpl
lea rbp, [0x180000000]
sbb eax, eax
and eax, 9
jmp 0x180019236
xor ebx, ebx
mov eax, r12d
mov r10, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
test eax, eax
jne 0x18001a385
mov rdi, qword [rsp + 0x60]
movabs r14, 0x5b00000000000000
movabs r8, 0x5d00000000000000
jmp 0x18001930b
mov eax, dword [r13]
cmp byte [rax + rdx], 0x7d
jne 0x180019645
mov rax, qword [rdi + 0x50]
mov rdx, r15
movabs r14, 0x5b00000000000000
movabs r8, 0x5d00000000000000
sub rdx, qword [rax]
movabs rax, 0x7b00000000000000
sar rdx, 3
lea ecx, [rdx + 2]
or rcx, rax
mov eax, edx
movabs rdx, 0x7d00000000000000
or rax, rdx
jmp 0x1800192f7
mov eax, dword [r13]
mov r14d, dword [rsp + 0x20]
cmp byte [rax + rdx], 0x5d
jne 0x1800188bc
mov rax, qword [rdi + 0x50]
mov rdx, r15
movabs r14, 0x5b00000000000000
movabs r8, 0x5d00000000000000
sub rdx, qword [rax]
sar rdx, 3
mov eax, edx
lea ecx, [rdx + 2]
or rcx, r14
or rax, r8
mov rdx, qword [rsp + 0x28]
add r13, 4
mov qword [r15], rcx
mov qword [r15 + 8], rax
add r15, 0x10
mov esi, dword [rsp + 0x20]
mov eax, dword [r13]
add r13, 4
movzx ecx, byte [rax + rdx]
cmp cl, 0x2c
je 0x18001a325
cmp cl, 0x5d
jne case.0x180017ec5.35
mov rax, qword [rdi + 0x30]
lea r12, [rdi + 0x50]
mov ecx, esi
movabs r11, 0x7b00000000000000
mov r9d, dword [rax + rcx*8]
mov eax, r9d
or rax, r8
mov qword [r15], rax
add r15, 8
mov rax, qword [rdi + 0x30]
mov ecx, dword [rax + rcx*8 + 4]
mov rax, qword [rdi + 0x50]
mov r8, qword [rax]
mov eax, 0xffffff
cmp ecx, eax
cmova ecx, eax
mov rax, r15
sub rax, r8
mov edx, ecx
sar rax, 3
shl rdx, 0x20
mov eax, eax
or rdx, rax
or rdx, r14
mov qword [r8 + r9*8], rdx
sub esi, 1
mov dword [rsp + 0x20], esi
je 0x180017e51
mov rax, qword [rdi + 0x38]
mov rdx, qword [rsp + 0x28]
cmp byte [rsi + rax], 0
jne 0x18001a316
movabs r8, 0x7d00000000000000
mov eax, dword [r13]
add r13, 4
movzx ecx, byte [rax + rdx]
cmp cl, 0x2c
jne 0x18001a2b8
mov rax, qword [rdi + 0x30]
mov ecx, esi
inc dword [rax + rcx*8 + 4]
mov r9d, dword [r13]
add r13, 4
add r9, rdx
cmp byte [r9], 0x22
jne case.0x180017ec5.35
mov rax, qword [r12]
lea r8, [r10 + 4]
mov rcx, r10
sub rcx, qword [rax + 8]
movabs rax, 0x2200000000000000
or rcx, rax
mov qword [r15], rcx
add r15, 8
movzx eax, byte [r9 + 1]
inc r9
mov byte [r8], al
movzx eax, byte [r9]
cmp al, 0x22
je 0x1800195e1
nop
cmp al, 0x5c
jne 0x1800195be
movzx eax, byte [r9 + 1]
cmp al, 0x75
jne 0x1800195a5
movzx eax, byte [r9 + 2]
movzx ecx, byte [r9 + 4]
mov edx, dword [rbp + rcx*4 + 0x39c88]
or edx, dword [rbp + rax*4 + 0x3a318]
movzx eax, byte [r9 + 3]
or edx, dword [rbp + rax*4 + 0x39fd0]
movzx eax, byte [r9 + 5]
add r9, 6
or edx, dword [rbp + rax*4 + 0x39940]
lea r11d, [rdx - 0xd800]
cmp r11d, 0x3ff
ja 0x1800194f0
movzx ecx, byte [r9]
movzx eax, byte [r9 + 1]
shl ecx, 8
or ecx, eax
cmp ecx, 0x5c75
jne 0x18001a372
movzx eax, byte [r9 + 2]
movzx ecx, byte [r9 + 4]
mov r10d, dword [rbp + rcx*4 + 0x39c88]
or r10d, dword [rbp + rax*4 + 0x3a318]
movzx eax, byte [r9 + 3]
or r10d, dword [rbp + rax*4 + 0x39fd0]
movzx eax, byte [r9 + 5]
or r10d, dword [rbp + rax*4 + 0x39940]
sub r10d, 0xdc00
cmp r10d, 0x400
jae 0x18001a372
mov edx, r11d
shl edx, 0xa
or edx, r10d
add edx, 0x10000
add r9, 6
jmp 0x180019501
lea eax, [rdx - 0xdc00]
cmp eax, 0x3ff
jbe 0x18001a372
cmp edx, 0x7f
ja 0x180019511
mov byte [r8], dl
inc r8
jmp 0x1800195c4
cmp edx, 0x7ff
ja 0x180019536
mov eax, edx
and dl, 0x3f
shr eax, 6
add dl, 0x80
sub al, 0x40
mov byte [r8 + 1], dl
mov byte [r8], al
add r8, 2
jmp 0x1800195c4
cmp edx, 0xffff
ja 0x180019565
mov eax, edx
shr eax, 0xc
sub al, 0x20
mov byte [r8], al
mov eax, edx
shr eax, 6
and dl, 0x3f
and al, 0x3f
add dl, 0x80
add al, 0x80
mov byte [r8 + 2], dl
mov byte [r8 + 1], al
add r8, 3
jmp 0x1800195c4
cmp edx, 0x10ffff
ja 0x18001a372
mov eax, edx
shr eax, 0x12
sub al, 0x10
mov byte [r8], al
mov eax, edx
shr eax, 0xc
and al, 0x3f
add al, 0x80
mov byte [r8 + 1], al
mov eax, edx
shr eax, 6
and dl, 0x3f
and al, 0x3f
add dl, 0x80
add al, 0x80
mov byte [r8 + 3], dl
mov byte [r8 + 2], al
add r8, 4
jmp 0x1800195c4
movzx ecx, byte [rax + rbp + 0x3dfa0]
test cl, cl
je 0x18001a372
mov byte [r8], cl
add r9, 2
jmp 0x1800195c1
inc r9
inc r8
movzx eax, byte [r9]
mov byte [r8], al
movzx eax, byte [r9]
cmp al, 0x22
jne 0x180019420
mov r10, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
test r8, r8
je 0x18001a372
mov eax, r8d
sub eax, r10d
sub eax, 4
mov dword [r10], eax
lea r10, [r8 + 1]
mov qword [rsp + 0x40], r10
mov byte [r8], 0
mov eax, dword [r13]
mov r11, r15
cmp byte [rax + rdx], 0x3a
jne case.0x180017ec5.35
mov r14d, dword [r13 + 4]
add r13, 8
add r14, rdx
movzx esi, byte [r14]
cmp sil, 0x5b
je 0x18001a252
cmp sil, 0x7b
jne 0x180019907
mov eax, dword [r13]
cmp byte [rax + rdx], 0x7d
je 0x1800198af
mov esi, dword [rsp + 0x20]
inc esi
mov eax, esi
mov dword [rsp + 0x20], esi
cmp rax, qword [rdi + 0x28]
jae 0x18001a380
mov rax, qword [rdi + 0x38]
lea r12, [rdi + 0x50]
mov rcx, r15
mov byte [rsi + rax], 0
mov rax, qword [r12]
sub rcx, qword [rax]
mov rax, qword [rdi + 0x30]
sar rcx, 3
mov dword [rax + rsi*8], ecx
mov rax, qword [rdi + 0x30]
mov dword [rax + rsi*8 + 4], ebx
mov r9d, dword [r13]
add r13, 4
add r9, qword [rsp + 0x28]
cmp byte [r9], 0x22
jne case.0x180017ec5.35
mov rax, qword [rdi + 0x30]
lea r8, [r10 + 4]
mov rcx, r10
inc dword [rax + rsi*8 + 4]
mov rax, qword [r12]
sub rcx, qword [rax + 8]
movabs rax, 0x2200000000000000
or rcx, rax
mov qword [r15 + 8], rcx
add r15, 0x10
movzx eax, byte [r9 + 1]
inc r9
mov byte [r8], al
movzx eax, byte [r9]
cmp al, 0x22
je 0x18001989c
nop
cmp al, 0x5c
jne 0x18001987e
movzx eax, byte [r9 + 1]
cmp al, 0x75
jne 0x180019865
movzx eax, byte [r9 + 2]
movzx ecx, byte [r9 + 4]
mov edx, dword [rbp + rcx*4 + 0x39c88]
or edx, dword [rbp + rax*4 + 0x3a318]
movzx eax, byte [r9 + 3]
or edx, dword [rbp + rax*4 + 0x39fd0]
movzx eax, byte [r9 + 5]
add r9, 6
or edx, dword [rbp + rax*4 + 0x39940]
lea r11d, [rdx - 0xd800]
cmp r11d, 0x3ff
ja 0x1800197b0
movzx ecx, byte [r9]
movzx eax, byte [r9 + 1]
shl ecx, 8
or ecx, eax
cmp ecx, 0x5c75
jne 0x18001a372
movzx eax, byte [r9 + 2]
movzx ecx, byte [r9 + 4]
mov r10d, dword [rbp + rcx*4 + 0x39c88]
or r10d, dword [rbp + rax*4 + 0x3a318]
movzx eax, byte [r9 + 3]
or r10d, dword [rbp + rax*4 + 0x39fd0]
movzx eax, byte [r9 + 5]
or r10d, dword [rbp + rax*4 + 0x39940]
sub r10d, 0xdc00
cmp r10d, 0x400
jae 0x18001a372
mov edx, r11d
shl edx, 0xa
or edx, r10d
add edx, 0x10000
add r9, 6
jmp 0x1800197c1
lea eax, [rdx - 0xdc00]
cmp eax, 0x3ff
jbe 0x18001a372
cmp edx, 0x7f
ja 0x1800197d1
mov byte [r8], dl
inc r8
jmp 0x180019884
cmp edx, 0x7ff
ja 0x1800197f6
mov eax, edx
and dl, 0x3f
shr eax, 6
add dl, 0x80
sub al, 0x40
mov byte [r8 + 1], dl
mov byte [r8], al
add r8, 2
jmp 0x180019884
cmp edx, 0xffff
ja 0x180019825
mov eax, edx
shr eax, 0xc
sub al, 0x20
mov byte [r8], al
mov eax, edx
shr eax, 6
and dl, 0x3f
and al, 0x3f
add dl, 0x80
add al, 0x80
mov byte [r8 + 2], dl
mov byte [r8 + 1], al
add r8, 3
jmp 0x180019884
cmp edx, 0x10ffff
ja 0x18001a372
mov eax, edx
shr eax, 0x12
sub al, 0x10
mov byte [r8], al
mov eax, edx
shr eax, 0xc
and al, 0x3f
add al, 0x80
mov byte [r8 + 1], al
mov eax, edx
shr eax, 6
and dl, 0x3f
and al, 0x3f
add dl, 0x80
add al, 0x80
mov byte [r8 + 3], dl
mov byte [r8 + 2], al
add r8, 4
jmp 0x180019884
movzx ecx, byte [rax + rbp + 0x3dfa0]
test cl, cl
je 0x18001a372
mov byte [r8], cl
add r9, 2
jmp 0x180019881
inc r9
inc r8
movzx eax, byte [r9]
mov byte [r8], al
movzx eax, byte [r9]
cmp al, 0x22
jne 0x1800196e0
mov r10, qword [rsp + 0x40]
test r8, r8
je 0x18001a372
mov rdx, qword [rsp + 0x28]
jmp 0x1800195ea
mov rax, qword [rdi + 0x50]
lea r12, [rdi + 0x50]
mov esi, dword [rsp + 0x20]
mov rdx, r15
movabs r11, 0x7b00000000000000
movabs r8, 0x7d00000000000000
add r13, 4
movabs r14, 0x5b00000000000000
sub rdx, qword [rax]
sar rdx, 3
mov eax, edx
or rax, r8
lea ecx, [rdx + 2]
mov rdx, qword [rsp + 0x28]
or rcx, r11
mov qword [r15], rcx
mov qword [r15 + 8], rax
add r15, 0x10
jmp 0x1800193b1
cmp sil, 0x22
jne 0x180019b3e
mov rdi, qword [rsp + 0x48]
lea r9, [r14 + 1]
mov rcx, r10
lea r8, [r10 + 4]
mov rax, qword [rdi]
sub rcx, qword [rax + 8]
movabs rax, 0x2200000000000000
or rcx, rax
mov qword [r15], rcx
add r15, 8
movzx eax, byte [r9]
mov byte [r8], al
movzx eax, byte [r9]
cmp al, sil
je 0x180019b04
cmp al, 0x5c
jne 0x180019ae6
movzx eax, byte [r9 + 1]
cmp al, 0x75
jne 0x180019ad1
movzx eax, byte [r9 + 2]
movzx ecx, byte [r9 + 4]
mov edx, dword [rbp + rcx*4 + 0x39c88]
or edx, dword [rbp + rax*4 + 0x3a318]
movzx eax, byte [r9 + 3]
or edx, dword [rbp + rax*4 + 0x39fd0]
movzx eax, byte [r9 + 5]
add r9, 6
or edx, dword [rbp + rax*4 + 0x39940]
lea r11d, [rdx - 0xd800]
cmp r11d, 0x3ff
ja 0x180019a20
movzx ecx, byte [r9]
movzx eax, byte [r9 + 1]
shl ecx, 8
or ecx, eax
cmp ecx, 0x5c75
jne 0x180019b09
movzx eax, byte [r9 + 2]
movzx ecx, byte [r9 + 4]
mov r10d, dword [rbp + rcx*4 + 0x39c88]
or r10d, dword [rbp + rax*4 + 0x3a318]
movzx eax, byte [r9 + 3]
or r10d, dword [rbp + rax*4 + 0x39fd0]
movzx eax, byte [r9 + 5]
or r10d, dword [rbp + rax*4 + 0x39940]
sub r10d, 0xdc00
cmp r10d, 0x400
jae 0x180019b09
mov edx, r11d
shl edx, 0xa
or edx, r10d
add edx, 0x10000
add r9, 6
jmp 0x180019a31
lea eax, [rdx - 0xdc00]
cmp eax, 0x3ff
jbe 0x180019b09
cmp edx, 0x7f
ja 0x180019a41
mov byte [r8], dl
inc r8
jmp 0x180019aec
cmp edx, 0x7ff
ja 0x180019a66
mov eax, edx
and dl, 0x3f
shr eax, 6
add dl, 0x80
sub al, 0x40
mov byte [r8 + 1], dl
mov byte [r8], al
add r8, 2
jmp 0x180019aec
cmp edx, 0xffff
ja 0x180019a95
mov eax, edx
shr eax, 0xc
sub al, 0x20
mov byte [r8], al
mov eax, edx
shr eax, 6
and dl, 0x3f
and al, 0x3f
add dl, 0x80
add al, 0x80
mov byte [r8 + 2], dl
mov byte [r8 + 1], al
add r8, 3
jmp 0x180019aec
cmp edx, 0x10ffff
ja 0x180019b09
mov eax, edx
shr eax, 0x12
sub al, 0x10
mov byte [r8], al
mov eax, edx
shr eax, 0xc
and al, 0x3f
add al, 0x80
mov byte [r8 + 1], al
mov eax, edx
shr eax, 6
and dl, 0x3f
and al, 0x3f
add dl, 0x80
add al, 0x80
mov byte [r8 + 3], dl
mov byte [r8 + 2], al
add r8, 4
jmp 0x180019aec
movzx ecx, byte [rax + rbp + 0x3dfa0]
test cl, cl
je 0x180019b09
mov byte [r8], cl
add r9, 2
jmp 0x180019ae9
inc r9
inc r8
movzx eax, byte [r9]
mov byte [r8], al
movzx eax, byte [r9]
cmp al, 0x22
jne 0x180019950
mov r10, qword [rsp + 0x40]
test r8, r8
jne 0x180019b1b
mov r10, qword [rsp + 0x40]
mov eax, 5
mov r12, rdi
jmp 0x18001a173
mov eax, r8d
mov r12, rdi
sub eax, r10d
sub eax, 4
mov dword [r10], eax
lea r10, [r8 + 1]
mov qword [rsp + 0x40], r10
mov eax, ebx
mov byte [r8], 0
jmp 0x18001a173
cmp sil, 0x3a
jb 0x180019c14
cmp sil, 0x66
je 0x180019bd8
cmp sil, 0x6e
je 0x180019b9d
cmp sil, 0x74
jne case.0x180017ec5.35
movzx eax, byte [r14 + 4]
movzx ecx, byte [rax + rbp + 0x39740]
mov eax, dword [r14]
xor eax, 0x65757274
or ecx, eax
je 0x180019b85
mov eax, 6
jmp 0x18001a178
movabs rax, 0x7400000000000000
mov qword [r15], rax
add r15, 8
mov eax, ebx
jmp 0x18001a178
movzx eax, byte [r14 + 4]
movzx ecx, byte [rax + rbp + 0x39740]
mov eax, dword [r14]
xor eax, 0x6c6c756e
or ecx, eax
je 0x180019bc0
mov eax, 8
jmp 0x18001a178
movabs rax, 0x6e00000000000000
mov qword [r15], rax
add r15, 8
mov eax, ebx
jmp 0x18001a178
movzx eax, byte [r14 + 5]
movzx ecx, byte [rax + rbp + 0x39740]
mov eax, dword [r14 + 1]
xor eax, 0x65736c61
or ecx, eax
je 0x180019bfc
mov eax, 7
jmp 0x18001a178
movabs rax, 0x6600000000000000
mov qword [r15], rax
add r15, 8
mov eax, ebx
jmp 0x18001a178
cmp sil, 0x2d
mov rdx, rbx
mov r8, rbx
sete dl
add rdx, r14
mov rdi, rdx
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
ja 0x180019c40
movzx eax, al
lea rcx, [r8 + r8*4]
inc rdx
lea r8, [rax + rcx*2]
jmp 0x180019c27
mov r10, rdx
sub r10, rdi
je 0x18001a169
cmp byte [rdi], 0x30
jne 0x180019c5b
cmp r10, 1
ja 0x18001a169
xor r9b, r9b
cmp byte [rdx], 0x2e
jne 0x180019d29
mov rcx, qword [rdx + 1]
inc rdx
movabs rax, 0x606060606060606
movabs r10, 0xf0f0f0f0f0f0f0f
add rax, rcx
mov r9b, 1
shr rax, 4
mov rbx, rdx
xor rax, rcx
and rax, r10
xor rax, rcx
cmp rax, qword [rsp + 0x50]
jne 0x180019cf2
and rcx, r10
imul rax, rcx, 0xa01
imul r8, r8, 0x5f5e100
shr rax, 8
movabs rcx, 0xff00ff00ff00ff
and rax, rcx
imul rcx, rax, 0x640001
movabs rax, 0xffff0000ffff
shr rcx, 0x10
and rcx, rax
movabs rax, 0x271000000001
imul rcx, rax
shr rcx, 0x20
add r8, rcx
add rdx, 8
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
ja 0x180019d10
movzx eax, al
lea rcx, [r8 + r8*4]
inc rdx
lea r8, [rax + rcx*2]
nop dword [rax]
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
jbe 0x180019cfb
sub rbx, rdx
je 0x18001a167
mov eax, edx
sub eax, edi
movsxd r10, eax
movzx eax, byte [rdx]
sub al, 0x45
test al, 0xdf
je 0x180019e19
test r9b, r9b
jne 0x180019e91
xor ebx, ebx
cmp sil, 0x2d
mov eax, ebx
setne al
add rax, 0x13
cmp r10, rax
jbe 0x180019d5b
lea eax, [rbx + 0xa]
jmp 0x18001a16e
jne 0x180019dc9
cmp sil, 0x2d
jne 0x180019dab
movabs rax, 0x8000000000000000
cmp r8, rax
jbe 0x180019d7c
mov eax, 0xa
jmp 0x18001a16e
neg r8
movabs rax, 0x6c00000000000000
mov qword [r15], rax
mov qword [r15 + 8], r8
add r15, 0x10
movzx eax, byte [rdx]
movzx ecx, byte [rax + rbp + 0x39740]
neg cl
sbb eax, eax
and eax, 9
jmp 0x18001a16e
cmp sil, 0x31
jne 0x18001a169
movabs rax, 0x7fffffffffffffff
cmp r8, rax
ja 0x180019dd8
jmp 0x18001a169
movabs rax, 0x7fffffffffffffff
cmp r8, rax
jbe 0x180019de4
movabs rax, 0x7500000000000000
jmp 0x180019df7
cmp sil, 0x2d
jne 0x180019ded
neg r8
movabs rax, 0x6c00000000000000
mov qword [r11], rax
add r15, 0x10
mov qword [r11 + 8], r8
movzx eax, byte [rdx]
cmp byte [rax + rbp + 0x39740], bl
jne 0x18001a169
mov eax, ebx
jmp 0x18001a16e
movzx r11d, byte [rdx + 1]
inc rdx
lea eax, [r11 - 0x2b]
test al, 0xfd
jne 0x180019e2c
inc rdx
mov r9, rdx
xor ecx, ecx
movzx eax, byte [rdx]
sub al, 0x30
cmp al, 9
ja 0x180019e4a
movzx eax, al
lea rcx, [rcx + rcx*4]
inc rdx
lea rcx, [rax + rcx*2]
jmp 0x180019e31
cmp rdx, r9
je 0x18001a167
lea rax, [r9 + 0x12]
cmp rdx, rax
jbe 0x180019e80
cmp byte [r9], 0x30
jne 0x180019e6b
inc r9
cmp byte [r9], 0x30
je 0x180019e62
lea rax, [r9 + 0x12]
cmp rdx, rax
movabs rax, 0xde0b6b3a763ffff
cmova rcx, rax
mov rax, rcx
neg rax
cmp r11b, 0x2d
cmovne rax, rcx
add rbx, rax
movzx eax, byte [rdx]
movzx ebp, byte [rax + rbp + 0x39740]
cmp r10, 0x13
jbe 0x180019f14
mov rcx, rdi
movzx eax, byte [rcx]
sub al, 0x2e
test al, 0xfd
jne 0x180019eb3
inc rcx
jmp 0x180019ea5
sub r10, rcx
add r10, rdi
cmp r10, 0x13
jbe 0x180019f14
mov rcx, r14
call fcn.1800151a0
comisd xmm0, xmm9
ja 0x180019ed9
comisd xmm8, xmm0
ja 0x180019ed9
mov dl, 1
jmp 0x180019edb
xor dl, dl
movabs rax, 0x6400000000000000
movsd qword [rsp + 0x30], xmm0
mov qword [r15], rax
xor ebx, ebx
mov rax, qword [rsp + 0x30]
mov ecx, 9
mov qword [r15 + 8], rax
add r15, 0x10
test dl, dl
mov eax, ebx
cmove eax, ecx
jne 0x18001a245
jmp 0x18001a16e
cmp rbx, 0xfffffffffffffeaa
jl 0x18001a215
cmp rbx, 0x134
jg 0x18001a20c
lea rax, [rbx + 0x16]
cmp rax, 0x2c
ja 0x180019fa3
movabs rax, 0x1fffffffffffff
cmp r8, rax
ja 0x180019fa3
xorps xmm0, xmm0
test r8, r8
js 0x180019f56
cvtsi2sd xmm0, r8
jmp 0x180019f6c
mov rax, r8
and r8d, 1
shr rax, 1
or rax, r8
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
lea rcx, [rbx*8]
lea rax, [0x18003a920]
test rbx, rbx
jns 0x180019f89
sub rax, rcx
divsd xmm0, qword [rax]
jmp 0x180019f8e
mulsd xmm0, qword [rcx + rax]
xor ebx, ebx
cmp sil, 0x2d
jne 0x18001a1df
xorps xmm0, xmm10
jmp 0x18001a1df
test r8, r8
jne 0x180019fc0
xor ebx, ebx
cmp sil, 0x2d
jne 0x180019fb8
movaps xmm0, xmm6
jmp 0x18001a1df
movaps xmm0, xmm7
jmp 0x18001a1df
imul r9, rbx, 0x3526a
mov dword [rsp + 0x30], 0
sar r9, 0x10
add r9, 0x43f
bsr rax, r8
je 0x180019feb
mov r10d, 0x3f
sub r10d, eax
jmp 0x180019ff1
mov r10d, 0x40
mov ecx, r10d
lea rdi, [0x180000000]
shl r8, cl
lea ecx, [rbx*2 + 0x2ac]
mov rax, qword [rdi + rcx*8 + 0x3a9e0]
mul r8
mov qword [rsp + 0x88], rdx
mov r11, rax
and edx, 0x1ff
mov qword [rsp + 0x80], rax
movaps xmm0, xmmword [rsp + 0x80]
movdqa xmmword [rsp + 0x30], xmm0
cmp rdx, 0x1ff
jne 0x18001a05f
inc ecx
mov rax, qword [rdi + rcx*8 + 0x3a9e0]
mul r8
add r11, rdx
cmp rdx, r11
mov rdx, qword [rsp + 0x38]
jbe 0x18001a069
inc rdx
jmp 0x18001a069
mov rdx, qword [rsp + 0x38]
mov r11, qword [rsp + 0x30]
mov rax, rdx
mov r8, rdx
shr rax, 0x3f
lea rcx, [rax + 9]
xor eax, 1
add eax, r10d
shr r8, cl
cdqe
sub r9, rax
test r9, r9
jg 0x18001a0f7
mov ecx, 1
sub rcx, r9
cmp rcx, 0x40
jge 0x180019fa8
shr r8, cl
xor ebx, ebx
mov rdx, r8
movabs rax, 0x10000000000000
and edx, 1
mov ecx, ebx
add rdx, r8
movabs r8, 0x8000000000000000
shr rdx, 1
cmp rdx, rax
cmovae rcx, rax
cmp sil, 0x2d
mov eax, ebx
cmove rax, r8
or rcx, rax
movabs rax, 0xffefffffffffffff
and rdx, rax
or rcx, rdx
mov qword [rsp + 0x30], rcx
movsd xmm0, qword [rsp + 0x30]
jmp 0x18001a1df
cmp r11, 1
ja 0x18001a120
lea rax, [rbx + 4]
cmp rax, 0x1b
ja 0x18001a120
movzx eax, r8b
and al, 3
cmp al, 1
jne 0x18001a120
mov rax, r8
shl rax, cl
cmp rax, rdx
jne 0x18001a120
and r8, 0xfffffffffffffffe
mov rcx, r8
movabs rax, 0x20000000000000
and ecx, 1
add rcx, r8
shr rcx, 1
cmp rcx, rax
jb 0x18001a148
movabs rcx, 0x10000000000000
inc r9
cmp r9, 0x7fe
jle 0x18001a1a9
mov rcx, r14
call fcn.1800151a0
comisd xmm0, xmm9
ja 0x18001a167
comisd xmm8, xmm0
jbe 0x18001a1dd
xor ebx, ebx
mov eax, 9
mov r10, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
test eax, eax
jne 0x18001a385
mov rdi, qword [rsp + 0x60]
lea rbp, [0x180000000]
mov esi, dword [rsp + 0x20]
movabs r11, 0x7b00000000000000
movabs r14, 0x5b00000000000000
jmp 0x1800193a7
xor ebx, ebx
mov edx, 0x800
cmp sil, 0x2d
mov eax, ebx
cmove eax, edx
movabs rdx, 0xffefffffffffffff
or rax, r9
and rcx, rdx
shl rax, 0x34
or rax, rcx
mov qword [rsp + 0x30], rax
movsd xmm0, qword [rsp + 0x30]
jmp 0x18001a1df
xor ebx, ebx
movabs rax, 0x6400000000000000
movsd qword [rsp + 0x30], xmm0
mov qword [r15], rax
mov rax, qword [rsp + 0x30]
mov qword [r15 + 8], rax
add r15, 0x10
neg bpl
sbb eax, eax
and eax, 9
jmp 0x18001a16e
test r8, r8
jne 0x18001a167
cmp sil, 0x2d
jne 0x18001a220
movaps xmm0, xmm6
jmp 0x18001a223
movaps xmm0, xmm7
movabs rax, 0x6400000000000000
movsd qword [rsp + 0x30], xmm0
mov qword [r15], rax
mov rax, qword [rsp + 0x30]
mov qword [r15 + 8], rax
add r15, 0x10
xor ebx, ebx
neg bpl
sbb eax, eax
and eax, 9
jmp 0x18001a16e
mov eax, dword [r13]
cmp byte [rax + rdx], 0x5d
jne 0x18001a34e
mov rax, qword [rdi + 0x50]
lea r12, [rdi + 0x50]
mov esi, dword [rsp + 0x20]
mov rdx, r15
movabs r14, 0x5b00000000000000
add r13, 4
movabs r11, 0x7b00000000000000
sub rdx, qword [rax]
sar rdx, 3
mov eax, edx
lea ecx, [rdx + 2]
movabs rdx, 0x5d00000000000000
or rax, rdx
or rcx, r14
mov rdx, qword [rsp + 0x28]
mov qword [r15], rcx
mov qword [r15 + 8], rax
add r15, 0x10
jmp 0x1800193a7
cmp cl, 0x7d
jne case.0x180017ec5.35
mov rax, qword [rdi + 0x30]
lea r12, [rdi + 0x50]
mov ecx, esi
mov r9d, dword [rax + rcx*8]
mov eax, r9d
or rax, r8
mov qword [r15], rax
add r15, 8
mov rax, qword [rdi + 0x30]
mov edx, dword [rax + rcx*8 + 4]
mov rcx, r15
mov rax, qword [r12]
mov r8, qword [rax]
mov eax, 0xffffff
sub rcx, r8
sar rcx, 3
cmp edx, eax
mov ecx, ecx
cmova edx, eax
mov eax, edx
shl rax, 0x20
or rcx, rax
or rcx, r11
mov qword [r8 + r9*8], rcx
jmp 0x180019387
movabs r8, 0x5d00000000000000
jmp 0x18001930f
mov rax, qword [rdi + 0x30]
mov r12d, 9
mov ecx, esi
movabs r8, 0x2200000000000000
movabs r9, 0x7400000000000000
inc dword [rax + rcx*8 + 4]
jmp 0x18001890b
mov r14d, dword [rsp + 0x20]
mov r12d, 9
movabs r8, 0x2200000000000000
movabs r9, 0x7400000000000000
jmp 0x1800188bc
mov eax, 5
jmp 0x18001a385
mov eax, 3
jmp 0x18001a385
mov eax, 4
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0xd0]
mov r15, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xe8]
mov r12, qword [rsp + 0x128]
mov rdi, qword [rsp + 0x120]
mov rbp, qword [rsp + 0x118]
movaps xmm10, xmmword [rsp + 0x90]
add rsp, 0xf0
pop r14
pop rsi
pop rbx
ret