Function at 0x14004b310
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2a8
movdqa xmmword [rsp + 0x290], xmm15
movdqa xmmword [rsp + 0x280], xmm14
movdqa xmmword [rsp + 0x270], xmm13
movdqa xmmword [rsp + 0x260], xmm12
movdqa xmmword [rsp + 0x250], xmm11
movdqa xmmword [rsp + 0x240], xmm10
movdqa xmmword [rsp + 0x230], xmm9
movaps xmmword [rsp + 0x220], xmm8
movdqa xmmword [rsp + 0x210], xmm7
movdqa xmmword [rsp + 0x200], xmm6
mov rbx, rcx
mov r14, qword [rsp + 0x310]
test r9, r9
je 0x14004b4ce
lea rax, [r8 + r9]
xor r15d, r15d
movdqa xmm0, xmmword [0x140218140]
mov rcx, r8
jmp 0x14004b3bf
xor r11d, r11d
mov r15, r11
cmp rcx, rax
je 0x14004c31c
movzx esi, byte [rcx]
test sil, sil
js 0x14004b3e0
inc rcx
mov r10d, esi
cmp r10d, 0x2e
jne 0x14004b470
jmp 0x14004b3b0
mov r10d, esi
and r10d, 0x1f
movzx edi, byte [rcx + 1]
and edi, 0x3f
cmp sil, 0xdf
jbe 0x14004b434
movzx r11d, byte [rcx + 2]
shl edi, 6
and r11d, 0x3f
or r11d, edi
cmp sil, 0xf0
jb 0x14004b44a
movzx esi, byte [rcx + 3]
add rcx, 4
and r10d, 7
shl r10d, 0x12
shl r11d, 6
and esi, 0x3f
or esi, r11d
or esi, r10d
mov r10d, esi
cmp r10d, 0x2e
jne 0x14004b470
jmp 0x14004b3b0
add rcx, 2
shl r10d, 6
or r10d, edi
cmp r10d, 0x2e
jne 0x14004b470
jmp 0x14004b3b0
add rcx, 3
shl r10d, 0xc
or r11d, r10d
mov r10d, r11d
cmp r10d, 0x2e
je 0x14004b3b0
nop word cs:[rax + rax]
cmp r10d, 0x110000
je 0x14004c31c
test r15, r15
jne 0x14004b488
cmp r10d, 0x2d
je 0x14004b4ce
mov r11d, 5
cmp r15, 4
ja 0x14004b4b3
movdqa xmmword [rsp + 0x40], xmm0
je case.0x14004b9f2.1
cmp r10d, dword [rsp + r15*4 + 0x40]
jne 0x14004b4b3
inc r15
mov r11, r15
cmp r15, 4
je 0x14004b4ce
lea esi, [r10 - 0x61]
cmp esi, 0x1a
jb 0x14004b3b3
add r10d, 0xffffffd0
cmp r10d, 9
jbe 0x14004b3b3
mov qword [rsp + 0x178], rbx
mov eax, dword [rdx + 0x30]
movzx ecx, byte [rdx + 0x34]
add r9, r8
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x50], 0
mov word [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 byte [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x80], r9
lea r8, [rsp + 0xf0]
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x90], 0
mov byte [rsp + 0xa4], cl
shl rcx, 0x20
or rcx, rax
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x100], rdx
mov qword [rdx + 0x10], 0
mov dword [rsp + 0xf8], 0
mov qword [rsp + 0xf0], 0
mov rcx, qword [r14 + 0x10]
mov qword [rsp + 0x1b0], rcx
pxor xmm6, xmm6
movdqu xmmword [rsp + 0x183], xmm6
mov byte [rsp + 0x193], 0
movdqu xmmword [rsp + 0x1d8], xmm6
lea r15, [rsp + 0x50]
mov dword [rsp + 0xa0], eax
movups xmm0, xmmword [rsp + 0x180]
movups xmmword [rsp + 0xa5], xmm0
mov eax, dword [rsp + 0x190]
mov dword [rsp + 0xb5], eax
mov dword [rsp + 0xc0], 0
mov word [rsp + 0xc4], 0
movzx eax, word [rsp + 0x1e6]
mov word [rsp + 0xd6], ax
movdqu xmm0, xmmword [rsp + 0x1d6]
movdqu xmmword [rsp + 0xc6], xmm0
mov dword [rsp + 0xe0], 0x110000
mov byte [rsp + 0xe4], 0
lea rbp, [0x1419f06f4]
lea r14, [0x1419f41c4]
xor eax, eax
jmp 0x14004b664
mov rcx, qword [rsi + 8]
mov byte [rcx + rax], r13b
inc rax
mov qword [rsi + 0x10], rax
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x14004b745
cmp rax, 1
jne 0x14004c11e
mov rax, qword [rsp + 0x48]
cmp dword [rsp + 0xc0], 0
je 0x14004b6a2
cmp rax, qword [rsp + 0xd8]
jb 0x14004c142
mov qword [rsp + 0xd8], 0
jmp 0x14004b6d2
movzx ecx, word [rsp + 0xc4]
cmp rcx, 4
ja case.0x14004b9f2.1
cmp rax, rcx
jb 0x14004c183
cmp word [rsp + 0xc4], 0
je 0x14004b6d2
mov word [rsp + 0xc4], 0
mov qword [rsp + 0x40], 0
jmp 0x14004b745
movzx esi, di
imul ebx, esi, 0x6f75
shr ebx, 0x18
lea edx, [rbx + 0x1100]
mov rcx, r15
call fcn.14004f3e0
imul eax, ebx, 0x24c
sub edi, eax
movzx eax, di
imul edx, eax, 0x925
shr edx, 0x10
add edx, 0x1161
mov rcx, r15
call fcn.14004f3e0
mov eax, esi
shr eax, 2
imul eax, eax, 0x4925
shr eax, 0x11
lea ecx, [rax + rax*8]
lea ecx, [rcx + rcx*2]
add ecx, eax
sub si, cx
je 0x14004b745
add esi, 0x11a7
movzx edx, si
mov rcx, r15
call fcn.14004f3e0
mov rdx, qword [rsp + 0xb0]
test rdx, rdx
jne 0x14004ba90
movzx ecx, byte [rsp + 0xa0]
cmp cl, 2
je 0x14004bee2
mov rsi, qword [rsp + 0x90]
mov r10, qword [rsp + 0x78]
mov r8, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
movzx r9d, byte [rsp + 0xa1]
mov r11, qword [rsp + 0x98]
test rsi, rsi
je 0x14004b840
cmp rsi, r11
je 0x14004b834
lea rdx, [rsi + 1]
mov qword [rsp + 0x90], rdx
movzx edx, byte [rsi]
test dl, dl
jns 0x14004bd4c
mov edi, edx
and edi, 0x1f
lea r12, [rsi + 2]
mov qword [rsp + 0x90], r12
movzx r12d, byte [rsi + 1]
and r12d, 0x3f
cmp dl, 0xdf
jbe 0x14004c01a
lea r13, [rsi + 3]
mov qword [rsp + 0x90], r13
movzx r13d, byte [rsi + 2]
shl r12d, 6
and r13d, 0x3f
or r13d, r12d
cmp dl, 0xf0
jb 0x14004c027
lea rdx, [rsi + 4]
mov qword [rsp + 0x90], rdx
movzx edx, byte [rsi + 3]
and edi, 7
shl edi, 0x12
shl r13d, 6
and edx, 0x3f
or edx, r13d
or edx, edi
cmp edx, 0x110000
jne case.0x14004b9f2.0
mov qword [rsp + 0x90], 0
cmp r10, r8
je 0x14004beda
lea rdx, [r10 + 1]
mov qword [rsp + 0x78], rdx
movzx esi, byte [r10]
test sil, sil
js 0x14004b880
mov r10, rdx
mov edx, esi
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14004b920
jmp 0x14004bd4c
mov edx, esi
and edx, 0x1f
lea rdi, [r10 + 2]
mov qword [rsp + 0x78], rdi
movzx r12d, byte [r10 + 1]
and r12d, 0x3f
cmp sil, 0xdf
jbe 0x14004b8ef
lea r13, [r10 + 3]
mov qword [rsp + 0x78], r13
movzx edi, byte [r10 + 2]
shl r12d, 6
and edi, 0x3f
or edi, r12d
cmp sil, 0xf0
jb 0x14004b905
lea rsi, [r10 + 4]
mov qword [rsp + 0x78], rsi
movzx r12d, byte [r10 + 3]
and edx, 7
shl edx, 0x12
shl edi, 6
and r12d, 0x3f
or r12d, edi
or r12d, edx
mov r10, rsi
mov edx, r12d
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14004b920
jmp 0x14004bd4c
shl edx, 6
or edx, r12d
mov r10, rdi
lea esi, [rdx - 0x2d]
cmp esi, 2
jae 0x14004b920
jmp 0x14004bd4c
shl edx, 0xc
or edi, edx
mov r10, r13
mov edx, edi
lea esi, [rdx - 0x2d]
cmp esi, 2
jb 0x14004bd4c
nop dword [rax + rax]
cmp edx, 0x110000
je 0x14004beda
lea esi, [rdx - 0x61]
cmp esi, 0x1a
jb 0x14004bd4c
lea esi, [rdx - 0x30]
cmp esi, 0xa
jb 0x14004bd4c
mov esi, 0x75a
xor edi, edi
mov r13d, 0x75a
nop word cs:[rax + rax]
shr rsi, 1
add rsi, rdi
mov r12d, dword [rbp + rsi*8]
cmp r12d, edx
je 0x14004b99a
lea rbx, [rsi + 1]
cmp r12d, edx
cmova r13, rsi
cmovb rdi, rbx
mov rsi, r13
sub rsi, rdi
ja 0x14004b960
dec rdi
mov rsi, rdi
cmp rdi, 0x759
ja case.0x14004b9f2.1
movzx ebx, word [rbp + rsi*8 + 4]
mov edi, ebx
and edi, 0x7fff
test bx, bx
js 0x14004b9bb
movzx esi, word [rbp + rsi*8]
mov ebx, edx
sub bx, si
movzx edi, di
add edi, ebx
movzx esi, di
cmp esi, 0x1f73
jae case.0x14004b9f2.1
movzx edi, di
movzx r12d, byte [r14 + rdi*4]
mov esi, 0
cmp r12d, 1
je case.default.0x14004b9f2
mov r11d, r12d
lea rsi, [0x140218650]
movsxd r11, dword [rsi + r11*4]
add r11, rsi
jmp r11
mov ecx, dword [rsp + 0x50]
mov rax, qword [rsp + 0xa8]
test ecx, ecx
je 0x14004baac
mov r8, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
jmp 0x14004bac1
movzx r9d, word [rsp + 0x54]
lea r8, [rsp + 0x58]
cmp r9, 5
jae case.0x14004b9f2.1
cmp rax, r9
jae case.0x14004b9f2.1
mov esi, dword [r8 + rax*8 + 4]
inc rax
cmp rax, rdx
jne 0x14004bb90
test ecx, ecx
je 0x14004bb9a
mov rax, qword [rsp + 0x68]
sub rax, rdx
je 0x14004bba8
xor ecx, ecx
nop word cs:[rax + rax]
mov rdx, qword [rsp + 0xb0]
add rdx, rcx
cmp dword [rsp + 0x50], 0
je 0x14004bb30
mov r8, qword [rsp + 0x68]
cmp rdx, r8
jae case.0x14004b9f2.1
mov r9, qword [rsp + 0x60]
jmp 0x14004bb4e
movzx r8d, word [rsp + 0x54]
cmp r8, 5
jae case.0x14004b9f2.1
lea r9, [rsp + 0x58]
cmp rdx, r8
jae case.0x14004b9f2.1
cmp rcx, r8
jae case.0x14004b9f2.1
mov r8d, dword [r9 + rdx*8 + 4]
movzx edx, byte [r9 + rdx*8]
mov byte [r9 + rcx*8], dl
mov dword [r9 + rcx*8 + 4], r8d
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rax, rdx
jne 0x14004bb00
mov ecx, dword [rsp + 0x50]
test ecx, ecx
jne 0x14004bbac
movzx ecx, word [rsp + 0x54]
cmp rax, rcx
jae 0x14004bbb8
mov word [rsp + 0x54], ax
jmp 0x14004bbb8
mov qword [rsp + 0xa8], rax
jmp 0x14004bbbe
movzx eax, word [rsp + 0x54]
sub rax, rdx
jne 0x14004baf1
test ecx, ecx
je 0x14004bb7e
cmp qword [rsp + 0x68], rax
jb 0x14004bbb8
mov qword [rsp + 0x68], rax
movdqu xmmword [r15 + 0x58], xmm6
imul eax, esi, 0x9e3779b9
imul ecx, esi, 0x31415926
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x20
lea rdx, [0x141a62768]
movzx eax, word [rdx + rax*2]
add eax, esi
imul eax, eax, 0x9e3779b9
xor eax, ecx
imul rax, rax, 0x39a
shr rax, 0x20
lea rcx, [0x141a62e9c]
mov edi, dword [rcx + rax*4]
mov eax, edi
shr eax, 8
cmp eax, esi
mov eax, 0
cmovne edi, eax
mov r13d, dword [rsp + 0xe0]
cmp r13d, 0x110000
jne 0x14004bc40
test dil, dil
jne 0x14004c0a0
mov dword [rsp + 0xe0], esi
jmp 0x14004b745
cmp byte [rsp + 0xe4], 0
je 0x14004bc71
cmp byte [rsp + 0xe5], dil
jae 0x14004bc90
mov ecx, r13d
mov edx, esi
call fcn.140188f00
cmp eax, 0x110000
je 0x14004bc99
mov dword [rsp + 0xe0], eax
jmp 0x14004b745
mov ecx, r13d
mov edx, esi
call fcn.140188f00
cmp eax, 0x110000
jne 0x14004bf68
test dil, dil
jne 0x14004bc99
jmp 0x14004c112
test dil, dil
je 0x14004c0ec
cmp dword [rsp + 0xc0], 0
je 0x14004bcdf
mov rax, qword [rsp + 0xd8]
cmp rax, qword [rsp + 0xc8]
jne 0x14004bcca
lea rcx, [rsp + 0xc8]
call fcn.14006bb10
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xd0]
mov dword [rcx + rax*4], esi
inc qword [rsp + 0xd8]
jmp 0x14004bd02
movzx eax, word [rsp + 0xc4]
cmp rax, 3
ja 0x14004c035
mov dword [rsp + rax*4 + 0xc8], esi
inc eax
mov word [rsp + 0xc4], ax
mov byte [rsp + 0xe4], 1
mov byte [rsp + 0xe5], dil
jmp 0x14004b745
cmp edx, 0x110000
je 0x14004beda
cmp byte [rsp + 0xb8], 0
je 0x14004be0c
cmp edx, 0x80
jb 0x14004b73d
lea edi, [rdx - 0xac00]
cmp edi, 0x2ba4
jb 0x14004b6dd
imul ecx, edx, 0x9e3779b9
imul eax, edx, 0x31415926
xor ecx, eax
imul r8, rcx, 0xee4
shr r8, 0x20
lea r9, [0x141a6e700]
movzx r8d, word [r9 + r8*2]
add r8d, edx
imul r8d, r8d, 0x9e3779b9
xor r8d, eax
imul r8, r8, 0xee4
shr r8, 0x20
lea r9, [0x141a704c8]
mov rsi, qword [r9 + r8*8]
cmp edx, esi
jne 0x14004bf74
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0x1668
jae case.0x14004b9f2.1
shr rsi, 0x30
mov ecx, 0x1667
sub rcx, rax
cmp rsi, rcx
ja case.0x14004b9f2.1
lea rcx, [0x141a77be8]
lea rdi, [rcx + rax*4]
test rsi, rsi
jne 0x14004bff2
jmp 0x14004b745
cmp edx, 0x80
jb 0x14004b73d
lea edi, [rdx - 0xac00]
cmp edi, 0x2ba4
jb 0x14004b6dd
imul eax, edx, 0x9e3779b9
imul ecx, edx, 0x31415926
xor eax, ecx
imul rax, rax, 0x80d
shr rax, 0x20
lea r8, [0x141a66144]
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, [0x141a67160]
mov rsi, qword [rcx + rax*8]
cmp edx, esi
jne 0x14004b73d
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0xd4f
jae case.0x14004b9f2.1
shr rsi, 0x30
mov ecx, 0xd4e
sub rcx, rax
cmp rsi, rcx
ja case.0x14004b9f2.1
test rsi, rsi
je 0x14004b745
lea rcx, [0x141a6b1c8]
lea rdi, [rcx + rax*4]
shl esi, 2
xor r12d, r12d
nop dword [rax]
mov edx, dword [rdi + r12]
mov rcx, r15
call fcn.14004f3e0
add r12, 4
cmp rsi, r12
jne 0x14004bec0
jmp 0x14004b745
mov byte [rsp + 0xa0], 2
mov r8d, dword [rsp + 0x50]
test r8d, r8d
mov rcx, qword [rsp + 0x68]
movzx edx, word [rsp + 0x54]
mov rax, rcx
cmove rax, rdx
test rax, rax
je 0x14004c0b0
mov rax, qword [rsp + 0xb0]
test r8d, r8d
je 0x14004bf1b
mov r8, qword [rsp + 0x60]
mov rdx, rcx
jmp 0x14004bf2a
lea r8, [rsp + 0x58]
cmp dx, 5
jae case.0x14004b9f2.1
sub rdx, rax
jb case.0x14004b9f2.1
lea rcx, [r8 + rax*8]
call fcn.14004ab20
mov ecx, dword [rsp + 0x50]
test ecx, ecx
je 0x14004bf56
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0xb0], rdx
jmp 0x14004ba94
movzx edx, word [rsp + 0x54]
mov qword [rsp + 0xb0], rdx
jmp 0x14004ba94
mov dword [rsp + 0xe0], eax
jmp 0x14004b745
imul rcx, rcx, 0x80d
shr rcx, 0x20
lea r8, [0x141a66144]
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, [0x141a67160]
mov rsi, qword [rcx + rax*8]
cmp edx, esi
jne 0x14004b73d
mov rax, rsi
shr rax, 0x20
movzx eax, ax
cmp rax, 0xd4f
jae case.0x14004b9f2.1
shr rsi, 0x30
mov ecx, 0xd4e
sub rcx, rax
cmp rsi, rcx
ja case.0x14004b9f2.1
lea rcx, [0x141a6b1c8]
lea rdi, [rcx + rax*4]
test rsi, rsi
je 0x14004b745
shl esi, 2
xor r12d, r12d
nop dword [rax + rax]
mov edx, dword [rdi + r12]
mov rcx, r15
call fcn.14004f3e0
add r12, 4
cmp rsi, r12
jne 0x14004c000
jmp 0x14004b745
shl edi, 6
or edi, r12d
mov edx, edi
jmp 0x14004bd4c
shl edi, 0xc
or r13d, edi
mov edx, r13d
jmp 0x14004bd4c
lea rcx, [rsp + 0x108]
lea rdx, [rsp + 0xc4]
mov r8d, esi
call fcn.140050130
cmp dword [rsp + 0xc0], 0
je 0x14004c078
cmp qword [rsp + 0xc8], 0
je 0x14004c078
mov r8, qword [rsp + 0xd0]
mov rcx, qword [0x141ada118]
xor edx, edx
call fcn.1401cdfe4
movdqu xmm0, xmmword [rsp + 0x108]
movdqu xmm1, xmmword [rsp + 0x118]
movdqu xmmword [r15 + 0x80], xmm1
movdqu xmmword [r15 + 0x70], xmm0
jmp 0x14004bd02
mov r13d, esi
jmp 0x14004c1f0
mov qword [rsp + 0x40], 2
mov qword [rsp + 0x48], 0
mov r13d, dword [rsp + 0xe0]
mov eax, 2
cmp r13d, 0x110000
je 0x14004b664
mov dword [rsp + 0xe0], 0x110000
jmp 0x14004c1f0
mov dword [rsp + 0xe0], esi
mov byte [rsp + 0xe4], 0
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], 0
jmp 0x14004c1f0
mov dword [rsp + 0xe0], esi
jmp 0x14004c1f0
mov rcx, qword [rsp + 0x48]
mov eax, dword [rsp + 0xc0]
test eax, eax
je 0x14004c14c
cmp rcx, qword [rsp + 0xd8]
jae 0x14004c1a2
mov rdx, qword [rsp + 0xd0]
jmp 0x14004c16c
mov rcx, qword [rsp + 0xd0]
jmp 0x14004c18b
movzx r8d, word [rsp + 0xc4]
cmp r8, 5
jae case.0x14004b9f2.1
lea rdx, [rsp + 0xc8]
cmp rcx, r8
jae 0x14004c1b0
mov r13d, dword [rdx + rcx*4]
inc rcx
mov qword [rsp + 0x40], 2
mov qword [rsp + 0x48], rcx
jmp 0x14004c1f0
lea rcx, [rsp + 0xc8]
mov r13d, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], rax
jmp 0x14004c1f0
mov qword [rsp + 0xd8], 0
jmp 0x14004c1c5
cmp word [rsp + 0xc4], 0
je 0x14004c1c5
mov word [rsp + 0xc4], 0
mov r13d, dword [rsp + 0xe0]
mov dword [rsp + 0xe0], 0x110000
cmp r13d, 0x110000
je 0x14004c3e8
nop word cs:[rax + rax]
cmp r13d, 0x80
jae 0x14004c220
mov rsi, qword [rsp + 0x100]
mov rax, qword [rsi + 0x10]
cmp rax, qword [rsi]
jne 0x14004b650
mov rcx, rsi
call fcn.14006b710
mov rax, qword [rsi + 0x10]
jmp 0x14004b650
mov dword [rsp + 0x108], 0
mov eax, r13d
cmp r13d, 0x800
jae 0x14004c24f
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x108], al
mov esi, 2
mov eax, 1
jmp 0x14004c2b9
cmp r13d, 0x10000
jae 0x14004c281
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x108], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x109], al
mov esi, 3
mov eax, 2
jmp 0x14004c2b9
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x108], al
mov eax, r13d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x109], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x10a], al
mov esi, 4
mov eax, 3
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + rax + 0x108], r13b
mov rbx, qword [rsp + 0x100]
mov rax, qword [rbx]
mov rdi, qword [rbx + 0x10]
sub rax, rdi
cmp rax, rsi
jb 0x14004c308
mov rcx, qword [rbx + 8]
add rcx, rdi
lea rdx, [rsp + 0x108]
mov r8, rsi
call sub.msvcrt.dll_memcpy
add rdi, rsi
mov qword [rbx + 0x10], rdi
mov rax, qword [rsp + 0x40]
jmp 0x14004b664
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.14017bc20
mov rdi, qword [rbx + 0x10]
jmp 0x14004c2e0
mov rax, qword [r14]
mov rsi, qword [r14 + 0x10]
sub rax, rsi
cmp rax, r9
jb 0x14004c3c5
mov rcx, qword [r14 + 8]
add rcx, rsi
mov rdx, r8
mov r8, r9
mov rdi, r9
call sub.msvcrt.dll_memcpy
add rsi, rdi
mov qword [r14 + 0x10], rsi
mov qword [rbx], 0
mov dword [rbx + 8], 0
movaps xmm6, xmmword [rsp + 0x200]
movaps xmm7, xmmword [rsp + 0x210]
movaps xmm8, xmmword [rsp + 0x220]
movaps xmm9, xmmword [rsp + 0x230]
movaps xmm10, xmmword [rsp + 0x240]
movaps xmm11, xmmword [rsp + 0x250]
movaps xmm12, xmmword [rsp + 0x260]
movaps xmm13, xmmword [rsp + 0x270]
movaps xmm14, xmmword [rsp + 0x280]
movaps xmm15, xmmword [rsp + 0x290]
add rsp, 0x2a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r14
mov rdx, rsi
mov rsi, r8
mov r8, r9
mov rdi, r9
call fcn.14017bc20
mov r8, rsi
mov r9, rdi
mov rsi, qword [r14 + 0x10]
jmp 0x14004c32f
cmp dword [rsp + 0x50], 0
je 0x14004c41b
cmp qword [rsp + 0x58], 0
mov rsi, qword [rsp + 0x100]
je 0x14004c423
mov r8, qword [rsp + 0x60]
mov rcx, qword [0x141ada118]
xor edx, edx
call fcn.1401cdfe4
mov eax, dword [rsp + 0xc0]
jmp 0x14004c423
mov rsi, qword [rsp + 0x100]
test eax, eax
je 0x14004c448
cmp qword [rsp + 0xc8], 0
je 0x14004c448
mov r8, qword [rsp + 0xd0]
mov rcx, qword [0x141ada118]
xor edx, edx
call fcn.1401cdfe4
movabs r14, 0x8080808080808080
mov qword [rsp + 0x180], 0
mov qword [rsp + 0x188], 8
mov qword [rsp + 0x190], 0
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x138], rax
mov byte [rsp + 0x140], 1
mov word [rsp + 0x148], 1
mov rax, qword [rsp + 0x198]
and rax, 0xffffffffffff00ff
mov qword [rsp + 0x1e8], rax
mov dil, 1
lea rbx, [rsp + 0x108]
lea r13, [0x141a5e3a0]
movdqa xmm6, xmmword [0x140218150]
movdqa xmm7, xmmword [0x140218160]
xorps xmm8, xmm8
movdqa xmm14, xmmword [0x1402181c0]
movdqa xmm15, xmmword [0x1402181d0]
movdqa xmm10, xmmword [0x1402181f0]
movdqa xmm11, xmmword [0x140218200]
movdqa xmm12, xmmword [0x140218210]
movdqa xmm13, xmmword [0x140218220]
movdqa xmm9, xmmword [0x140218230]
xor ebp, ebp
jmp 0x14004c588
movabs r14, 0x8080808080808080
test qword [rsi], r14
lea rbx, [rsp + 0x108]
je 0x14004dfa0
mov byte [rsp + 0xf0], 1
mov bpl, 1
xor edi, edi
lea r13, [0x141a5e3a0]
mov rcx, rbx
call fcn.14018d130
test rax, rax
je 0x14004e0cb
mov r15, rax
mov r12, rdx
test dil, 1
jne 0x14004c5d1
mov rsi, qword [rsp + 0x310]
mov rax, qword [rsi + 0x10]
cmp rax, qword [rsi]
jne 0x14004c5c2
mov rcx, rsi
call fcn.14006b710
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi + 8]
mov byte [rcx + rax], 0x2e
inc rax
mov qword [rsi + 0x10], rax
cmp r12, 4
jb 0x14004c5e4
cmp dword [r15], 0x2d2d6e78
je 0x14004c773
test bpl, 1
jne 0x14004c715
test r12, r12
je 0x14004c713
mov rax, r15
add rax, r12
mov rcx, r15
jmp 0x14004c60b
cmp rcx, rax
je 0x14004c713
movzx edx, byte [rcx]
test dl, dl
js 0x14004c617
inc rcx
jmp 0x14004c68a
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14004c66c
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14004c67c
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 0x14004c713
add rcx, 4
jmp 0x14004c68a
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14004c68a
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14004c602
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14004c6c3
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14004c602
shr r8, 1
add r8, r10
lea rsi, [r8 + r8*2]
mov r11d, dword [r13 + rsi*4]
mov edi, dword [r13 + rsi*4 + 4]
cmp edi, edx
jb 0x14004c6e0
cmp r11d, edx
jbe 0x14004c6ef
cmp edi, edx
jae 0x14004c6b0
mov r10, r8
inc r10
mov r8, r9
jmp 0x14004c6b0
movzx edx, byte [r13 + rsi*4 + 8]
cmp edx, 0x11
ja 0x14004c602
mov r8d, 0x20003
bt r8d, edx
jae 0x14004c602
mov bpl, 1
jmp 0x14004c715
xor ebp, ebp
mov rcx, r15
mov rdx, r12
mov r8, qword [rsp + 0x198]
lea r9, [rsp + 0xf0]
call fcn.14004f180
mov rcx, qword [rsp + 0x310]
mov rax, qword [rcx]
mov rsi, qword [rcx + 0x10]
sub rax, rsi
cmp rax, r12
jb 0x14004cb87
mov rdi, qword [rsp + 0x310]
mov rcx, qword [rdi + 8]
add rcx, rsi
mov rdx, r15
mov r8, r12
call sub.msvcrt.dll_memcpy
add r12, rsi
mov qword [rdi + 0x10], r12
xor edi, edi
jmp 0x14004c588
lea rsi, [r15 + 4]
add r12, 0xfffffffffffffffc
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], r12
mov byte [rsp + 0x68], 1
movabs rax, 0x2d0000002d
mov qword [rsp + 0x60], rax
lea rax, [r15 + 0xb]
and rax, 0xfffffffffffffff8
sub rax, rsi
mov rcx, r15
add rcx, 3
mov r11, r12
mov dword [rsp + 0xfc], ebp
jmp 0x14004c7df
mov qword [rsp + 0x58], r11
cmp r11, r12
ja 0x14004c8d7
mov r8, r11
sub r8, rax
and r8d, 0xf
cmp r11, rax
mov r9d, 0
mov rdx, r11
cmova rdx, rax
cmovae r9, r8
mov r8, r11
sub r8, r9
jb case.0x14004b9f2.1
lea r9, [rsi + r11]
sub r9, rsi
sub r9, r8
lea r10, [rcx + r11]
test r9, r9
je 0x14004c831
dec r9
cmp byte [r10], 0x2d
lea r10, [r10 - 1]
jne 0x14004c817
add r9, r8
mov r11, r9
jmp 0x14004c883
mov r9, r8
cmp r8, rdx
jbe 0x14004c867
lea r8, [r9 - 0x10]
movdqu xmm0, xmmword [r15 + 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, r14
je 0x14004c831
cmp r9, r11
ja case.0x14004b9f2.1
mov r11, r9
sub r11, 1
jb 0x14004c8d7
cmp byte [rcx + r9], 0x2d
mov r9, r11
jne 0x14004c873
cmp r11, r12
jae 0x14004c7d1
mov dl, 0x2d
cmp byte [rsi + r11], dl
jne 0x14004c7d1
test r11, r11
mov qword [rsp + 0x38], rsi
je 0x14004d48c
cmp r11, r12
jae 0x14004c8b6
cmp byte [rsi + r11], 0xbf
jle case.0x14004b9f2.1
mov qword [rsp + 0x28], r11
lea rax, [r11 + 1]
cmp rax, r12
jae 0x14004d4d6
cmp byte [rsi + rax], 0xbf
jg 0x14004d4df
jmp case.0x14004b9f2.1
mov r15, rsi
xor eax, eax
mov qword [rsp + 0x28], rax
lea rax, [0x141a98490]
mov qword [rsp + 0x38], rax
add r12, r15
mov dword [rsp + 0x30], pe_nt_image_headers64
mov ebp, 0x48
xor edx, edx
xor esi, esi
mov rax, qword [rsp + 0x28]
mov r13d, eax
cmp r15, r12
mov qword [rsp + 0xe8], rdx
je 0x14004cb31
lea r9d, [rbp + 0x1a]
inc r15
mov r10d, ebp
neg r10d
mov r11d, 1
mov edi, 0x24
mov ecx, esi
movzx eax, byte [r15 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jb 0x14004c956
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x14004c95a
add al, 0x9f
mov edx, eax
cmp al, 0x19
jbe 0x14004c95a
jmp 0x14004c574
add al, 0xea
mov edx, eax
test r11d, r11d
je case.0x14004b9f2.1
movzx r8d, dl
mov eax, ecx
not eax
xor edx, edx
div r11d
cmp eax, r8d
jb 0x14004c574
mov eax, r11d
imul eax, r8d
add ecx, eax
lea eax, [r10 + rdi]
cmp edi, r9d
mov edx, 0x1a
cmovae eax, edx
cmp edi, ebp
mov edx, 1
cmovbe eax, edx
cmp eax, r8d
ja 0x14004c9de
mov r8d, 0x24
sub r8d, eax
mov eax, r8d
mul r11d
jo 0x14004c574
cmp r15, r12
je 0x14004c574
add edi, 0x24
imul r11d, r8d
inc r15
movzx eax, byte [r15 - 1]
lea edx, [rax - 0x30]
cmp dl, 0xa
jae 0x14004c941
jmp 0x14004c956
inc r13d
je case.0x14004b9f2.1
mov eax, ecx
sub eax, esi
test esi, esi
mov r8d, 2
mov edx, 0x2bc
cmove r8d, edx
xor ebp, ebp
xor edx, edx
div r8d
mov r8d, eax
xor edx, edx
div r13d
add eax, r8d
cmp eax, 0x1c8
mov r9d, 0xd41d41d5
jb 0x14004ca46
xor ebp, ebp
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 ebp, 0x24
cmp eax, 0x3e57
mov eax, r8d
ja 0x14004ca1d
jmp 0x14004ca49
mov r8d, eax
lea eax, [r8*4]
lea eax, [rax + rax*8]
add r8d, 0x26
xor edx, edx
div r8w
mov edi, eax
mov eax, ecx
xor edx, edx
div r13d
add dword [rsp + 0x30], eax
jb 0x14004c574
mov eax, dword [rsp + 0x30]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x14004c574
mov esi, edx
mov rax, qword [rsp + 0x188]
mov ebx, edx
mov rdx, qword [rsp + 0xe8]
test rdx, rdx
je 0x14004caca
mov rcx, rdx
shl rcx, 4
xor r9d, r9d
jmp 0x14004cab8
add r9, 0x10
cmp rcx, r9
je 0x14004caca
mov r8, qword [rax + r9]
cmp r8, rbx
jb 0x14004caaf
inc r8
mov qword [rax + r9], r8
jmp 0x14004caaf
cmp rdx, qword [rsp + 0x180]
jne 0x14004caf1
lea rcx, [rsp + 0x180]
call fcn.14006ba70
mov rax, qword [rsp + 0x188]
mov rdx, qword [rsp + 0x190]
movzx ecx, di
add ebp, ecx
mov rcx, rdx
shl rcx, 4
mov qword [rax + rcx], rbx
mov r8d, dword [rsp + 0x30]
mov dword [rax + rcx + 8], r8d
inc rdx
mov qword [rsp + 0x190], rdx
inc esi
lea rbx, [rsp + 0x108]
cmp r15, r12
mov qword [rsp + 0xe8], rdx
jne 0x14004c91a
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x150], rax
cmp rdx, 0x15
jae 0x14004cba6
cmp rdx, 1
mov rsi, qword [rsp + 0x310]
lea r13, [0x141a5e3a0]
mov ebp, dword [rsp + 0xfc]
jbe 0x14004d190
mov r8d, 1
mov rcx, qword [rsp + 0x150]
call fcn.14004b260
mov rdx, qword [rsp + 0xe8]
jmp 0x14004d190
mov rdi, qword [rsp + 0x310]
mov rcx, rdi
mov rdx, rsi
mov r8, r12
call fcn.14017bc20
mov rsi, qword [rdi + 0x10]
jmp 0x14004c74b
lea rdx, [rdx*8]
movabs rax, 0x7ffffffffffffff0
and rdx, rax
movzx eax, byte [0x141ada129]
xor ecx, ecx
call fcn.14014fee0
mov qword [rsp + 0x158], rax
test rax, rax
je case.0x14004b9f2.1
movzx eax, byte [0x141ada129]
mov edx, 0x100
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je case.0x14004b9f2.1
mov r15, rax
mov rax, qword [rsp + 0x150]
lea rcx, [rax + 0x20]
mov qword [rsp + 0x1b8], rcx
add rax, 0xfffffffffffffff0
mov qword [rsp + 0x1c8], rax
mov eax, 0x10
mov qword [rsp + 0x1c0], rax
xor r14d, r14d
xor r12d, r12d
mov r11, qword [rsp + 0xe8]
mov r13, qword [rsp + 0x158]
jmp 0x14004cc55
mov r12d, 1
mov r14, qword [rsp + 0x1f0]
cmp r14, r11
jae 0x14004d13e
mov rdx, r11
sub rdx, r14
mov r9, r14
shl r9, 4
mov rax, qword [rsp + 0x150]
lea rcx, [rax + r9]
cmp rdx, 2
jae 0x14004d03e
mov r8, rdx
lea rdx, [r8 + r14]
mov rsi, rdx
sub rsi, r14
jb case.0x14004b9f2.1
cmp rdx, r11
ja case.0x14004b9f2.1
jae 0x14004ccce
cmp r8, 0xa
jae 0x14004ccce
cmp r14, 0xfffffffffffffff6
jae case.0x14004b9f2.1
lea rdi, [r14 + 0xa]
cmp rdi, r11
cmovae rdi, r11
cmp rdx, r14
mov eax, 1
cmove r8, rax
mov rsi, rdi
sub rsi, r14
mov rdx, rsi
call fcn.14004b260
mov rdx, rdi
mov qword [rsp + 0x1f0], rdx
cmp r12, qword [rsp + 0x1c0]
jne 0x14004cd33
mov rdx, r12
shl rdx, 5
movzx eax, byte [0x141ada129]
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je case.0x14004b9f2.1
mov rdi, rax
lea rax, [r12 + r12]
mov qword [rsp + 0x1c0], rax
mov r8, r12
shl r8, 4
mov rcx, rdi
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, r15
call fcn.1401cdfe4
mov r15, rdi
mov r11, qword [rsp + 0xe8]
mov rax, r12
shl rax, 4
mov qword [r15 + rax], rsi
mov qword [r15 + rax + 8], r14
inc r12
mov rax, r12
cmp r12, 2
mov qword [rsp + 0x1f8], r15
jae 0x14004cdec
jmp 0x14004cc44
mov rdi, r15
mov r13, qword [rsp + 0x158]
mov rdx, r13
mov r15, qword [rsp + 0x1f8]
add rbp, r15
sub r12, rdx
mov rcx, rdi
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x160]
add rax, rsi
mov qword [rbp], rax
mov rax, qword [rsp + 0x1a8]
mov qword [rbp + 8], rax
mov rcx, qword [rsp + 0x1a0]
lea rdx, [rcx + 0x10]
mov rax, qword [rsp + 0x170]
not rax
mov r8, qword [rsp + 0x30]
add r8, rax
shl r8, 4
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x168]
cmp rax, 1
mov r11, qword [rsp + 0xe8]
jbe 0x14004cc3e
mov r12, rax
lea r10, [rax - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [r15 + rcx]
mov rcx, qword [r15 + rcx + 8]
add rcx, rax
cmp rcx, r11
je 0x14004ce58
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + r15 - 0x20]
cmp r8, rax
jbe 0x14004ce58
cmp r12, 2
je 0x14004d128
lea rdi, [r12 - 3]
mov rcx, rdi
shl rcx, 4
mov rcx, qword [r15 + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x14004ce6e
cmp r12, 3
jbe 0x14004d133
add r8, rcx
cmp qword [rdx + r15 - 0x40], r8
jbe 0x14004ce6e
jmp 0x14004cc44
cmp r12, 2
je 0x14004ce73
lea rdi, [r12 - 3]
mov rcx, rdi
shl rcx, 4
mov rcx, qword [r15 + rcx]
cmp rcx, rax
jb 0x14004ce78
lea rdi, [r12 - 2]
cmp rdi, r12
jae case.0x14004b9f2.1
lea rbp, [rdi + 1]
cmp rbp, r12
jae case.0x14004b9f2.1
mov rdx, rdi
shl rdx, 4
mov rax, qword [r15 + rdx + 8]
shl rbp, 4
mov rcx, qword [r15 + rbp]
mov r14, qword [r15 + rbp + 8]
add r14, rcx
mov rbx, r14
sub rbx, rax
jb case.0x14004b9f2.1
mov qword [rsp + 0x170], rdi
mov qword [rsp + 0x30], r12
cmp r14, r11
ja case.0x14004b9f2.1
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], r10
add rdx, r15
mov qword [rsp + 0x1a0], rdx
mov rsi, qword [rdx]
mov qword [rsp + 0x1a8], rax
mov rdi, rax
shl rdi, 4
add rdi, qword [rsp + 0x150]
mov r12, rsi
shl r12, 4
lea r15, [rdi + r12]
shl r14, 4
mov r13, rbx
sub r13, rsi
cmp r13, rsi
jae 0x14004cfc0
mov r12, r13
shl r12, 4
mov rbx, qword [rsp + 0x158]
mov rcx, rbx
mov rdx, r15
mov r8, r12
call sub.msvcrt.dll_memcpy
add r12, rbx
test rsi, rsi
jle 0x14004cd68
test r13, r13
jle 0x14004cd68
add r14, qword [rsp + 0x1c8]
mov r13, qword [rsp + 0x158]
mov rax, r15
mov rcx, r12
mov rdx, qword [r12 - 0x10]
mov r8, qword [r15 - 0x10]
cmp rdx, r8
mov r15d, 0
sbb r15, r15
cmp rdx, r8
mov r12d, 0
adc r12, 0xffffffffffffffff
shl r15, 4
add r15, rax
shl r12, 4
add r12, rcx
cmp rdx, r8
mov rax, r12
cmovb rax, r15
movdqu xmm0, xmmword [rax]
movdqu xmmword [r14], xmm0
cmp r15, rdi
jbe 0x14004cfb8
add r14, 0xfffffffffffffff0
cmp r12, r13
ja 0x14004cf61
mov rdi, r15
jmp 0x14004cd73
mov r13, qword [rsp + 0x158]
mov rcx, r13
mov rdx, rdi
mov r8, r12
call sub.msvcrt.dll_memcpy
add r12, r13
test rsi, rsi
jle 0x14004cd73
cmp rbx, rsi
jle 0x14004cd73
add r14, qword [rsp + 0x150]
mov rdx, r13
mov r8, rdx
mov rcx, qword [r15]
xor edx, edx
xor eax, eax
cmp rcx, qword [r8]
setae dl
setb cl
mov r9, r8
cmovb r9, r15
movdqu xmm0, xmmword [r9]
movdqu xmmword [rdi], xmm0
add rdi, 0x10
shl edx, 4
add rdx, r8
cmp rdx, r12
jae 0x14004cd76
mov al, cl
shl eax, 4
add r15, rax
cmp r15, r14
jb 0x14004cff6
jmp 0x14004cd76
mov r10, qword [rcx + 0x10]
cmp r10, qword [rcx]
jae 0x14004d0f0
mov eax, 2
cmp rdx, 2
je 0x14004d078
add r9, qword [rsp + 0x1b8]
mov r8, r10
mov r10, qword [r9]
cmp r10, r8
jae 0x14004d078
inc rax
add r9, 0x10
cmp rdx, rax
jne 0x14004d05e
mov rax, rdx
mov rdx, rax
add rdx, r14
jb case.0x14004b9f2.1
cmp rdx, r11
ja case.0x14004b9f2.1
mov r8d, 1
cmp rax, 2
jb 0x14004cc7f
mov r8, rdx
mov rdx, rax
shr rdx, 1
mov rsi, r8
shl r8, 4
add r8, qword [rsp + 0x1c8]
mov r9, rcx
mov r10, qword [r9]
mov r11d, dword [r9 + 8]
movdqu xmm0, xmmword [r8]
movdqu xmmword [r9], xmm0
mov qword [r8], r10
mov dword [r8 + 8], r11d
add r9, 0x10
add r8, 0xfffffffffffffff0
dec rdx
jne 0x14004d0b8
mov r8, rax
mov r11, qword [rsp + 0xe8]
mov rdx, rsi
jmp 0x14004cc7f
mov r8d, 2
cmp rdx, 2
je 0x14004cc7b
add r9, qword [rsp + 0x1b8]
mov rax, r10
mov r10, qword [r9]
cmp r10, rax
jb 0x14004cc7b
inc r8
add r9, 0x10
cmp rdx, r8
jne 0x14004d108
jmp 0x14004cc78
mov r12d, 2
jmp 0x14004cc44
mov r12d, 3
jmp 0x14004cc44
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, r15
call fcn.1401cdfe4
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, r13
call fcn.1401cdfe4
mov rdx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x310]
movabs r14, 0x8080808080808080
lea r13, [0x141a5e3a0]
lea rbx, [rsp + 0x108]
mov ebp, dword [rsp + 0xfc]
mov r10, qword [rsp + 0x28]
lea r8, [rdx + r10]
mov rax, qword [rsi]
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x30], rcx
sub rax, rcx
cmp rax, r8
jb 0x14004dff3
mov r11, qword [rsp + 0x38]
add r10, r11
xor r15d, r15d
xor r12d, r12d
mov qword [rsp + 0x28], r10
jmp 0x14004d1df
mov rcx, qword [rsi + 8]
mov byte [rcx + rax], dil
inc rax
mov qword [rsi + 0x10], rax
mov r11, rbp
mov ebp, dword [rsp + 0xfc]
cmp r15, qword [rsp + 0xe8]
jae 0x14004d27b
mov rax, r15
shl rax, 4
add rax, qword [rsp + 0x150]
cmp qword [rax], r12
jne 0x14004d20c
inc r15
mov edi, dword [rax + 8]
jmp 0x14004d333
mov rcx, r11
mov r11, r10
cmp rcx, r10
je 0x14004d20c
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x14004d308
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [rcx + 1]
and r9d, 0x3f
cmp r8b, 0xe0
jb 0x14004d310
movzx edx, byte [rcx + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14004d31f
movzx edi, byte [rcx + 3]
add rcx, 4
and eax, 7
shl eax, 0x12
shl edx, 6
and edi, 0x3f
or edi, edx
or edi, eax
mov r11, rcx
cmp edi, 0x110000
je 0x14004d20c
jmp 0x14004d2f2
cmp r11, r10
je 0x14004d462
movzx r8d, byte [r11]
test r8b, r8b
js 0x14004d29f
inc r11
mov rbp, r11
movzx edi, r8b
inc r12
jmp 0x14004d341
movzx eax, r8b
and eax, 0x1f
movzx r9d, byte [r11 + 1]
and r9d, 0x3f
cmp r8b, 0xdf
jbe 0x14004d302
movzx edx, byte [r11 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x14004d328
movzx edi, byte [r11 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and edi, 0x3f
or edi, edx
or edi, eax
cmp edi, 0x110000
je 0x14004d462
add r11, 4
mov rcx, r11
mov r11, rcx
cmp edi, 0x110000
jne 0x14004d333
jmp 0x14004d462
add r11, 2
jmp 0x14004d317
inc rcx
mov r11, rcx
jmp 0x14004d290
add rcx, 2
mov r11, rcx
shl eax, 6
or eax, r9d
jmp 0x14004d331
add rcx, 3
mov r11, rcx
jmp 0x14004d32c
add r11, 3
shl eax, 0xc
or eax, edx
mov edi, eax
inc r12
cmp edi, 0x80
jae 0x14004d36c
mov rbp, r11
mov rsi, qword [rsp + 0x310]
mov rax, qword [rsi + 0x10]
cmp rax, qword [rsi]
jne 0x14004d1c6
mov rcx, rsi
call fcn.14006b710
mov r10, qword [rsp + 0x28]
mov rax, qword [rsi + 0x10]
jmp 0x14004d1c6
mov dword [rsp + 0x40], 0
mov rbp, r11
mov eax, edi
cmp edi, 0x800
jae 0x14004d396
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x40], al
mov esi, 2
mov eax, 1
jmp 0x14004d3ed
cmp edi, 0x10000
jae 0x14004d3c0
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x40], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x41], al
mov esi, 3
mov eax, 2
jmp 0x14004d3ed
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x40], al
mov eax, edi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x41], al
mov eax, edi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x42], al
mov esi, 4
mov eax, 3
and dil, 0x3f
or dil, 0x80
mov byte [rsp + rax + 0x40], dil
mov rcx, qword [rsp + 0x310]
mov rax, qword [rcx]
mov rdi, qword [rcx + 0x10]
sub rax, rdi
cmp rax, rsi
jb 0x14004d446
mov rbx, qword [rsp + 0x310]
mov rcx, qword [rbx + 8]
add rcx, rdi
lea rdx, [rsp + 0x40]
mov r8, rsi
call sub.msvcrt.dll_memcpy
add rdi, rsi
mov qword [rbx + 0x10], rdi
lea rbx, [rsp + 0x108]
mov r10, qword [rsp + 0x28]
jmp 0x14004d1d5
mov rbx, qword [rsp + 0x310]
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.14017bc20
mov rdi, qword [rbx + 0x10]
jmp 0x14004d411
mov rax, qword [rsp + 0x310]
mov rsi, qword [rax + 8]
mov r15, qword [rax + 0x10]
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x14004d4a1
cmp r15, rdx
jbe 0x14004d49b
cmp byte [rsi + rdx], 0xbf
jg 0x14004d4a1
jmp case.0x14004b9f2.1
mov r15, rsi
xor eax, eax
mov qword [rsp + 0x28], rax
jmp 0x14004c8ed
jne case.0x14004b9f2.1
lea rcx, [rsi + rdx]
test bpl, 1
jne 0x14004d72e
cmp r15, rdx
jne 0x14004d5ff
xor ebp, ebp
movabs r14, 0x8080808080808080
lea rbx, [rsp + 0x108]
mov rdx, qword [rsp + 0x30]
jmp 0x14004d72e
mov rax, r12
jne case.0x14004b9f2.1
lea r15, [rsi + rax]
sub r12, rax
cmp qword [rsp + 0x28], 8
jae 0x14004c559
mov rax, qword [rsp + 0x28]
cmp byte [rsi + rax - 1], 0
movabs r14, 0x8080808080808080
lea rbx, [rsp + 0x108]
js 0x14004c574
mov rax, qword [rsp + 0x28]
dec rax
je 0x14004c8ed
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 2], 0
js 0x14004c574
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffe
je 0x14004c8ed
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 3], 0
js 0x14004c574
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffd
je 0x14004c8ed
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 4], 0
js 0x14004c574
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffc
je 0x14004c8ed
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 5], 0
js 0x14004c574
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffb
je 0x14004c8ed
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 6], 0
js 0x14004c574
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffa
je 0x14004c8ed
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax - 7], 0
js 0x14004c574
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffff9
je 0x14004c8ed
jmp 0x14004c574
lea rax, [rsi + r15]
mov r12, rcx
jmp 0x14004d611
cmp rcx, rax
je 0x14004d712
movzx edx, byte [rcx]
test dl, dl
js 0x14004d61d
inc rcx
jmp 0x14004d690
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14004d672
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14004d682
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 0x14004d712
add rcx, 4
jmp 0x14004d690
add rcx, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
jmp 0x14004d690
add rcx, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
lea r8d, [rdx - 0x21]
cmp r8d, 0x5e
jb 0x14004d608
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
jmp 0x14004d6c2
cmp r11d, edx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14004d608
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 0x14004d6df
cmp r11d, edx
jbe 0x14004d6ee
cmp ebx, edx
jae 0x14004d6af
mov r10, r8
inc r10
mov r8, r9
jmp 0x14004d6af
movzx edx, byte [r13 + rdi*4 + 8]
cmp edx, 0x11
ja 0x14004d608
mov r8d, 0x20003
bt r8d, edx
jae 0x14004d608
mov bpl, 1
jmp 0x14004d714
xor ebp, ebp
movabs r14, 0x8080808080808080
lea rbx, [rsp + 0x108]
mov rdx, qword [rsp + 0x30]
mov rcx, r12
movq xmm0, qword [rsp + 0xf0]
movzx eax, byte [rsp + 0xf9]
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 r8d, xmm1
or r8b, byte [rsp + 0xf8]
or al, byte [rsp + 0xfa]
or al, r8b
xor edi, edi
or al, byte [rsp + 0xfb]
jne 0x14004c588
cmp r15, rdx
je 0x14004e098
mov r12d, ebp
add rsi, r15
xor edx, edx
xor edi, edi
mov qword [rsp + 0x170], rcx
mov rax, rcx
movzx r8d, byte [rax]
test r8b, r8b
js 0x14004d7b7
inc rax
jmp 0x14004d84a
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xe0
jb 0x14004d811
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14004d821
movzx r8d, byte [rax + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or r8d, r9d
cmp r8d, 0x110000
je 0x14004de10
add rax, 4
jmp 0x14004d82f
add rax, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14004d82f
add rax, 3
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
cmp r8d, 0x7f
jbe 0x14004d84a
jmp 0x14004d8d9
inc rax
cmp r8d, 0x80
jae 0x14004d8d7
cmp rax, rsi
je 0x14004de10
movzx r8d, byte [rax]
test r8b, r8b
jns 0x14004d83a
mov edx, r8d
and edx, 0x1f
movzx r10d, byte [rax + 1]
and r10d, 0x3f
cmp r8b, 0xdf
jbe 0x14004d8b3
movzx r9d, byte [rax + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp r8b, 0xf0
jb 0x14004d8c5
movzx r8d, byte [rax + 3]
and edx, 7
shl edx, 0x12
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
or r8d, edx
cmp r8d, 0x110000
je 0x14004de10
add rax, 4
jmp 0x14004d83d
add rax, 2
shl edx, 6
or edx, r10d
mov r8d, edx
jmp 0x14004d83d
add rax, 3
shl edx, 0xc
or r9d, edx
mov r8d, r9d
jmp 0x14004d83d
xor edx, edx
mov r9d, edx
imul edx, r8d, 0x9e3779b9
imul r10d, r8d, 0x31415926
xor edx, r10d
imul rdx, rdx, 0x39a
shr rdx, 0x20
lea r11, [0x141a62768]
movzx edx, word [r11 + rdx*2]
add edx, r8d
imul edx, edx, 0x9e3779b9
xor edx, r10d
imul rdx, rdx, 0x39a
shr rdx, 0x20
lea r10, [0x141a62e9c]
mov edx, dword [r10 + rdx*4]
mov r10d, edx
shr r10d, 8
cmp r10d, r8d
mov r10d, 0
cmovne edx, r10d
cmp r9b, dl
movabs r14, 0x8080808080808080
lea r13, [0x141a5e3a0]
lea rbx, [rsp + 0x108]
mov ebp, r12d
jbe 0x14004d963
test dl, dl
jne case.0x14004db3b.3907
lea r9d, [r8 - 0x340]
cmp r9d, 4
ja 0x14004d97a
cmp r9d, 2
jne case.0x14004db3b.3907
mov r9b, 2
cmp r8d, 0xd56
jg 0x14004d9f1
cmp r8d, 0x9de
jg 0x14004da31
cmp r8d, 0x93b
jg 0x14004db64
lea r10d, [r8 - 0x30f]
cmp r10d, 0x36
ja 0x14004d9c1
movabs r11, 0x48020000001005
bt r11, r10
jb 0x14004dc70
lea r10d, [r8 - 0x374]
cmp r10d, 0x13
lea r13, [0x141a5e3a0]
mov ebp, r12d
ja case.0x14004db3b.3908
mov r11d, 0x80401
bt r11d, r10d
jb case.0x14004db3b.3907
jmp case.0x14004db3b.3908
cmp r8d, 0x11126
jg 0x14004daa5
cmp r8d, 0x102d
jle 0x14004dae8
cmp r8d, 0x1f70
jg 0x14004dbb0
cmp r8d, 0x102e
je 0x14004dc70
cmp r8d, 0x1b35
jmp 0x14004dc64
cmp r8d, 0xbd6
jg 0x14004db3e
cmp r8d, 0xbbd
jg 0x14004dc5d
lea r10d, [r8 - 0xb3e]
cmp r10d, 0x19
ja 0x14004da68
mov r11d, 0x3000001
bt r11d, r10d
jb 0x14004dc70
lea r10d, [r8 - 0xa33]
cmp r10d, 0x2b
lea r13, [0x141a5e3a0]
mov ebp, r12d
ja 0x14004da93
movabs r11, 0x80000000009
bt r11, r10
jb case.0x14004db3b.3907
cmp r8d, 0x9df
jne case.0x14004db3b.3908
jmp case.0x14004db3b.3907
cmp r8d, 0x114af
jle 0x14004db8a
lea r10d, [r8 - 0x114b0]
cmp r10d, 0xd
ja 0x14004dacf
mov r11d, 0x2401
bt r11d, r10d
jb 0x14004dc70
cmp r8d, 0x115af
je 0x14004dc70
cmp r8d, 0x11930
jmp 0x14004dc64
lea r10d, [r8 - 0xdca]
cmp r10d, 0x15
ja 0x14004db05
mov r11d, 0x200021
bt r11d, r10d
jb 0x14004dc70
cmp r8d, 0xd57
je 0x14004dc70
lea r10d, [r8 - 0xf43]
cmp r10d, 0x76
lea r13, [0x141a5e3a0]
mov ebp, r12d
ja case.0x14004db3b.3908
lea r11, [0x140218240]
movsxd r10, dword [r11 + r10*4]
add r10, r11
jmp r10
cmp r8d, 0xcc1
jg 0x14004dc17
cmp r8d, 0xbd7
je 0x14004dc70
cmp r8d, 0xc56
jmp 0x14004dc64
cmp r8d, 0x93c
je 0x14004dc70
cmp r8d, 0x9be
je 0x14004dc70
cmp r8d, 0x9d7
jmp 0x14004dc64
cmp r8d, 0x11127
je 0x14004dc70
cmp r8d, 0x1133e
je 0x14004dc70
cmp r8d, 0x11357
jmp 0x14004dc64
cmp r8d, 0xfa0f
jle 0x14004dc29
cmp r8d, 0x110ba
je 0x14004dc70
lea r10d, [r8 - 0xfa10]
cmp r10d, 0x12
lea r13, [0x141a5e3a0]
mov ebp, r12d
ja 0x14004dbed
mov r11d, 0x50005
bt r11d, r10d
jb case.0x14004db3b.3907
lea r10d, [r8 - 0xfb1d]
cmp r10d, 0x21
ja case.0x14004db3b.3908
movabs r11, 0x200000005
bt r11, r10
jb case.0x14004db3b.3907
jmp case.0x14004db3b.3908
cmp r8d, 0xcc2
je 0x14004dc70
cmp r8d, 0xd3e
jmp 0x14004dc64
cmp r8d, 0x2125
jg 0x14004dc81
lea r10d, [r8 - 0x1f71]
cmp r10d, 0x8c
lea r13, [0x141a5e3a0]
mov ebp, r12d
ja case.0x14004db3b.3908
lea r11, [0x14021841c]
movsxd r10, dword [r11 + r10*4]
add r10, r11
jmp r10
cmp r8d, 0xbbe
lea r13, [0x141a5e3a0]
mov ebp, r12d
jne case.0x14004db3b.3908
mov edi, r9d
cmp rax, rsi
jne 0x14004d7a6
jmp 0x14004de13
lea r10d, [r8 - 0x2329]
cmp r10d, 2
lea r13, [0x141a5e3a0]
mov ebp, r12d
jb case.0x14004db3b.3907
cmp r8d, 0x2126
je case.0x14004db3b.3907
cmp r8d, 0x2adc
je case.0x14004db3b.3907
movd xmm1, r8d
pshufd xmm0, xmm1, 0
movdqa xmm2, xmm0
paddd xmm2, xmmword [0x140218180]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x140218190]
pxor xmm3, xmm14
pcmpgtd xmm3, xmmword [0x1402181e0]
pxor xmm2, xmm14
pcmpgtd xmm2, xmm10
packssdw xmm2, xmm3
packsswb xmm2, xmm2
pmovmskb r10d, xmm2
xor r10b, 0xff
jne case.0x14004db3b.3907
pshufd xmm1, xmm1, 0x50
pand xmm1, xmmword [0x140218170]
pshufd xmm2, xmm1, 4
pcmpeqd xmm2, xmmword [0x1402181a0]
movdqa xmm3, xmm0
paddd xmm3, xmmword [0x1402181b0]
pxor xmm3, xmm14
movdqa xmm4, xmm15
pcmpgtd xmm4, xmm3
por xmm4, xmm2
movmskps r10d, xmm4
test r10b, r10b
jne case.0x14004db3b.3907
lea r10d, [r8 - 0x1d1bb]
cmp r10d, 6
jb case.0x14004db3b.3907
lea r10d, [r8 - 0x2f800]
cmp r10d, 0x21e
jb case.0x14004db3b.3907
movd r10d, xmm1
cmp r10d, 0x2000
je case.0x14004db3b.3907
cmp r10d, 0x212a
je case.0x14004db3b.3907
cmp r10d, 0xfb40
je case.0x14004db3b.3907
movdqa xmm1, xmm0
paddd xmm1, xmm11
paddd xmm0, xmm12
pxor xmm0, xmm14
pcmpgtd xmm0, xmm13
pxor xmm1, xmm14
pcmpgtd xmm1, xmm9
packssdw xmm0, xmm1
packsswb xmm0, xmm0
pmovmskb r11d, xmm0
xor r11b, 0xff
jne 0x14004dc70
lea r11d, [r8 - 0x11a8]
cmp r11d, 0x1b
jb 0x14004dc70
cmp r10d, 0x330
je 0x14004dc70
add r8d, 0xffffcf67
cmp r8d, 2
movzx r9d, dil
mov ecx, 2
cmovb r9d, ecx
jmp 0x14004dc70
mov r9d, edi
test r9b, r9b
movabs r14, 0x8080808080808080
lea r13, [0x141a5e3a0]
lea rbx, [rsp + 0x108]
mov ebp, r12d
mov rcx, qword [rsp + 0x170]
je 0x14004e098
movzx eax, r9b
cmp eax, 1
je case.0x14004db3b.3907
lea rdx, [rsp + 0x88]
movups xmmword [rdx], xmm8
mov byte [rdx + 0x10], 0
lea rax, [rsp + 0x1d8]
movups xmmword [rax], xmm8
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x50], 0
mov word [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 byte [rsp + 0x70], 0
mov dword [rsp + 0x74], 0
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rsi
mov dword [rsp + 0xa0], 0
mov word [rsp + 0xa4], 0
movzx eax, word [rsp + 0x1e6]
mov word [rdx + 0x2e], ax
movdqu xmm0, xmmword [rsp + 0x1d6]
movdqu xmmword [rdx + 0x1e], xmm0
mov dword [rsp + 0xc0], 0x110000
mov byte [rsp + 0xc4], 0
mov rdi, rcx
cmp rdi, rsi
je 0x14004e00f
movzx ebx, byte [rdi]
test bl, bl
js 0x14004df1c
inc rdi
jmp 0x14004df7c
mov eax, ebx
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp bl, 0xdf
jbe 0x14004df64
movzx ecx, byte [rdi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x14004df71
movzx ebx, byte [rdi + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
or ebx, eax
cmp ebx, 0x110000
je 0x14004e00f
add rdi, 4
jmp 0x14004df7c
add rdi, 2
shl eax, 6
or eax, edx
mov ebx, eax
jmp 0x14004df7c
add rdi, 3
shl eax, 0xc
or ecx, eax
mov ebx, ecx
lea rcx, [rsp + 0x40]
call fcn.14004f5f0
xor ebp, ebp
cmp eax, 0x110000
je 0x14004e022
cmp eax, ebx
je 0x14004df07
jmp 0x14004e022
mov rcx, qword [rsp + 0x38]
lea rax, [rcx + 7]
and rax, 0xfffffffffffffff8
sub rax, rcx
mov ecx, 8
cmove rax, rcx
mov rcx, qword [rsp + 0x28]
add rcx, 0xfffffffffffffff8
cmp rax, rcx
jae 0x14004dfdf
mov rdx, qword [rsp + 0x38]
test qword [rdx + rax], r14
jne 0x14004c574
add rax, 8
cmp rax, rcx
jb 0x14004dfc7
mov rax, qword [rsp + 0x38]
test qword [rax + rcx], r14
jne 0x14004c574
jmp 0x14004c8ed
mov rcx, qword [rsp + 0x310]
mov rdx, qword [rsp + 0x30]
call fcn.14017bc20
mov r10, qword [rsp + 0x28]
jmp 0x14004d1b1
lea rcx, [rsp + 0x40]
call fcn.14004f5f0
cmp eax, 0x110000
sete bpl
cmp dword [rsp + 0x50], 0
je 0x14004e044
cmp qword [rsp + 0x58], 0
je 0x14004e044
mov r8, qword [rsp + 0x60]
mov rcx, qword [0x141ada118]
xor edx, edx
call fcn.1401cdfe4
cmp dword [rsp + 0xa0], 0
je 0x14004e06f
cmp qword [rsp + 0xa8], 0
je 0x14004e06f
mov r8, qword [rsp + 0xb0]
mov rcx, qword [0x141ada118]
xor edx, edx
call fcn.1401cdfe4
test bpl, bpl
movabs r14, 0x8080808080808080
lea r13, [0x141a5e3a0]
lea rbx, [rsp + 0x108]
mov ebp, r12d
mov rcx, qword [rsp + 0x170]
je case.0x14004db3b.3907
sub r15, qword [rsp + 0x30]
mov rdx, r15
mov r8, qword [rsp + 0x1e8]
lea r9, [rsp + 0xf0]
call fcn.14004f180
xor edi, edi
jmp 0x14004c588
mov byte [rsp + 0xf5], 1
xor edi, edi
jmp 0x14004c588
mov rcx, qword [rsp + 0x310]
mov rax, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
mov rdx, qword [rsp + 0x1b0]
test rdx, rdx
je 0x14004e0fe
cmp r14, rdx
jbe 0x14004e0f8
cmp byte [rax + rdx], 0xbf
jg 0x14004e0fe
jmp case.0x14004b9f2.1
jne case.0x14004b9f2.1
add rax, rdx
mov rcx, r14
sub rcx, rdx
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x78], 1
mov word [rsp + 0x80], 1
test bpl, 1
jne 0x14004e168
lea rsi, [rsp + 0x40]
mov rcx, rsi
call fcn.14018d130
test rax, rax
jne 0x14004e156
jmp 0x14004e864
lea r15, [rsp + 0x40]
mov ebx, 0x62f8
mov rcx, r15
call fcn.14018d130
test rax, rax
je 0x14004e864
test rdx, rdx
je 0x14004e172
movzx r8d, byte [rax]
test r8b, r8b
js 0x14004e197
lea rcx, [rax + 1]
jmp 0x14004e20b
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x14004e1ed
movzx r10d, byte [rax + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14004e1fd
movzx r8d, byte [rax + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or r8d, r9d
cmp r8d, 0x110000
je 0x14004e172
lea rcx, [rax + 4]
jmp 0x14004e20b
lea rcx, [rax + 2]
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14004e20b
lea rcx, [rax + 3]
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
add rdx, rax
mov r9d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14004e22e
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x14004e285
shr r9, 1
add r9, r11
lea r12, [r9 + r9*2]
lea rdi, [0x141a5e3a0]
mov ebp, dword [rdi + r12*4]
mov esi, dword [rdi + r12*4 + 4]
cmp esi, r8d
jb 0x14004e252
cmp ebp, r8d
jbe 0x14004e262
cmp esi, r8d
jae 0x14004e21f
mov r11, r9
inc r11
mov r9, r10
jmp 0x14004e21f
movzx r8d, byte [rdi + r12*4 + 8]
test r8d, r8d
je 0x14004e39f
cmp r8d, 0x11
je 0x14004e39f
cmp r8d, 9
jne 0x14004e85c
cmp rcx, rdx
je 0x14004e38b
movzx r8d, byte [rcx]
test r8b, r8b
js 0x14004e29c
inc rcx
jmp 0x14004e314
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp r8b, 0xdf
jbe 0x14004e2f6
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x14004e306
movzx r8d, byte [rcx + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or r8d, r9d
cmp r8d, 0x110000
je 0x14004e38b
add rcx, 4
jmp 0x14004e314
add rcx, 2
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14004e314
add rcx, 3
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
mov r9d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
jmp 0x14004e338
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x14004e285
shr r9, 1
add r9, r11
lea r12, [r9 + r9*2]
lea rdi, [0x141a5e3a0]
mov ebp, dword [rdi + r12*4]
mov esi, dword [rdi + r12*4 + 4]
cmp esi, r8d
jb 0x14004e35c
cmp ebp, r8d
jbe 0x14004e36c
cmp esi, r8d
jae 0x14004e325
mov r11, r9
inc r11
mov r9, r10
jmp 0x14004e325
movzx r8d, byte [rdi + r12*4 + 8]
cmp r8d, 0xe
ja 0x14004e85c
bt ebx, r8d
jb 0x14004e285
jmp 0x14004e85c
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14004e4ce
dec rdx
jmp 0x14004e5a4
cmp rcx, rdx
je 0x14004e506
xor r8d, r8d
xor r9d, r9d
movzx r10d, byte [rcx]
test r10b, r10b
js 0x14004e3bc
inc rcx
jmp 0x14004e431
mov r11d, r10d
and r11d, 0x1f
movzx r12d, byte [rcx + 1]
and r12d, 0x3f
cmp r10b, 0xdf
jbe 0x14004e413
movzx ebp, byte [rcx + 2]
shl r12d, 6
and ebp, 0x3f
or ebp, r12d
cmp r10b, 0xf0
jb 0x14004e423
movzx r10d, byte [rcx + 3]
and r11d, 7
shl r11d, 0x12
shl ebp, 6
and r10d, 0x3f
or r10d, ebp
or r10d, r11d
cmp r10d, 0x110000
je 0x14004e51a
add rcx, 4
jmp 0x14004e431
add rcx, 2
shl r11d, 6
or r11d, r12d
mov r10d, r11d
jmp 0x14004e431
add rcx, 3
shl r11d, 0xc
or ebp, r11d
mov r10d, ebp
mov r11d, 0x5a6
xor r13d, r13d
mov r12d, 0x5a6
jmp 0x14004e455
cmp ebp, r10d
cmova r12, r11
mov r11, r12
sub r11, r13
jbe 0x14004e85c
shr r11, 1
add r11, r13
lea rsi, [r11 + r11*2]
lea rdi, [0x141a5e3a0]
mov ebp, dword [rdi + rsi*4]
mov edi, dword [rdi + rsi*4 + 4]
cmp edi, r10d
jb 0x14004e477
cmp ebp, r10d
jbe 0x14004e487
cmp edi, r10d
jae 0x14004e442
mov r13, r11
inc r13
mov r11, r12
jmp 0x14004e442
lea r10, [0x141a5e3a0]
movzx r10d, byte [r10 + rsi*4 + 8]
cmp r10d, 0x11
ja 0x14004e85c
mov r11d, 0x260d9
bt r11d, r10d
jae 0x14004e4b5
cmp rcx, rdx
jne 0x14004e3ae
jmp 0x14004e51a
cmp r10d, 1
je 0x14004e4c9
mov r9b, 1
cmp r10d, 5
je 0x14004e4aa
jmp 0x14004e85c
mov r8b, 1
jmp 0x14004e4aa
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x14004e571
movzx r9d, byte [rdx - 3]
cmp r9b, 0xbf
jg 0x14004e57b
movzx r10d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r10d, 7
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
jmp 0x14004e583
mov cl, 1
movzx r8d, byte [rdx - 1]
test r8b, r8b
js 0x14004e536
dec rdx
jmp 0x14004e744
test r8b, 1
sete r8b
test r9b, 1
sete cl
or cl, r8b
movzx r8d, byte [rdx - 1]
test r8b, r8b
jns 0x14004e512
movzx r9d, byte [rdx - 2]
cmp r9b, 0xc0
jge 0x14004e70f
movzx r10d, byte [rdx - 3]
cmp r10b, 0xbf
jg 0x14004e719
movzx r11d, byte [rdx - 4]
add rdx, 0xfffffffffffffffc
and r11d, 7
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
jmp 0x14004e721
add rdx, 0xfffffffffffffffe
and r8d, 0x1f
jmp 0x14004e58e
add rdx, 0xfffffffffffffffd
and r9d, 0xf
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp ecx, 0x110000
je 0x14004e172
mov r8d, 0x5a6
xor r10d, r10d
mov r9d, 0x5a6
lea rdi, [0x141a5e3a0]
jmp 0x14004e5cb
cmp r11d, ecx
cmova r9, r8
mov r8, r9
sub r8, r10
jbe 0x14004e623
shr r8, 1
add r8, r10
lea r12, [r8 + r8*2]
mov r11d, dword [rdi + r12*4]
mov esi, dword [rdi + r12*4 + 4]
cmp esi, ecx
jb 0x14004e5e7
cmp r11d, ecx
jbe 0x14004e5f6
cmp esi, ecx
jae 0x14004e5bc
mov r10, r8
inc r10
mov r8, r9
jmp 0x14004e5bc
cmp byte [rdi + r12*4 + 8], 0xd
jne 0x14004e623
cmp rdx, rax
je 0x14004e172
movzx ecx, byte [rdx - 1]
test cl, cl
js 0x14004e6db
dec rdx
cmp ecx, 0x110000
jne 0x14004e5a4
jmp 0x14004e172
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14004e645
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x14004e172
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
lea rsi, [0x141a5e3a0]
mov r9d, dword [rsi + r10*4]
mov r11d, dword [rsi + r10*4 + 4]
cmp r11d, ecx
jb 0x14004e669
cmp r9d, ecx
jbe 0x14004e679
cmp r11d, ecx
jae 0x14004e632
mov r8, rax
inc r8
mov rax, rdx
jmp 0x14004e632
cmp byte [rsi + r10*4 + 8], 9
je 0x14004e172
mov eax, 0x5a6
xor r8d, r8d
mov edx, 0x5a6
jmp 0x14004e6a7
cmp r9d, ecx
cmova rdx, rax
mov rax, rdx
sub rax, r8
jbe 0x14004e85c
shr rax, 1
add rax, r8
lea r10, [rax + rax*2]
lea rsi, [0x141a5e3a0]
mov r9d, dword [rsi + r10*4]
mov r11d, dword [rsi + r10*4 + 4]
cmp r11d, ecx
jb 0x14004e6cb
cmp r9d, ecx
jbe 0x14004e6fe
cmp r11d, ecx
jae 0x14004e694
mov r8, rax
inc r8
mov rax, rdx
jmp 0x14004e694
movzx r8d, byte [rdx - 2]
cmp r8b, 0xc0
jge 0x14004e571
movzx r9d, byte [rdx - 3]
cmp r9b, 0xc0
jl 0x14004e4ec
jmp 0x14004e57b
cmp byte [rsi + r10*4 + 8], 5
je 0x14004e172
jmp 0x14004e85c
add rdx, 0xfffffffffffffffe
and r9d, 0x1f
jmp 0x14004e72c
add rdx, 0xfffffffffffffffd
and r10d, 0xf
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp r8d, 0x110000
je 0x14004e85c
mov r9d, 0x5a6
xor r11d, r11d
mov r10d, 0x5a6
lea r12, [0x141a5e3a0]
jmp 0x14004e76b
cmp ebp, r8d
cmova r10, r9
mov r9, r10
sub r9, r11
jbe 0x14004e7c8
shr r9, 1
add r9, r11
lea rsi, [r9 + r9*2]
mov ebp, dword [r12 + rsi*4]
mov edi, dword [r12 + rsi*4 + 4]
cmp edi, r8d
jb 0x14004e788
cmp ebp, r8d
jbe 0x14004e798
cmp edi, r8d
jae 0x14004e75c
mov r11, r9
inc r11
mov r9, r10
jmp 0x14004e75c
cmp byte [r12 + rsi*4 + 8], 0xd
jne 0x14004e7c8
cmp rdx, rax
je 0x14004e85c
movzx r8d, byte [rdx - 1]
test r8b, r8b
js 0x14004e839
dec rdx
cmp r8d, 0x110000
jne 0x14004e744
jmp 0x14004e85c
mov eax, 0x5a6
xor r9d, r9d
mov edx, 0x5a6
jmp 0x14004e7e6
cmp r10d, r8d
cmova rdx, rax
mov rax, rdx
sub rax, r9
jbe 0x14004e85c
shr rax, 1
add rax, r9
lea r11, [rax + rax*2]
lea rdi, [0x141a5e3a0]
mov r10d, dword [rdi + r11*4]
mov esi, dword [rdi + r11*4 + 4]
cmp esi, r8d
jb 0x14004e80a
cmp r10d, r8d
jbe 0x14004e81a
cmp esi, r8d
jae 0x14004e7d7
mov r9, rax
inc r9
mov rax, rdx
jmp 0x14004e7d7
movzx eax, byte [rdi + r11*4 + 8]
cmp eax, 0x11
ja 0x14004e85c
mov edx, 0x20023
bt edx, eax
jae 0x14004e85c
test cl, cl
jne 0x14004e172
jmp 0x14004e85c
movzx r9d, byte [rdx - 2]
cmp r9b, 0xc0
jge 0x14004e70f
movzx r10d, byte [rdx - 3]
cmp r10b, 0xc0
jl 0x14004e554
jmp 0x14004e719
mov byte [rsp + 0xf2], 1
movzx esi, byte [rsp + 0xf0]
lea rcx, [rsp + 0xf1]
mov rax, qword [rcx]
mov qword [rsp + 0x108], rax
mov eax, dword [rcx + 7]
mov dword [rsp + 0x10f], eax
cmp qword [rsp + 0x180], 0
mov r15, qword [rsp + 0x310]
je 0x14004e8b6
mov r8, qword [rsp + 0x188]
mov rcx, qword [0x141ada118]
xor edx, edx
call fcn.1401cdfe4
mov r14, qword [r15 + 0x10]
test r14, r14
mov rdi, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x100]
mov byte [rsp + 0x160], sil
je 0x14004e8ed
js case.0x14004b9f2.1
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, r14
call fcn.14014fee0
test rax, rax
jne 0x14004e8f5
ud2
mov eax, 1
xor r14d, r14d
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x50], rcx
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x40], xmm0
mov qword [r15], r14
mov qword [r15 + 8], rax
mov qword [r15 + 0x10], 0
lea rsi, [rbx + 0x18]
cmp qword [rbx + 0x18], 0
je 0x14004e933
mov r8, qword [rbx + 0x20]
mov rcx, qword [0x141ada118]
xor edx, edx
call fcn.1401cdfe4
mov rax, qword [rsp + 0x50]
mov qword [rsi + 0x10], rax
movdqa xmm0, xmmword [rsp + 0x40]
movdqu xmmword [rsi], xmm0
mov rax, qword [rbx + 0x20]
mov rcx, qword [rbx + 0x28]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rcx
movabs rax, 0x2e0000002e
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x78], 1
mov word [rsp + 0x80], 1
mov sil, 1
jmp 0x14004e9a5
mov byte [rsp + 0x160], 1
mov qword [r15 + 0x10], rcx
xor esi, esi
lea rcx, [rsp + 0x40]
call fcn.14018d130
test rax, rax
je 0x14004f15a
mov r14, rax
test sil, 1
movabs rbx, 0x8080808080808080
jne 0x14004e9f2
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15]
jne 0x14004e9e6
mov rcx, r15
mov rsi, rdx
call fcn.14006b710
mov rdx, rsi
mov rax, qword [r15 + 0x10]
mov rcx, qword [r15 + 8]
mov byte [rcx + rax], 0x2e
inc qword [r15 + 0x10]
cmp rdx, 8
jae 0x14004eaa8
test rdx, rdx
je 0x14004ec12
cmp byte [r14 + rdx - 1], 0
js 0x14004eae3
mov rax, rdx
dec rax
je 0x14004ec12
cmp byte [r14 + rdx - 2], 0
js 0x14004eae3
mov rax, rdx
add rax, 0xfffffffffffffffe
je 0x14004ec12
cmp byte [r14 + rdx - 3], 0
js 0x14004eae3
mov rax, rdx
add rax, 0xfffffffffffffffd
je 0x14004ec12
cmp byte [r14 + rdx - 4], 0
js 0x14004eae3
mov rax, rdx
add rax, 0xfffffffffffffffc
je 0x14004ec12
cmp byte [r14 + rdx - 5], 0
js 0x14004eae3
mov rax, rdx
add rax, 0xfffffffffffffffb
je 0x14004ec12
cmp byte [r14 + rdx - 6], 0
js 0x14004eae3
mov rax, rdx
add rax, 0xfffffffffffffffa
je 0x14004ec12
cmp byte [r14 + rdx - 7], 0
js 0x14004eae3
mov rax, rdx
add rax, 0xfffffffffffffff9
jne 0x14004eae3
jmp 0x14004ec12
test qword [r14], rbx
jne 0x14004eae3
lea rax, [r14 + 7]
and rax, 0xfffffffffffffff8
sub rax, r14
mov ecx, 8
cmove rax, rcx
lea rcx, [rdx - 8]
cmp rax, rcx
jae 0x14004ead9
test qword [r14 + rax], rbx
jne 0x14004eae3
add rax, 8
cmp rax, rcx
jb 0x14004eaca
test qword [r14 + rcx], rbx
je 0x14004ec12
mov rax, qword [r15]
mov rbx, qword [r15 + 0x10]
sub rax, rbx
mov r8, rbx
cmp rax, 3
jbe 0x14004ebf2
mov rax, qword [r15 + 8]
mov dword [rax + r8], 0x2d2d6e78
add r8, 4
mov qword [r15 + 0x10], r8
xor esi, esi
test rdx, rdx
je 0x14004e9a5
mov qword [rsp + 0x1a8], rbx
mov r12, r14
add r12, rdx
xor r13d, r13d
mov qword [rsp + 0x168], r14
mov rdi, r14
jmp 0x14004eb54
mov rax, qword [r15 + 8]
mov byte [rax + r8], bpl
inc r8
mov qword [r15 + 0x10], r8
inc r13d
inc esi
cmp rdi, r12
je 0x14004ec53
movzx ebp, byte [rdi]
test bpl, bpl
js 0x14004eb61
inc rdi
jmp 0x14004ebc3
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x14004ebab
movzx ecx, byte [rdi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x14004ebb8
movzx ebp, byte [rdi + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebp, 0x3f
or ebp, ecx
or ebp, eax
cmp ebp, 0x110000
je 0x14004ec50
add rdi, 4
jmp 0x14004ebc3
add rdi, 2
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x14004ebc3
add rdi, 3
shl eax, 0xc
or ecx, eax
mov ebp, ecx
mov r14d, esi
inc r14d
je 0x14004f0e8
cmp ebp, 0x7f
ja 0x14004eb49
cmp r8, qword [r15]
jne 0x14004eb37
mov rcx, r15
call fcn.14006b710
mov r8, qword [r15 + 0x10]
jmp 0x14004eb37
mov r8d, 4
mov rcx, r15
mov rsi, rdx
mov rdx, rbx
call fcn.14017bc20
mov rdx, rsi
mov r8, qword [r15 + 0x10]
jmp 0x14004eafa
mov rax, qword [r15]
mov rsi, qword [r15 + 0x10]
sub rax, rsi
cmp rax, rdx
jb 0x14004f138
mov r15, rdx
mov rbx, qword [rsp + 0x310]
mov rcx, qword [rbx + 8]
add rcx, rsi
mov rdx, r14
mov r8, r15
call sub.msvcrt.dll_memcpy
add r15, rsi
mov rcx, r15
mov r15, rbx
jmp 0x14004e99f
mov r14d, esi
test r13d, r13d
je 0x14004ec8b
cmp r8, qword [r15]
mov rdi, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x168]
jne 0x14004ec79
mov rcx, r15
call fcn.14006b710
mov r8, qword [r15 + 0x10]
mov rax, qword [r15 + 8]
mov byte [rax + r8], 0x2d
inc r8
mov qword [r15 + 0x10], r8
jmp 0x14004ec9e
xor r13d, r13d
mov rdi, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x168]
xor r9d, r9d
mov esi, 0
mov dword [rsp + 0x1a0], r14d
cmp r13d, r14d
jae 0x14004e9a5
mov r14d, 0x48
mov eax, pe_nt_image_headers64
mov edx, r13d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x170], r13d
mov rcx, rbx
mov rdi, rdx
jmp 0x14004ece5
inc rcx
cmp eax, ebp
jbe 0x14004ed7a
cmp rcx, r12
je case.0x14004b9f2.1
movzx ebp, byte [rcx]
test bpl, bpl
jns 0x14004ecda
mov edx, ebp
and edx, 0x1f
movzx r11d, byte [rcx + 1]
and r11d, 0x3f
cmp bpl, 0xdf
jbe 0x14004ed48
movzx r10d, byte [rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp bpl, 0xf0
jb 0x14004ed56
movzx ebp, byte [rcx + 3]
and edx, 7
shl edx, 0x12
shl r10d, 6
and ebp, 0x3f
or ebp, r10d
or ebp, edx
cmp ebp, 0x110000
je case.0x14004b9f2.1
add rcx, 4
jmp 0x14004ecdd
add rcx, 2
shl edx, 6
or edx, r11d
mov ebp, edx
jmp 0x14004ecdd
add rcx, 3
shl edx, 0xc
or r10d, edx
mov ebp, r10d
jmp 0x14004ecdd
inc rcx
cmp ebp, edx
mov r10d, edx
cmovb r10d, ebp
cmp eax, edx
cmovbe ebp, r10d
cmp rcx, r12
je 0x14004edf7
movzx edx, byte [rcx]
test dl, dl
jns 0x14004ed68
mov r10d, edx
and r10d, 0x1f
movzx esi, byte [rcx + 1]
and esi, 0x3f
cmp dl, 0xdf
jbe 0x14004edd4
movzx r11d, byte [rcx + 2]
shl esi, 6
and r11d, 0x3f
or r11d, esi
cmp dl, 0xf0
jb 0x14004ede4
movzx edx, byte [rcx + 3]
and r10d, 7
shl r10d, 0x12
shl r11d, 6
and edx, 0x3f
or edx, r11d
or edx, r10d
cmp edx, 0x110000
je 0x14004edf7
add rcx, 4
jmp 0x14004ed6b
add rcx, 2
shl r10d, 6
or r10d, esi
mov edx, r10d
jmp 0x14004ed6b
add rcx, 3
shl r10d, 0xc
or r11d, r10d
mov edx, r11d
jmp 0x14004ed6b
mov r10d, ebp
sub r10d, eax
lea ecx, [rdi + 1]
mov eax, r9d
not eax
xor edx, edx
div ecx
cmp r10d, eax
ja 0x14004f0e8
imul r10d, ecx
add r10d, r9d
mov r11d, r10d
mov rcx, qword [rsp + 0x168]
jmp 0x14004ee35
mov r10d, edi
mov r11d, r9d
cmp rcx, r12
je 0x14004f0b4
movzx eax, byte [rcx]
test al, al
js 0x14004ee41
inc rcx
jmp 0x14004eeb1
mov r10, rcx
mov ecx, eax
and ecx, 0x1f
movzx r9d, byte [r10 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x14004ee95
movzx edx, byte [r10 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp al, 0xf0
jb 0x14004eea3
movzx eax, byte [r10 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and eax, 0x3f
or eax, edx
or eax, ecx
cmp eax, 0x110000
mov r9d, r11d
je 0x14004f0e3
add r10, 4
mov rcx, r10
jmp 0x14004eeb4
add r10, 2
shl ecx, 6
or ecx, r9d
mov eax, ecx
jmp 0x14004eeae
add r10, 3
shl ecx, 0xc
or edx, ecx
mov eax, edx
mov rcx, r10
mov r9d, r11d
cmp eax, ebp
jae 0x14004eec1
inc r9d
je 0x14004f0e8
cmp eax, ebp
jne 0x14004ee26
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x100], rdi
lea edi, [r14 + 0x1a]
lea ecx, [r14 - 0x24]
neg ecx
cmp edi, 0x25
mov eax, 0x1a
cmovb ecx, eax
cmp r14d, 0x24
mov eax, 1
cmovae ecx, eax
cmp r9d, ecx
mov dword [rsp + 0x1b0], r9d
jae 0x14004efdc
mov eax, r9d
mov esi, 0x61
cmp eax, 0x1a
jb 0x14004ef26
mov esi, 0x16
cmp eax, 0x24
jae case.0x14004b9f2.1
cmp r8, qword [r15]
mov ebx, 0xd41d41d5
mov r12, qword [rsp + 0x30]
mov r13d, dword [rsp + 0x170]
jne 0x14004ef4d
mov rcx, r15
mov edi, eax
call fcn.14006b710
mov eax, edi
mov r8, qword [r15 + 0x10]
add esi, eax
mov rax, qword [r15 + 8]
mov byte [rax + r8], sil
inc r8
mov qword [r15 + 0x10], r8
mov rax, qword [rsp + 0x100]
mov r10d, eax
inc r10d
je case.0x14004b9f2.1
cmp eax, r13d
mov ecx, 2
mov eax, 0x2bc
cmove ecx, eax
xor r9d, r9d
mov eax, dword [rsp + 0x1b0]
xor edx, edx
div ecx
mov ecx, eax
xor edx, edx
div r10d
add eax, ecx
xor ecx, ecx
cmp eax, 0x1c8
jb 0x14004f07e
nop word cs:[rax + rax]
mov edx, eax
imul rdx, rbx
shr rdx, 0x20
mov r11d, eax
sub r11d, edx
shr r11d, 1
add r11d, edx
shr r11d, 5
add ecx, 0x24
cmp eax, 0x3e57
mov eax, r11d
ja 0x14004efb0
jmp 0x14004f081
mov r12d, r14d
neg r12d
mov r13d, 0x48
mov eax, r9d
jmp 0x14004f027
add ebx, esi
mov rcx, qword [r15 + 8]
mov byte [rcx + r8], bl
inc r8
lea ecx, [r12 + r13]
cmp r13d, edi
mov edx, 0x1a
cmovae ecx, edx
cmp r13d, r14d
mov edx, 1
cmovbe ecx, edx
mov qword [r15 + 0x10], r8
add r13d, 0x24
cmp eax, ecx
jb 0x14004ef0e
mov r9d, ecx
sub r9d, 0x24
je case.0x14004b9f2.1
sub eax, ecx
neg r9d
xor edx, edx
div r9d
mov esi, edx
add esi, ecx
mov ebx, 0x61
cmp esi, 0x1a
jb 0x14004f05a
mov ebx, 0x16
cmp esi, 0x24
jae case.0x14004b9f2.1
cmp r8, qword [r15]
jne 0x14004eff0
mov rcx, r15
mov r15d, eax
call fcn.14006b710
mov eax, r15d
mov r15, qword [rsp + 0x310]
mov r8, qword [r15 + 0x10]
jmp 0x14004eff0
mov r11d, eax
lea eax, [r11*4]
lea eax, [rax + rax*8]
add r11d, 0x26
xor edx, edx
div r11w
movzx r14d, ax
add r14d, ecx
mov r11d, r9d
mov edi, r10d
mov rcx, qword [rsp + 0x198]
cmp rcx, r12
jne 0x14004ee35
inc r9d
inc ebp
xor esi, esi
mov eax, ebp
mov edx, r10d
cmp r10d, dword [rsp + 0x1a0]
mov rdi, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x168]
jb 0x14004ecd2
jmp 0x14004e9a5
mov r10d, edi
jmp 0x14004f0b4
mov byte [rsp + 0x160], 1
xor esi, esi
mov rcx, qword [rsp + 0x1a8]
cmp r8, rcx
mov rdi, qword [rsp + 0x178]
jb 0x14004e9a5
test rcx, rcx
je 0x14004e997
mov byte [rsp + 0x160], 1
cmp r8, rcx
jbe 0x14004e99f
mov rax, qword [r15 + 8]
cmp byte [rax + rcx], 0xbf
jg 0x14004e99f
jmp case.0x14004b9f2.1
mov rbx, qword [rsp + 0x310]
mov rcx, rbx
mov r8, rdx
mov rdx, rsi
mov r15, r8
call fcn.14017bc20
mov rsi, qword [rbx + 0x10]
jmp 0x14004ec28
movzx eax, byte [rsp + 0x160]
mov byte [rdi], al
mov rax, qword [rsp + 0x108]
mov qword [rdi + 1], rax
mov eax, dword [rsp + 0x10f]
mov dword [rdi + 8], eax
jmp 0x14004c359