Function at 0x140036c2c
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x1400fe008]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov edi, dword [rbp + 0xd8]
xor r13d, r13d
mov r10d, r9d
mov ebx, dword [rbp + 0xe0]
mov r12, rdx
mov dword [rbp + 0x1c], r9d
mov r9d, r8d
mov dword [rbp + 0x18], r8d
mov rsi, rcx
mov qword [rbp + 0x10], rdx
mov r11d, 1
mov qword [rbp - 0x50], rcx
cmp byte [rdx + 8], r13b
je 0x140036d15
mov rax, qword [rdx + 0x30]
test rax, rax
je 0x140036ca7
mov dword [rax], r13d
mov rax, qword [rdx + 0x30]
mov qword [rax + 8], r13
jmp 0x140036d10
mov r9d, r13d
lea rax, [rcx + 0x11bbb8]
jmp 0x140036cba
add r9d, r11d
lea rax, [rax + 8]
cmp qword [rax], r12
jne 0x140036cb3
dec dword [rcx + 0x11bbb0]
mov eax, dword [rcx + 0x11bbb0]
sub eax, r9d
test eax, eax
jle 0x140036d0d
movsxd r8, eax
lea eax, [r9 + 1]
movsxd rcx, eax
add rcx, 0x23777
movsxd rax, r9d
add rax, 0x23777
shl r8, 3
lea rdx, [rsi + rcx*8]
lea rcx, [rsi + rax*8]
call fcn.140055390
mov r9d, dword [rbp + 0x18]
mov r11d, 1
mov r10d, dword [rbp + 0x1c]
jmp 0x140036d10
mov r9d, r8d
mov byte [r12 + 8], r13b
mov r14d, dword [rbp + 0xa8]
mov eax, pe_nt_image_headers64
mov ecx, r14d
mov dword [rbp - 0x80], r14d
sub ecx, 1
je 0x140036d49
sub ecx, 1
je 0x140036d41
cmp ecx, 1
je 0x140036d3c
mov r15d, r11d
jmp 0x140036d4f
mov r15d, eax
jmp 0x140036d4f
mov r15d, 8
jmp 0x140036d4f
mov r15d, 4
mov dword [r12], r9d
mov dword [r12 + 4], r10d
mov qword [r12 + 0x20], r13
mov dword [r12 + 0x28], r13d
mov ecx, dword [rsi + 0x1218b8]
test ecx, ecx
je 0x140036dcd
mov r8, qword [rsi + 0x11dbd0]
mov edx, r13d
mov eax, edx
add rax, rax
cmp dword [r8 + rax*8], r9d
je 0x140036d88
add edx, r11d
cmp edx, ecx
jb 0x140036d76
cmp edx, ecx
je 0x140036dcd
mov eax, edx
shl rax, 4
add rax, r8
mov qword [r12 + 0x20], rax
cmp edx, dword [rsi + 0x1218b8]
jae 0x140036dcd
mov r8d, r13d
mov rax, qword [rsi + 0x11dbd0]
lea ecx, [r8 + rdx]
add rcx, rcx
cmp dword [rax + rcx*8], r9d
jne 0x140036dcd
inc r8d
mov dword [r12 + 0x28], r8d
lea eax, [r8 + rdx]
cmp eax, dword [rsi + 0x1218b8]
jb 0x140036da5
xor edx, edx
mov r8d, r15d
shr r8d, 2
lea eax, [r8 + rbx]
div r15d
mov ecx, eax
mov word [r12 + 0xe], cx
cmp dword [rbp + 0xa0], r13d
jne 0x140036dfe
mov rbx, qword [rbp + 0xb0]
mov qword [rbp - 0x78], rbx
test rbx, rbx
jne 0x140036e33
xor edi, edi
mov dword [r12 + 0xa], edi
mov dword [r12 + 0x10], edi
lea r15d, [rdi + 1]
test byte [rsi + 0x1218f4], r15b
je 0x14003b4d2
movzx eax, word [rsi + 0x1218f8]
add ax, ax
add ax, cx
mov word [r12 + 0xe], ax
jmp 0x14003b4d2
mov eax, dword [rbp + 0xd0]
xor edx, edx
mov r10d, dword [rbp + 0xc0]
add eax, r8d
div r15d
xor edx, edx
mov word [r12 + 0xa], ax
mov eax, dword [rbp + 0xb8]
dec eax
add eax, r15d
div r15d
xor edx, edx
mov word [r12 + 0x10], ax
mov eax, edi
div r15d
add r10d, edx
mov word [r12 + 0xc], ax
mov dword [rbp - 0x30], edx
xor edx, edx
mov dword [rbp - 0x10], r10d
lea eax, [r10 - 1]
add eax, r15d
div r15d
mov word [r12 + 0x12], ax
mov ecx, dword [rsi + 0x1218f4]
and ecx, r11d
je 0x140036ea8
mov eax, dword [rsi + 0x1218f8]
mov dword [rbp + 4], eax
add eax, eax
mov dword [rbp + 8], eax
jmp 0x140036eb0
mov dword [rbp + 4], r13d
mov dword [rbp + 8], r13d
movzx r9d, word [rsi + 0x1218ae]
xor r11d, r11d
mov r13d, r9d
mov edi, r9d
imul r13d, dword [r12 + 0x18]
mov edx, 0xff
imul edi, dword [r12 + 0x1c]
cmp dword [rsi + 0x1221f4], r11d
jne 0x140036f0b
mov eax, dword [rsi + 0x11dbc8]
mov edx, eax
imul eax, edi
imul edx, r9d
movsxd rcx, eax
add rcx, qword [rsi + 0x11dbc0]
movsxd r8, edx
test edx, edx
je 0x140036fe9
xor edx, edx
call fcn.1400bfdc0
jmp 0x140036fe5
cmp byte [rsi + 0x121d85], 8
je 0x140036f9c
cmp dword [rsi + 0x1221cc], r11d
jne 0x140036f9c
test ecx, ecx
jne 0x140036f9c
mov dword [rsp + 0x40], r11d
lea rcx, [rsi + 0x121d80]
mov dword [rsp + 0x38], edx
mov r8d, edi
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], edx
mov edx, r13d
mov dword [rsp + 0x20], r9d
call fcn.1400495b4
mov edx, 1
test byte [rsi + 0x1218f4], dl
je 0x140036fe5
mov edx, dword [rsi + 0x121d48]
lea rcx, [rsi + 0x121d80]
movzx r9d, word [rsi + 0x1218ae]
xor eax, eax
mov dword [rsp + 0x40], eax
add edx, r13d
mov eax, 0xff
mov r8d, edi
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r9d
call fcn.1400495b4
jmp 0x140036fe5
lea rcx, [rsi + 0x121d80]
mov dword [rsp + 0x20], r9d
mov r8d, edi
mov edx, r13d
call fcn.140049790
mov edx, 1
test byte [rsi + 0x1218f4], dl
je 0x140036fe5
mov edx, dword [rsi + 0x121d48]
lea rcx, [rsi + 0x121d80]
movzx r9d, word [rsi + 0x1218ae]
add edx, r13d
mov r8d, edi
mov dword [rsp + 0x20], r9d
call fcn.140049790
mov r10d, dword [rbp - 0x10]
mov r11d, dword [rsi + 0x1221f4]
lea r9d, [r13 + 1]
mov eax, 1
lea edx, [rdi + 1]
cmp r11d, eax
cmovne r9d, r13d
cmovne edx, edi
mov dword [rbp - 0x10], edx
mov r13d, eax
mov dword [rbp + 0xc], r9d
cmp r14d, 4
je 0x1400382ac
test r11d, r11d
jne 0x14003702c
lea eax, [r14 - 7]
cmp eax, r13d
jbe 0x1400382ac
cmp r15d, r13d
jbe 0x1400382a0
movzx eax, word [r12 + 0x10]
xor edx, edx
mov r9, qword [rsi + 0x121d58]
add eax, r13d
shr eax, 1
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x58], r9
lea r8d, [rax + rax]
mov eax, r10d
div r15d
lea edi, [r8 + 4]
mov dword [rbp - 0x40], r8d
mov r10d, eax
mov r13d, edx
movzx eax, word [r12 + 0x12]
add eax, 2
mov dword [rbp - 0x44], edx
imul eax, edi
mov dword [rbp - 0x38], r10d
mov dword [rbp - 0x48], edi
test eax, eax
je 0x1400370a5
mov r8d, eax
xor edx, edx
mov rcx, r9
call fcn.1400bfdc0
mov r11d, dword [rsi + 0x1221f4]
mov r8d, dword [rbp - 0x40]
mov r10d, dword [rbp - 0x38]
mov r9, qword [rsp + 0x58]
mov edx, dword [rbp + 0xc8]
lea rcx, [rdi + r9]
mov eax, edi
mov rdi, rcx
mov qword [rbp - 0x68], rax
mov eax, dword [rbp - 0x30]
imul r14d, edx, 7
lea r9d, [rdx + rdx*2]
imul eax, edx
add r9d, r9d
mov qword [rbp + 0x20], rcx
mov qword [rsp + 0x78], rcx
lea ecx, [rdx + rdx]
mov dword [rbp - 0x18], ecx
mov dword [rbp - 0x54], r14d
lea r14d, [rdx + rdx*4]
add r14d, r14d
mov dword [rbp - 0x58], r9d
mov dword [rbp - 0x38], r14d
sub rbx, rax
imul r14d, edx, 0xb
mov eax, r15d
imul eax, edx
mov qword [rbp - 0x78], rbx
mov dword [rbp - 0x30], r14d
lea r14d, [rdx + rdx*2]
shl r14d, 2
mov dword [rbp - 0x28], r14d
imul r14d, edx, 0xd
mov dword [rsp + 0x70], r14d
imul r14d, edx, 0xe
mov dword [rbp], r14d
imul r14d, edx, 0xf
mov dword [rbp - 0x20], r14d
mov r14d, dword [rbp - 0x80]
cmp r15d, 4
je 0x140037eb8
cmp r15d, 8
je 0x140037aaf
mov ecx, pe_nt_image_headers64
cmp r15d, ecx
jne 0x140038293
xor r11d, r11d
cmp dword [rsi + 0x1221f4], r11d
je 0x140037623
cmp dword [rsi + 0x1221c8], ecx
je 0x140037623
lea r14d, [rcx - 8]
mov dword [rbp - 0x80], r14d
test r10d, r10d
je 0x140037589
mov qword [rsp + 0x68], rax
mov rax, qword [rbp - 0x68]
mov ecx, r10d
mov r10, qword [rsp + 0x68]
mov qword [rsp + 0x58], rcx
mov dword [rbp - 0x18], r11d
test r8d, r8d
je 0x140037555
mov qword [rbp - 0x70], rdi
mov r12d, dword [rbp - 0x28]
lea eax, [r11 + r11]
mov ecx, eax
lea r14d, [rdx + rdx*8]
add eax, dword [rbp - 0x20]
lea esi, [rdx*8]
mov r13d, dword [rbp - 0x30]
lea r11d, [rdx + rdx*4]
mov r15d, dword [rbp - 0x38]
lea r10d, [rdx*4]
mov edi, dword [rbp - 0x54]
lea ebx, [rcx + r9]
mov dword [rbp - 8], eax
lea r9d, [rdx + rdx*2]
mov rax, qword [rbp - 0x78]
lea r8d, [rdx + rdx]
add r9d, ecx
mov qword [rsp + 0x60], rcx
add edx, ecx
mov dword [rbp - 0x60], r9d
add r12d, ecx
add r13d, ecx
add r15d, ecx
add r14d, ecx
add esi, ecx
add edi, ecx
add r11d, ecx
add r10d, ecx
add r8d, ecx
lea ecx, [rdx + 1]
movzx eax, byte [rcx + rax]
lea rcx, [0x140000000]
movzx eax, byte [rax + rcx + 0x171c30]
lea ecx, [r8 + 1]
mov dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea rcx, [0x140000000]
movzx eax, byte [rax + rcx + 0x171c30]
lea ecx, [r9 + 1]
add dword [rsp + 0x50], eax
lea r9, [0x140000000]
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [r10 + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [r11 + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [rbx + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [rdi + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [rsi + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [r14 + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [r15 + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
lea ecx, [r13 + 1]
movzx eax, byte [rcx + rax]
lea ecx, [r12 + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov r9d, dword [rsp + 0x70]
mov rax, qword [rbp - 0x78]
inc r9d
add ecx, r9d
mov r9d, dword [rbp]
inc r9d
movzx eax, byte [rcx + rax]
lea rcx, [0x140000000]
movzx eax, byte [rax + rcx + 0x171c30]
add dword [rsp + 0x50], eax
mov rcx, qword [rsp + 0x60]
mov rax, qword [rbp - 0x78]
add ecx, r9d
lea r9, [0x140000000]
movzx eax, byte [rcx + rax]
mov ecx, dword [rbp - 8]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
inc ecx
movzx eax, byte [rcx + rax]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
inc ecx
movzx eax, byte [rcx + rax]
mov rcx, qword [rbp - 0x78]
movzx eax, byte [rax + r9 + 0x171c30]
movzx ecx, byte [rdx + rcx]
add dword [rsp + 0x50], eax
mov edx, dword [rsp + 0x50]
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
mov eax, r8d
mov r8, qword [rbp - 0x78]
movzx ecx, byte [rax + r8]
movzx eax, byte [rcx + r9 + 0x171c30]
mov r9d, dword [rbp - 0x60]
add edx, eax
movzx ecx, byte [r9 + r8]
lea r9, [0x140000000]
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [r10 + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [r11 + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
mov eax, ebx
mov rbx, r8
movzx ecx, byte [rax + r8]
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [rdi + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [rsi + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [r14 + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [r15 + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [r13 + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
movzx ecx, byte [r12 + r8]
mov r8, qword [rsp + 0x60]
mov r11d, dword [rbp - 0x18]
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
mov eax, dword [rsp + 0x70]
add eax, r8d
movzx ecx, byte [rax + rbx]
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
mov eax, dword [rbp]
add eax, r8d
movzx ecx, byte [rax + rbx]
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
mov eax, dword [rbp - 8]
movzx ecx, byte [rax + rbx]
movzx eax, byte [rcx + r9 + 0x171c30]
mov ecx, 0xff
add edx, eax
movzx eax, byte [r8 + rbx]
mov r8d, dword [rbp - 0x40]
movzx eax, byte [rax + r9 + 0x171c30]
mov r9d, dword [rbp - 0x58]
add edx, eax
cmp edx, 0x100
movzx eax, dl
mov edx, dword [rbp + 0xc8]
cmove eax, ecx
mov rcx, qword [rbp - 0x70]
mov byte [rcx], al
mov eax, 1
add r11d, eax
add rcx, rax
mov dword [rbp - 0x18], r11d
mov qword [rbp - 0x70], rcx
cmp r11d, r8d
jb 0x14003719f
mov rdi, qword [rsp + 0x78]
mov rax, qword [rbp - 0x68]
mov rcx, qword [rsp + 0x58]
mov r10, qword [rsp + 0x68]
add rbx, r10
add rdi, rax
sub rcx, 1
mov qword [rbp - 0x78], rbx
mov qword [rsp + 0x58], rcx
mov r11d, 0
mov qword [rsp + 0x78], rdi
jne 0x14003718e
mov rsi, qword [rbp - 0x50]
mov r14d, dword [rbp - 0x80]
mov r12, qword [rbp + 0x10]
mov r13d, dword [rbp - 0x44]
mov eax, 1
cmp r13d, eax
jb 0x140038293
mov eax, edx
mov esi, 1
mov qword [rsp + 0x58], rax
mov r14d, 0xff
mov r15d, r13d
jmp 0x1400375b1
xor r11d, r11d
test r8d, r8d
je 0x14003760e
mov r10, rdi
lea r12, [0x140000000]
lea edx, [r11 + r11]
movzx ecx, byte [rdx + rbx]
lea eax, [rdx + 1]
movzx eax, byte [rax + rbx]
movzx r9d, byte [rax + r12 + 0x171c30]
movzx eax, byte [rcx + r12 + 0x171c30]
movzx ecx, byte [r10]
add r9d, eax
lea eax, [r9 + rcx]
cmp eax, 0x100
jb 0x1400375f8
mov r9b, r14b
jmp 0x1400375fb
add r9b, cl
mov byte [r10], r9b
add r11d, esi
add r10, rsi
cmp r11d, r8d
jb 0x1400375c0
mov rax, qword [rsp + 0x58]
add rbx, rax
sub r15, rsi
jne 0x1400375ae
mov rsi, qword [rbp - 0x50]
mov r12, qword [rbp + 0x10]
jmp 0x14003828f
mov r14d, 6
mov dword [rbp - 0x80], r14d
lea r15d, [r14 - 5]
test r10d, r10d
je 0x140037a4b
mov qword [rsp + 0x68], rax
mov rax, qword [rbp - 0x68]
mov ecx, r10d
mov r10, qword [rsp + 0x68]
mov qword [rbp - 0x70], rcx
mov dword [rbp - 8], r11d
test r8d, r8d
je 0x140037a19
mov qword [rsp + 0x58], rdi
mov r12d, dword [rbp - 0x28]
lea eax, [r11 + r11]
mov ecx, eax
lea r14d, [rdx + rdx*8]
add eax, dword [rbp - 0x20]
lea esi, [rdx*8]
mov r13d, dword [rbp - 0x30]
lea r11d, [rdx + rdx*4]
mov r15d, dword [rbp - 0x38]
lea r10d, [rdx*4]
mov edi, dword [rbp - 0x54]
lea ebx, [rcx + r9]
mov dword [rbp - 0x18], eax
lea r9d, [rdx + rdx*2]
mov rax, qword [rbp - 0x78]
lea r8d, [rdx + rdx]
add r9d, ecx
mov qword [rsp + 0x60], rcx
add edx, ecx
mov dword [rbp - 0x60], r9d
add r12d, ecx
add r13d, ecx
add r15d, ecx
add r14d, ecx
add esi, ecx
add edi, ecx
add r11d, ecx
add r10d, ecx
add r8d, ecx
lea ecx, [rdx + 1]
movzx eax, byte [rcx + rax]
lea rcx, [0x140000000]
movzx eax, byte [rax + rcx + 0x171c30]
lea ecx, [r8 + 1]
mov dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea rcx, [0x140000000]
movzx eax, byte [rax + rcx + 0x171c30]
lea ecx, [r9 + 1]
add dword [rsp + 0x50], eax
lea r9, [0x140000000]
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [r10 + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [r11 + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [rbx + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [rdi + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [rsi + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [r14 + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
lea ecx, [r15 + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
lea ecx, [r13 + 1]
movzx eax, byte [rcx + rax]
lea ecx, [r12 + 1]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
movzx eax, byte [rcx + rax]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov r9d, dword [rsp + 0x70]
mov rax, qword [rbp - 0x78]
inc r9d
add ecx, r9d
mov r9d, dword [rbp]
inc r9d
movzx eax, byte [rcx + rax]
lea rcx, [0x140000000]
movzx eax, byte [rax + rcx + 0x171c30]
add dword [rsp + 0x50], eax
mov rcx, qword [rsp + 0x60]
mov rax, qword [rbp - 0x78]
add ecx, r9d
lea r9, [0x140000000]
movzx eax, byte [rcx + rax]
mov ecx, dword [rbp - 0x18]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
inc ecx
movzx eax, byte [rcx + rax]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rax + r9 + 0x171c30]
add dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x78]
inc ecx
movzx eax, byte [rcx + rax]
mov rcx, qword [rbp - 0x78]
movzx eax, byte [rax + r9 + 0x171c30]
movzx ecx, byte [rdx + rcx]
add dword [rsp + 0x50], eax
mov edx, dword [rsp + 0x50]
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
mov eax, r8d
mov r8, qword [rbp - 0x78]
movzx ecx, byte [rax + r8]
movzx eax, byte [rcx + r9 + 0x171c30]
mov r9d, dword [rbp - 0x60]
add edx, eax
movzx ecx, byte [r9 + r8]
lea r9, [0x140000000]
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [r10 + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [r11 + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
mov eax, ebx
mov rbx, r8
movzx ecx, byte [rax + r8]
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [rdi + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [rsi + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [r14 + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [r15 + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
movzx ecx, byte [r13 + r8]
add edx, eax
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
movzx ecx, byte [r12 + r8]
mov r15d, 1
mov r8, qword [rsp + 0x60]
mov r11d, dword [rbp - 8]
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
mov eax, dword [rsp + 0x70]
add eax, r8d
movzx ecx, byte [rax + rbx]
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
mov eax, dword [rbp]
add eax, r8d
movzx ecx, byte [rax + rbx]
movzx eax, byte [rcx + r9 + 0x171c30]
add edx, eax
mov eax, dword [rbp - 0x18]
movzx ecx, byte [rax + rbx]
movzx eax, byte [rcx + r9 + 0x171c30]
mov ecx, 0xff
add edx, eax
movzx eax, byte [r8 + rbx]
mov r8d, dword [rbp - 0x40]
movzx eax, byte [rax + r9 + 0x171c30]
mov r9d, dword [rbp - 0x58]
add edx, eax
cmp edx, 0x100
movzx eax, dl
mov edx, dword [rbp + 0xc8]
cmove eax, ecx
mov rcx, qword [rsp + 0x58]
add r11d, r15d
mov dword [rbp - 8], r11d
mov byte [rcx], al
add rcx, r15
mov qword [rsp + 0x58], rcx
cmp r11d, r8d
jb 0x140037661
mov rdi, qword [rsp + 0x78]
mov rax, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x70]
mov r10, qword [rsp + 0x68]
add rbx, r10
add rdi, rax
sub rcx, r15
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x70], rcx
mov r11d, 0
mov qword [rsp + 0x78], rdi
jne 0x14003764f
mov rsi, qword [rbp - 0x50]
mov r14d, dword [rbp - 0x80]
mov r12, qword [rbp + 0x10]
mov r13d, dword [rbp - 0x44]
xor r9d, r9d
test r13d, r13d
je 0x140038293
mov r10d, r13d
lea r13, [0x140000000]
mov r11d, edx
test r8d, r8d
je 0x140037a8b
mov rdx, rbx
mov r9d, r8d
sub rdx, rdi
mov rcx, rdi
movzx eax, byte [rdx + rcx]
mov al, byte [rax + r13 + 0x171c30]
add byte [rcx], al
add rcx, r15
sub r9, r15
jne 0x140037a75
add rbx, r11
sub r10, r15
jne 0x140037a64
test r8d, r8d
je 0x140038293
mov eax, r8d
shr byte [rdi], 2
add rdi, r15
sub rax, r15
jne 0x140037a9f
jmp 0x140038293
test r11d, r11d
je 0x140037c9b
cmp dword [rsi + 0x1221c8], 0x10
je 0x140037c9b
mov r14d, 7
mov dword [rbp - 0x80], r14d
lea r15d, [r14 - 6]
test r10d, r10d
je 0x140037c4e
mov qword [rsp + 0x68], rax
xor esi, esi
mov r11, qword [rsp + 0x68]
mov rax, qword [rbp - 0x68]
mov qword [rbp - 0x70], r10
test r8d, r8d
je 0x140037c26
mov r15d, dword [rbp - 0x54]
lea eax, [rdx + rdx*4]
sub eax, r9d
sub r15d, r9d
mov dword [rbp - 0x60], eax
mov r11, rdi
mov r12d, dword [rbp - 0x60]
lea eax, [rdx*4]
sub eax, r9d
mov r10d, r9d
mov dword [rbp - 0x38], eax
lea eax, [rdx + rdx*2]
mov esi, dword [rbp - 0x38]
sub eax, r9d
mov dword [rbp - 0x30], eax
sub edx, r9d
mov r14d, dword [rbp - 0x30]
mov eax, ecx
sub eax, r9d
mov r9d, edx
mov dword [rbp - 0x28], eax
mov rax, rbx
mov r13d, dword [rbp - 0x28]
sub rax, rdi
mov qword [rsp + 0x60], rax
mov rdi, qword [rsp + 0x60]
mov eax, r8d
mov qword [rsp + 0x58], rax
lea eax, [r9 + r10]
movzx edx, byte [rax + rbx]
lea rcx, [0x140000000]
lea eax, [r10 + r13]
movzx eax, byte [rax + rbx]
mov r8b, byte [rdx + rcx + 0x171c30]
lea rdx, [0x140000000]
add r8b, byte [rax + rdx + 0x171c30]
lea eax, [r14 + r10]
movzx eax, byte [rax + rbx]
add r8b, byte [rax + rdx + 0x171c30]
lea eax, [rsi + r10]
movzx eax, byte [rax + rbx]
add r8b, byte [rax + rdx + 0x171c30]
lea eax, [r12 + r10]
movzx eax, byte [rax + rbx]
add r8b, byte [rax + rdx + 0x171c30]
lea eax, [r15 + r10]
movzx eax, byte [rax + rbx]
add r8b, byte [rax + rdx + 0x171c30]
mov eax, r10d
movzx ecx, byte [rax + rbx]
movzx eax, byte [r11 + rdi]
add r8b, byte [rcx + rdx + 0x171c30]
add r8b, byte [rax + rdx + 0x171c30]
mov eax, 1
mov byte [r11], r8b
add r10d, eax
add r11, rax
sub qword [rsp + 0x58], rax
jne 0x140037b5a
mov rdi, qword [rsp + 0x78]
xor esi, esi
mov edx, dword [rbp + 0xc8]
mov r8d, dword [rbp - 0x40]
mov r9d, dword [rbp - 0x58]
mov ecx, dword [rbp - 0x18]
lea r15d, [rsi + 1]
mov rax, qword [rbp - 0x68]
mov r10, qword [rbp - 0x70]
mov r11, qword [rsp + 0x68]
add rdi, rax
add rbx, r11
sub r10, r15
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x70], r10
jne 0x140037af0
mov rsi, qword [rbp - 0x50]
mov r14d, dword [rbp - 0x80]
mov r12, qword [rbp + 0x10]
mov r13d, dword [rbp - 0x44]
cmp r13d, r15d
jb 0x140038293
mov r10d, r13d
xor r9d, r9d
lea r13, [0x140000000]
mov r11d, edx
test r8d, r8d
je 0x140037c8e
mov rdx, rbx
mov r9d, r8d
sub rdx, rdi
mov rcx, rdi
movzx eax, byte [rdx + rcx]
mov al, byte [rax + r13 + 0x171c30]
add byte [rcx], al
add rcx, r15
sub r9, r15
jne 0x140037c78
add rbx, r11
sub r10, r15
jne 0x140037c67
jmp 0x140038293
mov r14d, 6
mov dword [rbp - 0x80], r14d
lea r15d, [r14 - 5]
test r10d, r10d
je 0x140037e54
mov qword [rsp + 0x58], rax
xor esi, esi
mov r11, qword [rsp + 0x58]
mov rax, qword [rbp - 0x68]
mov qword [rsp + 0x68], r10
test r8d, r8d
je 0x140037e2b
mov r15d, dword [rbp - 0x54]
lea eax, [rdx + rdx*4]
sub eax, r9d
sub r15d, r9d
mov dword [rbp - 0x60], eax
mov r11, rdi
mov r12d, dword [rbp - 0x60]
lea eax, [rdx*4]
sub eax, r9d
mov r10d, r9d
mov dword [rbp - 0x38], eax
lea eax, [rdx + rdx*2]
mov esi, dword [rbp - 0x38]
sub eax, r9d
mov dword [rbp - 0x30], eax
sub edx, r9d
mov r14d, dword [rbp - 0x30]
mov eax, ecx
sub eax, r9d
mov dword [rbp - 0x28], eax
mov rax, rbx
mov r13d, dword [rbp - 0x28]
sub rax, rdi
mov edi, r8d
mov r9, rax
mov r8d, edx
lea eax, [r8 + r10]
movzx eax, byte [rax + rbx]
lea rcx, [0x140000000]
movzx edx, byte [rax + rcx + 0x171c30]
lea eax, [r10 + r13]
movzx eax, byte [rax + rbx]
lea rcx, [0x140000000]
movzx eax, byte [rax + rcx + 0x171c30]
lea rcx, [0x140000000]
add edx, eax
lea eax, [r14 + r10]
movzx eax, byte [rax + rbx]
movzx eax, byte [rax + rcx + 0x171c30]
lea rcx, [0x140000000]
add edx, eax
lea eax, [rsi + r10]
movzx eax, byte [rax + rbx]
movzx eax, byte [rax + rcx + 0x171c30]
lea rcx, [0x140000000]
add edx, eax
lea eax, [r12 + r10]
movzx eax, byte [rax + rbx]
movzx eax, byte [rax + rcx + 0x171c30]
lea rcx, [0x140000000]
add edx, eax
lea eax, [r15 + r10]
movzx eax, byte [rax + rbx]
movzx eax, byte [rax + rcx + 0x171c30]
add edx, eax
mov eax, r10d
movzx ecx, byte [rax + rbx]
lea rax, [0x140000000]
movzx eax, byte [rcx + rax + 0x171c30]
lea rcx, [0x140000000]
add edx, eax
movzx eax, byte [r9 + r11]
movzx eax, byte [rax + rcx + 0x171c30]
add edx, eax
mov eax, 1
shr edx, 2
add r10d, eax
mov byte [r11], dl
add r11, rax
sub rdi, rax
jne 0x140037d25
mov rdi, qword [rsp + 0x78]
xor esi, esi
mov edx, dword [rbp + 0xc8]
mov r8d, dword [rbp - 0x40]
mov r9d, dword [rbp - 0x58]
mov ecx, dword [rbp - 0x18]
lea r15d, [rsi + 1]
mov rax, qword [rbp - 0x68]
mov r10, qword [rsp + 0x68]
mov r11, qword [rsp + 0x58]
add rdi, rax
add rbx, r11
sub r10, r15
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x68], r10
jne 0x140037cc7
mov rsi, qword [rbp - 0x50]
mov r14d, dword [rbp - 0x80]
mov r12, qword [rbp + 0x10]
mov r13d, dword [rbp - 0x44]
xor r9d, r9d
test r13d, r13d
je 0x140038293
mov r10d, r13d
lea r13, [0x140000000]
mov r11d, edx
test r8d, r8d
je 0x140037e94
mov rdx, rbx
mov r9d, r8d
sub rdx, rdi
mov rcx, rdi
movzx eax, byte [rdx + rcx]
mov al, byte [rax + r13 + 0x171c30]
add byte [rcx], al
add rcx, r15
sub r9, r15
jne 0x140037e7e
add rbx, r11
sub r10, r15
jne 0x140037e6d
test r8d, r8d
je 0x140038293
mov eax, r8d
shr byte [rdi], 2
add rdi, r15
sub rax, r15
jne 0x140037ea8
jmp 0x140038293
xor r9d, r9d
test r11d, r11d
je 0x1400380bb
cmp dword [rsi + 0x1221c8], 0x10
je 0x1400380bb
lea r14d, [r9 + 7]
mov dword [rbp - 0x80], r14d
test r10d, r10d
je 0x14003803c
mov r12d, dword [rsp + 0x50]
lea esi, [rdx + rdx]
mov qword [rsp + 0x58], rax
lea r9d, [r14 - 6]
mov r8, qword [rsp + 0x58]
mov rax, qword [rbp - 0x68]
mov ecx, r10d
xor r10d, r10d
mov qword [rsp + 0x68], rcx
mov r15d, r10d
test r12d, r12d
je 0x140038015
lea r13d, [rdx + rdx*2]
mov ecx, edx
sub r13d, esi
mov r14, rbx
sub ecx, esi
mov dword [rbp - 0x60], ecx
lea eax, [r15 + rsi]
mov edx, 0xf0
mov r9d, eax
lea r11d, [r15 + r15]
add eax, r13d
mov r8d, eax
lea r10d, [r9 + rcx]
movzx ecx, byte [rax + rbx]
movzx eax, byte [r9 + rbx]
and rcx, rdx
and rax, rdx
lea rdx, [0x140000000]
mov dl, byte [rcx + rdx + 0x171c30]
lea rcx, [0x140000000]
add dl, byte [rax + rcx + 0x171c30]
movzx eax, byte [r10 + rbx]
and eax, 0xf0
add dl, byte [rax + rcx + 0x171c30]
movzx eax, byte [r14]
and eax, 0xf0
add dl, byte [rax + rcx + 0x171c30]
shl dl, 2
mov byte [r11 + rdi], dl
movzx ecx, byte [r8 + rbx]
lea r8, [0x140000000]
movzx eax, byte [r9 + rbx]
and ecx, 0xf
and eax, 0xf
mov dl, byte [rcx + r8 + 0x171c30]
add dl, byte [rax + r8 + 0x171c30]
movzx eax, byte [r10 + rbx]
mov ecx, dword [rbp - 0x60]
and eax, 0xf
add dl, byte [rax + r8 + 0x171c30]
movzx eax, byte [r14]
and eax, 0xf
add dl, byte [rax + r8 + 0x171c30]
lea eax, [r11 + 1]
shl dl, 2
mov byte [rax + rdi], dl
mov eax, 1
add r15d, eax
add r14, rax
cmp r15d, r12d
jb 0x140037f24
mov edx, dword [rbp + 0xc8]
mov r9d, 1
mov rax, qword [rbp - 0x68]
xor r10d, r10d
mov rcx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x58]
add rbx, r8
add rdi, rax
sub rcx, r9
mov qword [rsp + 0x68], rcx
jne 0x140037f07
mov rsi, qword [rbp - 0x50]
xor r9d, r9d
mov r14d, dword [rbp - 0x80]
mov r12, qword [rbp + 0x10]
mov r13d, dword [rbp - 0x44]
mov eax, 1
cmp r13d, eax
jb 0x140038293
mov r8d, dword [rsp + 0x50]
mov esi, eax
mov r15d, edx
mov r11d, r13d
mov r10d, r9d
test r8d, r8d
je 0x1400380aa
mov r9, rbx
lea r13, [0x140000000]
movzx eax, byte [r9]
lea edx, [r10 + r10]
and eax, 0xf0
lea ecx, [rdx + 1]
add r10d, esi
mov al, byte [rax + r13 + 0x171c30]
shl al, 2
add byte [rdx + rdi], al
movzx eax, byte [r9]
add r9, rsi
and eax, 0xf
mov al, byte [rax + r13 + 0x171c30]
shl al, 2
add byte [rcx + rdi], al
cmp r10d, r8d
jb 0x140038069
xor r9d, r9d
add rbx, r15
sub r11, rsi
jne 0x140038057
mov rsi, qword [rbp - 0x50]
jmp 0x140038293
mov r14d, 6
mov dword [rbp - 0x80], r14d
test r10d, r10d
je 0x140038222
mov esi, dword [rsp + 0x50]
lea r12d, [rdx + rdx]
mov qword [rsp + 0x58], rax
lea r9d, [r14 - 5]
mov r8, qword [rsp + 0x58]
mov rax, qword [rbp - 0x68]
mov ecx, r10d
xor r10d, r10d
mov qword [rsp + 0x68], rcx
mov r15d, r10d
test esi, esi
je 0x1400381fb
lea r13d, [rdx + rdx*2]
mov ecx, edx
sub r13d, r12d
mov r14, rbx
sub ecx, r12d
mov dword [rbp - 0x60], ecx
lea eax, [r15 + r12]
mov edx, 0xf0
mov r9d, eax
lea r11d, [r15 + r15]
add eax, r13d
mov r8d, eax
lea r10d, [r9 + rcx]
movzx ecx, byte [rax + rbx]
movzx eax, byte [r14]
and rcx, rdx
and rax, rdx
lea rdx, [0x140000000]
mov dl, byte [rcx + rdx + 0x171c30]
lea rcx, [0x140000000]
add dl, byte [rax + rcx + 0x171c30]
movzx eax, byte [r9 + rbx]
and eax, 0xf0
add dl, byte [rax + rcx + 0x171c30]
movzx eax, byte [r10 + rbx]
and eax, 0xf0
add dl, byte [rax + rcx + 0x171c30]
mov byte [r11 + rdi], dl
movzx eax, byte [r14]
movzx ecx, byte [r8 + rbx]
and eax, 0xf
lea r8, [0x140000000]
and ecx, 0xf
mov dl, byte [rcx + r8 + 0x171c30]
add dl, byte [rax + r8 + 0x171c30]
movzx eax, byte [r9 + rbx]
mov ecx, dword [rbp - 0x60]
and eax, 0xf
add dl, byte [rax + r8 + 0x171c30]
movzx eax, byte [r10 + rbx]
and eax, 0xf
add dl, byte [rax + r8 + 0x171c30]
lea eax, [r11 + 1]
mov byte [rax + rdi], dl
mov eax, 1
add r15d, eax
add r14, rax
cmp r15d, esi
jb 0x140038110
mov edx, dword [rbp + 0xc8]
mov r9d, 1
mov rax, qword [rbp - 0x68]
xor r10d, r10d
mov rcx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x58]
add rbx, r8
add rdi, rax
sub rcx, r9
mov qword [rsp + 0x68], rcx
jne 0x1400380f3
mov rsi, qword [rbp - 0x50]
xor r9d, r9d
mov r14d, dword [rbp - 0x80]
mov r12, qword [rbp + 0x10]
mov r13d, dword [rbp - 0x44]
mov eax, 1
cmp r13d, eax
jb 0x140038293
mov r8d, dword [rsp + 0x50]
mov r14d, eax
mov r15d, edx
mov r11d, r13d
mov r10d, r9d
test r8d, r8d
je 0x140038287
mov r9, rbx
lea r13, [0x140000000]
movzx eax, byte [r9]
lea edx, [r10 + r10]
and eax, 0xf0
lea ecx, [rdx + 1]
add r10d, r14d
mov al, byte [rax + r13 + 0x171c30]
add byte [rdx + rdi], al
movzx eax, byte [r9]
add r9, r14
and eax, 0xf
mov al, byte [rax + r13 + 0x171c30]
add byte [rcx + rdi], al
cmp r10d, r8d
jb 0x14003824c
xor r9d, r9d
add rbx, r15
sub r11, r14
jne 0x14003823a
mov r14d, dword [rbp - 0x80]
mov rbx, qword [rbp + 0x20]
mov r8d, dword [rbp - 0x48]
jmp 0x14003851b
mov r8d, dword [rbp + 0xc8]
jmp 0x140038526
mov eax, dword [rsi + 0x121d60]
xor edx, edx
movzx r8d, word [r12 + 0x10]
movzx edi, word [r12 + 0x12]
mov dword [rbp - 0x48], r8d
test eax, eax
je 0x1400382e4
mov rcx, qword [rsi + 0x121d58]
mov r8d, eax
call fcn.1400bfdc0
mov r11d, dword [rsi + 0x1221f4]
xor edx, edx
mov r8d, dword [rbp - 0x48]
mov r9, qword [rsi + 0x121d58]
mov ecx, r14d
sub ecx, 4
je 0x14003839e
sub ecx, 3
je 0x140038358
cmp ecx, 1
jne 0x140038514
cmp dx, di
jae 0x14003850a
mov r14d, dword [rbp + 0xc8]
mov r11d, r8d
test r8d, r8d
je 0x140038348
mov rdx, rbx
lea r15, [0x140000000]
sub rdx, r9
mov rcx, r9
mov r10, r11
movzx eax, byte [rdx + rcx]
mov al, byte [rax + r15 + 0x171d40]
mov byte [rcx], al
add rcx, r13
sub r10, r13
jne 0x140038330
xor edx, edx
add rbx, r14
add r9, r11
sub rdi, r13
jne 0x140038318
jmp 0x14003850a
cmp dx, di
jae 0x14003850a
mov r14d, dword [rbp + 0xc8]
mov r11d, r8d
test r8d, r8d
je 0x14003838e
mov rdx, rbx
mov rcx, r9
sub rdx, r9
mov r10, r11
mov al, byte [rdx + rcx]
shr al, 2
mov byte [rcx], al
add rcx, r13
sub r10, r13
jne 0x14003837c
xor edx, edx
add rbx, r14
add r9, r11
sub rdi, r13
jne 0x14003836b
jmp 0x14003850a
mov r10d, r8d
mov r14d, r8d
shr r10d, 1
lea eax, [r10 + r10]
sub r14d, eax
test r11d, r11d
je 0x140038467
cmp dx, di
jae 0x14003845c
mov r13d, dword [rbp + 0xc8]
lea r12, [0x140000000]
mov qword [rbp + 0x20], r8
mov r15, rdi
mov esi, 1
mov r11d, edx
test r10d, r10d
je 0x140038423
mov rdi, rbx
movzx eax, byte [rdi]
lea r8d, [r11 + r11]
shr rax, 4
lea ecx, [r8 + 1]
add r11d, esi
mov al, byte [rax + r12 + 0x171e40]
mov byte [r8 + r9], al
movzx edx, byte [rdi]
add rdi, rsi
and edx, 0xf
mov al, byte [rdx + r12 + 0x171e40]
mov byte [rcx + r9], al
cmp r11d, r10d
jb 0x1400383e5
mov r8, qword [rbp + 0x20]
xor edx, edx
test r14d, r14d
je 0x140038445
mov eax, r11d
lea ecx, [r11 + r11]
movzx edx, byte [rax + rbx]
shr rdx, 4
mov al, byte [rdx + r12 + 0x171e40]
xor edx, edx
mov byte [rcx + r9], al
add rbx, r13
add r9, r8
sub r15, rsi
jne 0x1400383da
mov rsi, qword [rbp - 0x50]
mov r8d, dword [rbp - 0x48]
mov r12, qword [rbp + 0x10]
mov r14d, 7
jmp 0x140038510
cmp dx, di
jae 0x14003850a
mov r13d, dword [rbp + 0xc8]
lea rsi, [0x140000000]
mov qword [rbp + 0x20], r8
mov r15, rdi
mov r12d, 1
mov r11d, edx
test r10d, r10d
je 0x1400384d2
mov rdi, rbx
movzx eax, byte [rdi]
lea r8d, [r11 + r11]
shr rax, 4
lea ecx, [r8 + 1]
add r11d, r12d
mov al, byte [rax + rsi + 0x171d30]
mov byte [r8 + r9], al
movzx edx, byte [rdi]
add rdi, r12
and edx, 0xf
mov al, byte [rdx + rsi + 0x171d30]
mov byte [rcx + r9], al
cmp r11d, r10d
jb 0x140038496
mov r8, qword [rbp + 0x20]
xor edx, edx
test r14d, r14d
je 0x1400384f3
mov eax, r11d
lea ecx, [r11 + r11]
movzx edx, byte [rax + rbx]
shr rdx, 4
mov al, byte [rdx + rsi + 0x171d30]
xor edx, edx
mov byte [rcx + r9], al
add rbx, r13
add r9, r8
sub r15, r12
jne 0x14003848b
mov rsi, qword [rbp - 0x50]
mov r8d, dword [rbp - 0x48]
mov r12, qword [rbp + 0x10]
mov r14d, 6
mov dword [rbp - 0x80], r14d
mov rbx, qword [rsi + 0x121d58]
mov r9d, dword [rbp + 0xc]
mov edx, dword [rbp - 0x10]
mov qword [rbp - 0x78], rbx
movzx r13d, word [r12 + 0x10]
mov r15d, 1
movzx r12d, word [r12 + 0x12]
xor eax, eax
mov ecx, dword [rsi + 0x1218f4]
mov edi, dword [rsi + 0x1221f4]
mov dword [rbp - 0x44], r12d
mov dword [rsp + 0x50], r13d
test r15b, cl
jne 0x1400394d5
mov dl, al
test edi, edi
jne 0x1400386ca
mov edx, dword [rbp - 0x10]
xor edi, edi
mov r9d, dword [rsi + 0x11dbc8]
imul edx, r9d
add rdx, qword [rsi + 0x11dbc0]
test ecx, ecx
je 0x1400385df
lea eax, [rcx - 2]
test eax, 0xffffffcf
jne 0x14003b4b1
cmp r14d, 6
jne 0x1400399c7
test r12d, r12d
je 0x14003b4b1
mov r11d, r8d
mov edi, r9d
mov r10d, r12d
test r13d, r13d
je 0x1400385cd
mov r8, rbx
mov rax, rdx
sub r8, rdx
mov r9, r13
mov cl, byte [r8 + rax]
test cl, cl
je 0x1400385c5
sub cl, r15b
mov byte [rax], cl
add rax, r15
sub r9, r15
jne 0x1400385b8
add rbx, r11
add rdx, rdi
sub r10, r15
jne 0x1400385a7
xor edi, edi
jmp 0x14003b4b1
test r14d, r14d
je 0x140038687
cmp r14d, 5
jne 0x1400399c7
test r12d, r12d
je 0x14003b4b1
mov rax, r9
mov r15d, r8d
mov qword [rbp + 0x20], rax
mov r14, r12
mov ecx, 1
mov r10, rdx
mov r11b, 0x80
mov r8b, dil
mov r9d, edi
test r13d, r13d
je 0x140038674
mov rdi, rbx
mov eax, 1
xor r12d, r12d
test r9d, r9d
je 0x140038640
test r9b, 7
jne 0x140038640
mov byte [r10], r8b
mov r11b, 0x80
add r10, rax
mov r8b, r12b
mov al, r11b
or al, r8b
cmp byte [rdi], r12b
movzx ecx, al
movzx eax, r8b
cmove ecx, eax
mov eax, 1
add r9d, eax
shr r11b, 1
add rdi, rax
mov r8b, cl
cmp r9d, r13d
jb 0x140038629
mov rax, qword [rbp + 0x20]
mov ecx, 1
xor edi, edi
add rbx, r15
mov byte [r10], r8b
add rdx, rax
sub r14, rcx
jne 0x14003860d
jmp 0x14003a00d
test r12d, r12d
je 0x14003b4b1
mov r10d, r8d
mov rdi, r9
mov r11, r12
mov rcx, rbx
mov r8, r10
test r10, r10
je 0x1400386ba
mov r9, rdx
sub r9, rbx
mov al, byte [rcx]
mov byte [rcx + r9], al
add rcx, r15
sub r8, r15
jne 0x1400386aa
xor eax, eax
add rbx, r10
add rdx, rdi
sub r11, r15
jne 0x140038699
jmp 0x1400385d8
movzx eax, byte [rsi + 0x121d84]
mov ecx, dword [rsi + 0x1221b0]
mov r10d, dword [rsi + 0x121d90]
mov r11d, dword [rsi + 0x121d94]
mov r15d, dword [rsi + 0x121d98]
imul eax, r9d
mov r9d, r10d
or r9d, r11d
or r9d, r15d
movsxd rdi, eax
mov eax, dword [rbp - 0x10]
imul eax, ecx
cdqe
add rdi, rax
xor eax, eax
add rdi, qword [rsi + 0x1221b8]
test r14d, r14d
je 0x1400392d1
sub r14d, 5
je 0x1400390df
sub r14d, 1
je 0x140038bb6
sub r14d, 1
je 0x14003897d
cmp r14d, 1
jne 0x1400399c7
cmp byte [rsi + 0x121d85], 8
jne 0x140038815
test r12d, r12d
je 0x140039484
cmp dword [rsi + 0x121da4], 0xf
jne 0x14003879f
mov r10d, r8d
mov r11d, ecx
mov r9, r12
mov r15d, r14d
test r13d, r13d
je 0x14003878f
mov rdx, rbx
mov rcx, rdi
sub rdx, rdi
mov r8, r13
mov al, byte [rdx + rcx]
shr al, 4
mov byte [rcx], al
add rcx, r15
sub r8, r15
jne 0x14003877d
xor eax, eax
add rbx, r10
add rdi, r11
sub r9, r15
jne 0x14003876c
jmp 0x14003948a
mov r14, r12
mov r15d, r8d
mov r12, rcx
mov esi, 1
mov edx, eax
test r13d, r13d
je 0x140038801
cmp r13d, 0x10
jb 0x1400387df
lea eax, [r13 - 1]
lea r8, [rdi + rax]
add rax, rbx
cmp rdi, rax
ja 0x1400387cf
cmp r8, rbx
jae 0x1400387df
mov r8, r13
mov rdx, rbx
mov rcx, rdi
call fcn.1400bea40
jmp 0x1400387ff
mov ecx, edx
mov r8, rbx
add rcx, rdi
sub r8, rdi
mov eax, r13d
sub eax, edx
mov edx, eax
mov al, byte [rcx + r8]
mov byte [rcx], al
add rcx, rsi
sub rdx, rsi
jne 0x1400387f1
xor eax, eax
add rbx, r15
add rdi, r12
sub r14, rsi
jne 0x1400387ad
mov rsi, qword [rbp - 0x50]
jmp 0x140039484
test r12d, r12d
je 0x140039484
cmp dword [rsi + 0x1221cc], eax
je 0x140038914
mov al, byte [rsi + 0x121d8d]
mov r14, r12
sub al, 8
mov r15d, r8d
add al, byte [rsi + 0x121d89]
movzx edx, al
mov al, byte [rsi + 0x121d8c]
sub al, 8
mov qword [rsp + 0x58], rcx
add al, byte [rsi + 0x121d88]
movzx eax, al
mov dword [rbp - 0x38], eax
mov al, byte [rsi + 0x121d8f]
mov r12d, dword [rbp - 0x38]
sub al, 8
add al, byte [rsi + 0x121d8b]
movzx eax, al
mov dword [rbp - 0x30], eax
mov al, byte [rsi + 0x121d8e]
sub al, 8
mov qword [rbp + 0x20], r15
add al, byte [rsi + 0x121d8a]
mov esi, edx
movzx eax, al
xor edx, edx
mov dword [rbp - 0x28], eax
mov rax, rcx
mov ecx, 1
test r13d, r13d
je 0x140038900
mov r15d, dword [rbp - 0x28]
mov r9, rbx
mov r11d, r13d
mov ebx, 1
mov r13d, dword [rbp - 0x30]
mov r10, rdi
movzx r8d, byte [r9]
mov ecx, esi
mov edx, r8d
mov eax, r8d
shl edx, cl
add r9, rbx
mov ecx, r12d
shl eax, cl
mov ecx, r13d
or edx, eax
mov eax, r8d
shl eax, cl
mov ecx, r15d
shl r8d, cl
or edx, eax
or edx, r8d
mov dword [r10], edx
lea r10, [r10 + 4]
sub r11, rbx
jne 0x1400388b1
mov rbx, qword [rbp - 0x78]
lea ecx, [r11 + 1]
mov r13d, dword [rsp + 0x50]
xor edx, edx
mov r15, qword [rbp + 0x20]
mov rax, qword [rsp + 0x58]
add rbx, r15
add rdi, rax
mov qword [rbp - 0x78], rbx
sub r14, rcx
jne 0x140038896
jmp 0x14003880c
mov r15, rcx
mov r14d, r8d
xor ecx, ecx
mov r10, r12
mov eax, 1
test r13d, r13d
je 0x14003896d
mov r11d, r13d
mov rdx, rbx
mov r13d, 1
mov r8, rdi
movzx eax, byte [rsi + 0x121d8f]
movzx ecx, byte [rsi + 0x121d8b]
add eax, 0xfffffff8
add ecx, eax
movzx eax, byte [rdx]
shl eax, cl
add rdx, r13
or eax, r9d
mov dword [r8], eax
lea r8, [r8 + 4]
sub r11, r13
jne 0x140038938
mov r13d, dword [rsp + 0x50]
lea eax, [r11 + 1]
xor ecx, ecx
add rbx, r14
add rdi, r15
sub r10, rax
jne 0x140038924
jmp 0x140039484
cmp byte [rsi + 0x121d85], 8
jne 0x140038a32
mov r15d, 1
test r12d, r12d
je 0x14003948a
cmp dword [rsi + 0x121da4], 0xf
mov r11, rcx
mov r10d, r8d
mov r9, r12
jne 0x1400389f0
test r13d, r13d
je 0x1400389dc
mov rdx, rbx
mov rcx, rdi
sub rdx, rdi
mov r8, r13
xor esi, esi
mov al, byte [rcx + rdx]
cmp al, 4
jbe 0x1400389cd
shr al, 2
sub al, r15b
jmp 0x1400389d0
mov al, sil
mov byte [rcx], al
add rcx, r15
sub r8, r15
jne 0x1400389be
xor eax, eax
add rbx, r10
add rdi, r11
sub r9, r15
jne 0x1400389ab
mov rsi, qword [rbp - 0x50]
jmp 0x14003948a
test r13d, r13d
je 0x140038a22
mov rdx, rbx
mov rcx, rdi
sub rdx, rdi
mov r8, r13
xor r14d, r14d
mov al, byte [rcx + rdx]
test al, al
je 0x140038a13
shl al, 2
sub al, r15b
jmp 0x140038a16
mov al, r14b
mov byte [rcx], al
add rcx, r15
sub r8, r15
jne 0x140038a04
xor eax, eax
add rbx, r10
add rdi, r11
sub r9, r15
jne 0x1400389f0
jmp 0x14003948a
test r12d, r12d
je 0x140039484
cmp dword [rsi + 0x1221cc], eax
je 0x140038b4c
mov al, byte [rsi + 0x121d8e]
mov r14, r12
sub al, 6
mov r15d, r8d
add al, byte [rsi + 0x121d8a]
movzx eax, al
mov dword [rbp - 0x60], eax
mov al, byte [rsi + 0x121d8d]
mov r12d, dword [rbp - 0x60]
sub al, 6
add al, byte [rsi + 0x121d89]
movzx eax, al
mov dword [rbp - 0x38], eax
mov al, byte [rsi + 0x121d8c]
sub al, 6
mov qword [rsp + 0x58], rcx
add al, byte [rsi + 0x121d88]
movzx eax, al
mov dword [rbp - 0x30], eax
mov al, byte [rsi + 0x121d8f]
sub al, 6
mov qword [rbp + 0x20], r15
add al, byte [rsi + 0x121d8b]
mov esi, dword [rbp - 0x38]
xor edx, edx
movzx eax, al
mov dword [rbp - 0x28], eax
mov rax, rcx
mov ecx, 1
test r13d, r13d
je 0x140038b34
mov r15d, dword [rbp - 0x28]
mov r9, rbx
mov r11d, r13d
mov ebx, 1
mov r13d, dword [rbp - 0x30]
mov r10, rdi
movzx eax, byte [r9]
cmp al, 0x40
jne 0x140038ae0
or r8d, 0xffffffff
jmp 0x140038b0f
test al, al
je 0x140038b0c
mov edx, eax
mov r8d, eax
mov ecx, r12d
shl r8d, cl
mov ecx, esi
shl eax, cl
mov ecx, r13d
or r8d, eax
mov eax, edx
shl eax, cl
mov ecx, r15d
shl edx, cl
or r8d, eax
or r8d, edx
xor edx, edx
jmp 0x140038b0f
mov r8d, edx
mov dword [r10], r8d
add r9, rbx
add r10, 4
sub r11, rbx
jne 0x140038ad2
mov rbx, qword [rbp - 0x78]
lea ecx, [r11 + 1]
mov r13d, dword [rsp + 0x50]
mov r15, qword [rbp + 0x20]
mov rax, qword [rsp + 0x58]
add rbx, r15
add rdi, rax
mov qword [rbp - 0x78], rbx
sub r14, rcx
jne 0x140038ab7
jmp 0x14003880c
mov r15, rcx
mov r14d, r8d
xor ecx, ecx
mov r11, r12
mov eax, 1
test r13d, r13d
je 0x140038ba6
mov rdx, rbx
mov r8, rdi
mov r10, r13
cmp byte [rdx], cl
je 0x140038b8f
movzx ecx, byte [rsi + 0x121d8f]
movzx eax, byte [rsi + 0x121d8b]
add eax, 0xfffffffa
add ecx, eax
movzx eax, byte [rdx]
dec eax
shl eax, cl
or eax, r9d
xor ecx, ecx
jmp 0x140038b92
mov eax, r9d
mov dword [r8], eax
mov eax, 1
add rdx, rax
add r8, 4
sub r10, rax
jne 0x140038b6a
add rbx, r14
add rdi, r15
sub r11, rax
jne 0x140038b5c
jmp 0x140039484
mov al, byte [rsi + 0x121d85]
cmp al, 8
jne 0x140038c6a
xor r14d, r14d
test r12d, r12d
je 0x140039484
cmp dword [rsi + 0x121da4], 0xf
lea r15d, [r14 + 1]
jne 0x140038c24
mov r11d, r8d
mov r14, rcx
mov r10, r12
xor eax, eax
test r13d, r13d
je 0x140038c14
mov r8, rbx
mov rdx, rdi
sub r8, rdi
mov r9, r13
mov al, byte [rdx + r8]
mov cl, al
sub cl, r15b
neg al
sbb al, al
and al, cl
mov byte [rdx], al
add rdx, r15
sub r9, r15
jne 0x140038bf9
xor eax, eax
add rbx, r11
add rdi, r14
sub r10, r15
jne 0x140038be8
jmp 0x14003948a
mov r10d, r8d
mov r11, rcx
mov r9, r12
test r13d, r13d
je 0x140038c5a
mov rdx, rbx
mov rcx, rdi
sub rdx, rdi
mov r8, r13
mov al, byte [rcx + rdx]
test al, al
je 0x140038c4d
shl al, 4
sub al, r15b
jmp 0x140038c50
mov al, r14b
mov byte [rcx], al
add rcx, r15
sub r8, r15
jne 0x140038c3e
add rbx, r10
add rdi, r11
sub r9, r15
jne 0x140038c2d
jmp 0x14003948a
cmp dword [rsi + 0x121d9c], 0xf000
jne 0x140038d84
cmp r10d, 0xf00
jne 0x140038d84
cmp r11d, 0xf0
jne 0x140038d84
cmp r15d, 0xf
jne 0x140038d84
xor eax, eax
test r12d, r12d
je 0x140039484
cmp dword [rsi + 0x1221cc], eax
je 0x140038d26
mov r11d, r8d
lea r15d, [rax + 1]
mov r14, rcx
mov r10, r12
xor esi, esi
test r13d, r13d
je 0x140038d16
mov r9d, r13d
mov rdx, rbx
mov r13d, 0xffff
mov r8, rdi
movzx eax, byte [rdx]
cmp al, 0x10
jne 0x140038ce1
movzx ecx, r13w
jmp 0x140038d01
test al, al
je 0x140038cff
movzx ecx, ax
shl cx, 4
or cx, ax
shl cx, 4
or cx, ax
shl cx, 4
or cx, ax
jmp 0x140038d01
mov ecx, esi
mov word [r8], cx
add rdx, r15
add r8, 2
sub r9, r15
jne 0x140038cd4
mov r13d, dword [rsp + 0x50]
add rbx, r11
add rdi, r14
sub r10, r15
jne 0x140038cc0
jmp 0x1400389e7
mov r14d, r8d
mov r15, rcx
mov r11, r12
mov eax, 1
xor esi, esi
test r13d, r13d
je 0x140038d74
mov r8, rbx
mov r9, rdi
mov r10, r13
cmp byte [r8], sil
je 0x140038d5f
movzx edx, byte [r8]
mov ecx, 0x1000
imul edx, ecx
mov eax, 1
sub dx, ax
jmp 0x140038d64
mov edx, 0xfff
mov word [r9], dx
add r8, rax
add r9, 2
sub r10, rax
jne 0x140038d44
add rbx, r14
add rdi, r15
sub r11, rax
jne 0x140038d36
jmp 0x14003880c
cmp al, 0x10
jne 0x140038f46
xor edx, edx
test r12d, r12d
je 0x140039484
cmp dword [rsi + 0x1221cc], edx
je 0x140038ec8
mov al, byte [rsi + 0x121d8e]
mov r14, r12
sub al, 4
mov r15d, r8d
add al, byte [rsi + 0x121d8a]
movzx eax, al
mov dword [rbp - 0x60], eax
mov al, byte [rsi + 0x121d8d]
sub al, 4
mov qword [rsp + 0x68], rcx
add al, byte [rsi + 0x121d89]
movzx eax, al
mov dword [rbp - 0x38], eax
mov al, byte [rsi + 0x121d8c]
sub al, 4
mov qword [rsp + 0x58], r12
add al, byte [rsi + 0x121d88]
mov r12d, dword [rbp - 0x60]
movzx eax, al
mov dword [rbp - 0x30], eax
mov al, byte [rsi + 0x121d8f]
sub al, 4
mov qword [rbp + 0x20], r15
add al, byte [rsi + 0x121d8b]
mov esi, dword [rbp - 0x38]
movzx eax, al
mov dword [rbp - 0x28], eax
mov rax, rcx
lea ecx, [rdx + 1]
test r13d, r13d
je 0x140038eab
mov r15d, dword [rbp - 0x28]
mov r9, rbx
mov r11d, r13d
mov ebx, 1
mov r13d, dword [rbp - 0x30]
mov r10, rdi
mov r14d, 0xffff
movzx eax, byte [r9]
cmp al, 0x10
jne 0x140038e47
movzx r8d, r14w
jmp 0x140038e80
test al, al
je 0x140038e7d
movzx edx, ax
movzx r8d, ax
mov ecx, r12d
shl r8w, cl
mov ecx, esi
shl ax, cl
mov ecx, r13d
or r8w, ax
movzx eax, dx
shl ax, cl
mov ecx, r15d
shl dx, cl
or r8w, ax
or r8w, dx
xor edx, edx
jmp 0x140038e80
mov r8d, edx
mov word [r10], r8w
add r9, rbx
add r10, 2
sub r11, rbx
jne 0x140038e39
mov rbx, qword [rbp - 0x78]
lea ecx, [r11 + 1]
mov r13d, dword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
mov r15, qword [rbp + 0x20]
mov rax, qword [rsp + 0x68]
add rbx, r15
add rdi, rax
sub r14, rcx
mov qword [rbp - 0x78], rbx
mov qword [rsp + 0x58], r14
jne 0x140038e14
jmp 0x14003880c
mov r14d, r8d
mov r15, rcx
mov qword [rbp + 0x20], r14
mov r11, r12
mov eax, 1
test r13d, r13d
je 0x140038f36
mov rdx, rbx
mov r10d, r13d
mov r8, rdi
xor r14d, r14d
cmp byte [rdx], r14b
je 0x140038f12
movzx eax, byte [rsi + 0x121d8b]
movzx ecx, byte [rsi + 0x121d8f]
add eax, 0xfffffffc
add ecx, eax
movzx eax, byte [rdx]
shl ax, cl
dec ax
or ax, r9w
jmp 0x140038f16
movzx eax, r9w
mov word [r8], ax
mov eax, 1
add rdx, rax
add r8, 2
sub r10, rax
jne 0x140038eeb
mov r13d, dword [rsp + 0x50]
xor edx, edx
mov r14, qword [rbp + 0x20]
add rbx, r14
add rdi, r15
sub r11, rax
jne 0x140038eda
jmp 0x140039484
cmp al, 0x20
jne 0x140039484
xor edx, edx
test r12d, r12d
je 0x140039484
cmp dword [rsi + 0x1221cc], edx
je 0x140039066
mov al, byte [rsi + 0x121d8e]
mov r14, r12
sub al, 4
mov r15d, r8d
add al, byte [rsi + 0x121d8a]
movzx eax, al
mov dword [rbp - 0x60], eax
mov al, byte [rsi + 0x121d8d]
mov r12d, dword [rbp - 0x60]
sub al, 4
add al, byte [rsi + 0x121d89]
movzx eax, al
mov dword [rbp - 0x38], eax
mov al, byte [rsi + 0x121d8c]
sub al, 4
mov qword [rsp + 0x58], rcx
add al, byte [rsi + 0x121d88]
movzx eax, al
mov dword [rbp - 0x30], eax
mov al, byte [rsi + 0x121d8f]
sub al, 4
mov qword [rbp + 0x20], r15
add al, byte [rsi + 0x121d8b]
mov esi, dword [rbp - 0x38]
movzx eax, al
mov dword [rbp - 0x28], eax
mov rax, rcx
lea ecx, [rdx + 1]
test r13d, r13d
je 0x14003904e
mov r15d, dword [rbp - 0x28]
mov r9, rbx
mov r11d, r13d
mov ebx, 1
mov r13d, dword [rbp - 0x30]
mov r10, rdi
movzx eax, byte [r9]
cmp al, 0x10
jne 0x140038ffa
or r8d, 0xffffffff
jmp 0x140039029
test al, al
je 0x140039026
mov edx, eax
mov r8d, eax
mov ecx, r12d
shl r8d, cl
mov ecx, esi
shl eax, cl
mov ecx, r13d
or r8d, eax
mov eax, edx
shl eax, cl
mov ecx, r15d
shl edx, cl
or r8d, eax
or r8d, edx
xor edx, edx
jmp 0x140039029
mov r8d, edx
mov dword [r10], r8d
add r9, rbx
add r10, 4
sub r11, rbx
jne 0x140038fec
mov rbx, qword [rbp - 0x78]
lea ecx, [r11 + 1]
mov r13d, dword [rsp + 0x50]
mov r15, qword [rbp + 0x20]
mov rax, qword [rsp + 0x58]
add rbx, r15
add rdi, rax
mov qword [rbp - 0x78], rbx
sub r14, rcx
jne 0x140038fd1
jmp 0x14003880c
mov r14d, r8d
mov r15, rcx
mov qword [rbp + 0x20], r14
mov r11, r12
mov eax, 1
test r13d, r13d
je 0x1400390cf
mov rdx, rbx
mov r10d, r13d
mov r8, rdi
xor r14d, r14d
cmp byte [rdx], r14b
je 0x1400390ad
movzx eax, byte [rsi + 0x121d8b]
movzx ecx, byte [rsi + 0x121d8f]
add eax, 0xfffffffc
add ecx, eax
movzx eax, byte [rdx]
shl eax, cl
dec eax
or eax, r9d
jmp 0x1400390b0
mov eax, r9d
mov dword [r8], eax
mov eax, 1
add rdx, rax
add r8, 4
sub r10, rax
jne 0x140039089
mov r13d, dword [rsp + 0x50]
xor edx, edx
mov r14, qword [rbp + 0x20]
add rbx, r14
add rdi, r15
sub r11, rax
jne 0x140039078
jmp 0x140039484
mov al, byte [rsi + 0x121d85]
cmp al, 8
jne 0x140039183
xor eax, eax
lea r15d, [rax + 1]
test r12d, r12d
je 0x14003948a
cmp dword [rsi + 0x121da4], 0xf
mov r14, rcx
mov r11d, r8d
mov r10, r12
jne 0x140039146
test r13d, r13d
je 0x140039136
mov r8, rbx
mov rdx, rdi
sub r8, rdi
mov r9, r13
mov al, byte [rdx + r8]
neg al
sbb cl, cl
and cl, 0xf
mov byte [rdx], cl
add rdx, r15
sub r9, r15
jne 0x14003911f
xor eax, eax
add rbx, r11
add rdi, r14
sub r10, r15
jne 0x14003910e
jmp 0x14003948a
mov esi, 0xff
test r13d, r13d
je 0x140039173
mov r8, rbx
mov rdx, rdi
sub r8, rdi
mov r9, r13
mov al, byte [rdx + r8]
neg al
sbb cl, cl
and cl, sil
mov byte [rdx], cl
add rdx, r15
sub r9, r15
jne 0x14003915c
xor eax, eax
add rbx, r11
add rdi, r14
sub r10, r15
jne 0x14003914b
jmp 0x1400389e7
cmp al, 0x10
jne 0x14003922e
movzx edx, r9w
xor eax, eax
or dx, word [rsi + 0x121d9c]
test r12d, r12d
je 0x140039484
cmp dword [rsi + 0x1221cc], eax
mov r15, rcx
lea esi, [rax + 1]
mov r14d, r8d
mov r11, r12
je 0x1400391f0
test r13d, r13d
je 0x1400391e0
mov r8, rbx
mov r9, rdi
mov r10, r13
mov al, byte [r8]
neg al
sbb cx, cx
add r8, rsi
and cx, dx
mov word [r9], cx
lea r9, [r9 + 2]
sub r10, rsi
jne 0x1400391c3
xor eax, eax
add rbx, r14
add rdi, r15
sub r11, rsi
jne 0x1400391b5
jmp 0x14003880c
test r13d, r13d
je 0x14003921e
mov rcx, rbx
mov r8, rdi
mov r10, r13
xor r12d, r12d
cmp byte [rcx], r12b
movzx eax, r9w
cmovne ax, dx
add rcx, rsi
mov word [r8], ax
lea r8, [r8 + 2]
sub r10, rsi
jne 0x140039201
xor eax, eax
add rbx, r14
add rdi, r15
sub r11, rsi
jne 0x1400391f0
jmp 0x14003880c
cmp al, 0x20
jne 0x140039484
mov edx, r9d
xor eax, eax
or edx, dword [rsi + 0x121d9c]
test r12d, r12d
je 0x140039484
cmp dword [rsi + 0x1221cc], eax
mov r15, rcx
lea esi, [rax + 1]
mov r14d, r8d
mov r11, r12
je 0x140039296
test r13d, r13d
je 0x140039286
mov r8, rbx
mov r9, rdi
mov r10, r13
mov al, byte [r8]
neg al
sbb ecx, ecx
add r8, rsi
and ecx, edx
mov dword [r9], ecx
lea r9, [r9 + 4]
sub r10, rsi
jne 0x14003926c
xor eax, eax
add rbx, r14
add rdi, r15
sub r11, rsi
jne 0x14003925e
jmp 0x14003880c
test r13d, r13d
je 0x1400392c1
mov rcx, rbx
mov r8, rdi
mov r10, r13
xor r12d, r12d
cmp byte [rcx], r12b
mov eax, r9d
cmovne eax, edx
add rcx, rsi
mov dword [r8], eax
lea r8, [r8 + 4]
sub r10, rsi
jne 0x1400392a7
xor eax, eax
add rbx, r14
add rdi, r15
sub r11, rsi
jne 0x140039296
jmp 0x14003880c
cmp byte [rsi + 0x121d85], 8
jne 0x14003938d
mov r15d, 1
test r12d, r12d
je 0x14003948a
cmp dword [rsi + 0x121da4], 0xf
mov r14, rcx
mov r11d, r8d
mov r10, r12
jne 0x140039347
mov ecx, eax
test r13d, r13d
je 0x140039337
mov r9, rdi
mov r8, rax
test cl, 7
jne 0x14003931b
mov rax, r8
shr rax, 3
mov dl, byte [rax + rbx]
mov al, dl
add ecx, r15d
sar al, 7
add r8, r15
and al, 0xf
add dl, dl
mov byte [r9], al
add r9, r15
cmp ecx, r13d
jb 0x14003930c
xor eax, eax
add rbx, r11
add rdi, r14
sub r10, r15
jne 0x1400392ff
jmp 0x14003948a
mov ecx, eax
test r13d, r13d
je 0x14003937d
mov r9, rdi
mov r8, rax
test cl, 7
jne 0x140039363
mov rax, r8
shr rax, 3
mov dl, byte [rax + rbx]
mov al, dl
add ecx, r15d
sar al, 7
add r8, r15
mov byte [r9], al
add dl, dl
add r9, r15
cmp ecx, r13d
jb 0x140039354
xor eax, eax
add rbx, r11
add rdi, r14
sub r10, r15
jne 0x140039347
jmp 0x14003948a
test r12d, r12d
je 0x140039484
cmp dword [rsi + 0x1221cc], eax
je 0x140039406
mov r11, r12
mov r14d, r8d
xor r12d, r12d
mov r15, rcx
mov eax, 1
mov ecx, r12d
test r13d, r13d
je 0x1400393f9
mov r8, r12
mov r10, rdi
test cl, 7
jne 0x1400393cc
mov rax, r8
shr rax, 3
mov dl, byte [rax + rbx]
test dl, dl
jns 0x1400393dd
movzx eax, r9w
or ax, word [rsi + 0x121d9c]
jmp 0x1400393e0
mov eax, r12d
mov word [r10], ax
add dl, dl
mov eax, 1
add r10, 2
add ecx, eax
add r8, rax
cmp ecx, r13d
jb 0x1400393bd
add rbx, r14
add rdi, r15
sub r11, rax
jne 0x1400393af
jmp 0x140039484
mov r15d, r8d
mov rax, rcx
mov qword [rbp + 0x20], r15
mov r14, r12
mov qword [rsp + 0x58], rcx
xor r8d, r8d
mov ecx, r8d
test r13d, r13d
je 0x140039478
xor r15d, r15d
mov r10, rdi
mov r8d, r15d
test cl, 7
jne 0x14003943b
mov rax, r8
shr rax, 3
mov dl, byte [rax + rbx]
test dl, dl
jns 0x140039448
mov r11d, dword [rsi + 0x121d9c]
jmp 0x14003944b
mov r11d, r15d
movzx eax, r9w
add dl, dl
or ax, r11w
mov word [r10], ax
mov eax, 1
add ecx, eax
add r8, rax
add r10, 2
cmp ecx, r13d
jb 0x14003942c
mov r15, qword [rbp + 0x20]
xor r8d, r8d
mov rax, qword [rsp + 0x58]
add rbx, r15
add rdi, rax
sub r14, 1
jne 0x14003941b
mov r15d, 1
xor edi, edi
cmp dword [rbp + 0xe8], edi
je 0x14003b4b1
movzx ecx, word [rsi + 0x1218ae]
mov r8d, dword [rbp + 0xc]
mov edx, dword [rbp - 0x10]
lea eax, [r8 - 1]
mov dword [rbp + 0x20], eax
lea eax, [rdx - 1]
mov dword [rbp + 0x24], eax
lea eax, [r8 - 1]
add eax, ecx
mov dword [rbp + 0x28], eax
lea eax, [rdx - 1]
add eax, ecx
lea rdx, [rbp + 0x20]
mov rcx, rsi
mov dword [rbp + 0x2c], eax
call fcn.14003d714
jmp 0x14003b4b1
movsxd r9, dword [rsi + 0x1218f8]
lea r11, [0x140000000]
mov r15b, al
mov dword [rbp - 0x48], r9d
imul rax, r9, 0x51
mov r10, r9
mov qword [rbp - 0x30], r9
lea rax, [rax + 0x11caff]
add rax, r11
movsxd r11, r13d
mov qword [rbp - 0x18], rax
mov rax, qword [rsi + 0x121d38]
mov qword [rbp - 0x20], rax
mov eax, dword [rsi + 0x121d30]
mov dword [rbp - 0x40], eax
xor eax, eax
mov qword [rbp - 0x28], r11
test edi, edi
jne 0x14003a014
movsxd r13, dword [rsi + 0x11dbc8]
mov rdi, r13
sub ecx, 1
je 0x140039999
sub ecx, 2
je 0x140039551
mov eax, pe_nt_image_headers64
sub ecx, eax
je 0x140039551
cmp ecx, eax
jne 0x14003a00d
cmp r14d, 6
jne 0x1400399c7
movsxd r14, dword [rbp + 4]
lea eax, [rdx + r14]
imul eax, r13d
movsxd rcx, eax
add rcx, qword [rsi + 0x11dbc0]
movsxd rax, dword [rbp + 0xc]
add rcx, rax
add rcx, r14
xor r14d, r14d
lea r15d, [r14 + 1]
test r12d, r12d
je 0x1400385d8
mov eax, r8d
cmp r9d, r15d
jne 0x1400396a9
mov qword [rsp + 0x58], rax
mov rax, r12
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
test r11, r11
je 0x140039690
mov r13, rdi
lea rdx, [rcx + 1]
neg r13
mov r12, rbx
mov r10, rcx
sub r12, rcx
not r10
movzx eax, byte [r12 + rdx - 1]
test al, al
je 0x140039676
mov r8d, eax
lea rax, [rdi + rdx]
sub r8d, r15d
lea r15, [r10 + rdx]
or byte [rdx - 1], r8b
movzx r9d, byte [rax + r13*2 - 1]
shl r8d, 4
mov eax, r9d
and eax, 0xf0
mov r14b, r8b
cmp eax, r8d
jge 0x140039613
and r9b, 0xf
mov rax, rcx
or r9b, r8b
sub rax, rdi
mov byte [rax + r15], r9b
movzx r9d, byte [rdi + rdx - 1]
mov eax, r9d
and eax, 0xf0
cmp eax, r8d
jge 0x140039635
and r9b, 0xf
lea rax, [r15 + rcx]
or r9b, r14b
mov byte [rax + rdi], r9b
movzx r9d, byte [rdx]
mov eax, r9d
and eax, 0xf0
cmp eax, r8d
jge 0x140039650
and r9b, 0xf
or r9b, r14b
mov byte [rdx], r9b
movzx r9d, byte [rdx - 2]
mov r15d, 1
mov eax, r9d
and eax, 0xf0
cmp eax, r8d
jge 0x140039673
and r9b, 0xf
or r9b, r14b
mov byte [rdx - 2], r9b
xor r14d, r14d
add rdx, r15
lea rax, [r10 + rdx]
cmp rax, r11
jl 0x1400395c8
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x58]
add rbx, rdx
add rcx, rdi
sub rax, r15
mov qword [rsp + 0x68], rax
jne 0x1400395a9
jmp 0x1400385d8
mov rdx, rcx
neg rdx
cmp r9d, 4
jg 0x14003981e
mov qword [rsp + 0x58], rax
mov rax, r12
mov r12, qword [rbp - 0x18]
mov r8, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
test r11, r11
je 0x1400397fe
sub rbx, rcx
mov r14, rcx
xor esi, esi
movzx eax, byte [r14 + rbx]
test al, al
je 0x1400397dd
lea r15d, [rax - 1]
mov r8d, r9d
or byte [r14], r15b
lea eax, [r9 + 1]
shl r15d, 4
neg r8d
mov dword [rbp - 0x60], eax
cmp r8d, eax
jge 0x1400397d7
cdqe
mov qword [rsp + 0x60], rax
mov eax, r8d
imul eax, r13d
mov qword [rsp + 0x78], r10
mov r10d, 1
neg qword [rsp + 0x78]
cdqe
mov qword [rbp - 0x70], rax
mov eax, dword [rbp - 0x60]
mov r11, qword [rbp - 0x70]
sub eax, r8d
mov qword [rbp - 0x68], rax
mov r9, qword [rbp - 0x68]
mov rax, qword [rsp + 0x78]
mov r8, rax
mov qword [rbp - 0x68], rax
cmp rax, qword [rsp + 0x60]
jge 0x1400397bd
mov rax, r12
sub rax, qword [rsp + 0x78]
add rax, rsi
mov qword [rbp + 0x20], rax
mov rax, qword [rsp + 0x60]
mov rdi, qword [rbp + 0x20]
cmp byte [rdi + r8], 0
je 0x1400397a9
lea r8, [rdx + r14]
add r8, rcx
add r8, r11
add r8, qword [rbp - 0x68]
movzx eax, byte [r8]
mov dword [rbp - 0x60], eax
and eax, 0xf0
cmp eax, r15d
jge 0x1400397a0
mov eax, dword [rbp - 0x60]
and al, 0xf
or al, r15b
mov byte [r8], al
mov rax, qword [rsp + 0x60]
mov r8, qword [rbp - 0x68]
add r8, r10
mov qword [rbp - 0x68], r8
cmp r8, rax
jl 0x14003976f
mov rax, qword [rsp + 0x78]
mov rdi, r13
add rsi, 9
add r11, rdi
sub r9, r10
jne 0x140039749
mov r11, qword [rbp - 0x28]
xor esi, esi
mov r9d, dword [rbp - 0x48]
mov r10, qword [rbp - 0x30]
mov r15d, 1
add r14, r15
lea rax, [rdx + r14]
cmp rax, r11
jl 0x1400396e0
mov rbx, qword [rbp - 0x78]
xor r14d, r14d
mov rax, qword [rsp + 0x68]
mov r8, qword [rsp + 0x58]
add rbx, r8
add rcx, rdi
sub rdx, rdi
mov qword [rbp - 0x78], rbx
sub rax, r15
mov qword [rsp + 0x68], rax
jne 0x1400396cf
jmp 0x140039b8d
mov esi, dword [rbp - 0x40]
mov qword [rsp + 0x58], rax
mov rax, r12
mov r12, qword [rbp - 0x20]
mov r8, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
test r11, r11
je 0x140039979
sub rbx, rcx
mov r14, rcx
mov qword [rbp - 0x38], rbx
xor r8d, r8d
movzx eax, byte [r14 + rbx]
test al, al
je 0x140039958
lea r15d, [rax - 1]
mov r8d, r9d
or byte [r14], r15b
lea eax, [r9 + 1]
shl r15d, 4
neg r8d
mov dword [rbp - 0x60], eax
cmp r8d, eax
jge 0x140039951
cdqe
mov qword [rsp + 0x60], rax
mov eax, r8d
imul eax, r13d
mov qword [rbp - 0x68], r10
neg qword [rbp - 0x68]
cdqe
mov qword [rbp - 0x70], rax
xor eax, eax
mov qword [rbp + 0x20], rax
mov r11, qword [rbp + 0x20]
movsxd rax, esi
mov rsi, qword [rbp - 0x70]
mov qword [rbp - 0x30], rax
mov eax, dword [rbp - 0x60]
mov rbx, qword [rbp - 0x30]
sub eax, r8d
mov qword [rsp + 0x78], rax
mov r9, qword [rsp + 0x78]
mov rax, qword [rbp - 0x68]
mov r8, rax
mov qword [rsp + 0x78], rax
cmp rax, qword [rsp + 0x60]
jge 0x140039937
lea rax, [r10 + r11]
add rax, r12
mov qword [rbp + 0x20], rax
mov rax, qword [rsp + 0x60]
mov rdi, qword [rbp + 0x20]
cmp byte [rdi + r8], 0
je 0x140039923
lea r8, [r14 + rsi]
add r8, rdx
add r8, rcx
add r8, qword [rsp + 0x78]
movzx eax, byte [r8]
mov dword [rbp - 0x60], eax
and eax, 0xf0
cmp eax, r15d
jge 0x140039919
mov eax, dword [rbp - 0x60]
and al, 0xf
or al, r15b
mov byte [r8], al
mov rax, qword [rsp + 0x60]
mov r8, qword [rsp + 0x78]
inc r8
mov qword [rsp + 0x78], r8
cmp r8, rax
jl 0x1400398e7
mov rax, qword [rbp - 0x68]
mov rdi, r13
add r11, rbx
add rsi, rdi
sub r9, 1
jne 0x1400398c4
mov r11, qword [rbp - 0x28]
mov r9d, r10d
mov esi, dword [rbp - 0x40]
mov rbx, qword [rbp - 0x38]
xor r8d, r8d
lea r15d, [r8 + 1]
add r14, r15
lea rax, [r14 + rdx]
cmp rax, r11
jl 0x14003984d
mov rbx, qword [rbp - 0x78]
xor r14d, r14d
mov rax, qword [rsp + 0x68]
mov r8, qword [rsp + 0x58]
add rbx, r8
add rcx, rdi
sub rdx, rdi
mov qword [rbp - 0x78], rbx
sub rax, r15
mov qword [rsp + 0x68], rax
jne 0x140039837
jmp 0x140039b8d
mov ecx, dword [rbp + 4]
lea eax, [rdx + rcx]
add ecx, dword [rbp + 0xc]
imul eax, r13d
movsxd rdx, ecx
xor ecx, ecx
movsxd r10, eax
add r10, rdx
add r10, qword [rsi + 0x11dbc0]
test r14d, r14d
je 0x140039cd2
cmp r14d, 5
je 0x1400399cf
or eax, 0xffffffff
jmp 0x14003d6ea
mov r15d, 1
test r12d, r12d
je 0x1400385d8
cmp r9d, r15d
jne 0x140039a52
mov r14d, r8d
mov r9, r12
test r11, r11
je 0x140039a42
mov rdx, rbx
lea rax, [r10 + 1]
sub rdx, r10
mov rcx, rdi
xor r12d, r12d
not rcx
mov r8, r11
cmp byte [rax + rdx - 1], r12b
je 0x140039a38
mov byte [rax - 1], r15b
cmp byte [rax - 2], r15b
je 0x140039a19
mov byte [rax - 2], 2
cmp byte [rax], r15b
je 0x140039a21
mov byte [rax], 2
cmp byte [rax + rcx], r15b
je 0x140039a2b
mov byte [rax + rcx], 2
cmp byte [rax + r13 - 1], r15b
je 0x140039a38
mov byte [rax + r13 - 1], 2
add rax, r15
sub r8, r15
jne 0x140039a04
xor ecx, ecx
add rbx, r14
add r10, rdi
sub r9, r15
jne 0x1400399e9
jmp 0x1400385d8
mov eax, r8d
mov rcx, r9
xor r8d, r8d
cmp r9d, 4
jg 0x140039b96
mov qword [rsp + 0x58], rax
mov rax, r12
mov r12, qword [rbp - 0x18]
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
mov r14, r8
test r11, r11
je 0x140039b75
mov rax, rbx
sub rax, r10
mov qword [rbp - 0x70], rax
xor ebx, ebx
lea rdx, [r10 + r14]
cmp byte [rdx + rax], bl
je 0x140039b58
mov byte [rdx], r15b
lea r8d, [r9 + 1]
mov edx, r9d
neg edx
cmp edx, r8d
jge 0x140039b58
movsxd rax, r8d
mov r15, rcx
mov qword [rsp + 0x78], rax
neg r15
mov eax, edx
mov rsi, rbx
imul eax, r13d
mov r9d, 1
sub r8d, edx
mov r11d, r8d
mov r8, qword [rsp + 0x78]
cdqe
mov qword [rsp + 0x60], rax
mov rdx, r15
cmp r15, r8
jge 0x140039b36
mov r8, qword [rsp + 0x60]
mov rax, rsi
sub rax, r15
add rax, r12
mov qword [rbp + 0x20], rax
mov rax, qword [rsp + 0x78]
mov rdi, qword [rbp + 0x20]
cmp byte [rdi + rdx], bl
je 0x140039b23
lea rax, [r8 + r10]
add rax, rdx
cmp byte [rax + r14], r9b
je 0x140039b1e
mov byte [rax + r14], 2
mov rax, qword [rsp + 0x78]
add rdx, r9
cmp rdx, rax
jl 0x140039b07
mov rax, r8
mov rdi, r13
mov r8, qword [rsp + 0x78]
add rax, rdi
add rsi, 9
mov qword [rsp + 0x60], rax
sub r11, r9
jne 0x140039ae4
mov r11, qword [rbp - 0x28]
mov r9d, ecx
mov rax, qword [rbp - 0x70]
mov r15d, 1
add r14, r15
cmp r14, r11
jl 0x140039a93
mov rbx, qword [rbp - 0x78]
xor r8d, r8d
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x58]
add rbx, rdx
add r10, rdi
sub rax, r15
mov qword [rbp - 0x78], rbx
mov qword [rsp + 0x68], rax
jne 0x140039a7b
mov rsi, qword [rbp - 0x50]
jmp 0x1400385d8
mov esi, dword [rbp - 0x40]
mov qword [rsp + 0x58], rax
mov rax, r12
mov r12, qword [rbp - 0x20]
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
mov r14, r8
test r11, r11
je 0x140039cb5
mov rax, rbx
sub rax, r10
mov qword [rbp - 0x68], rax
lea rdx, [r10 + r14]
cmp byte [rdx + rax], r8b
je 0x140039c9b
mov byte [rdx], r15b
lea r8d, [r9 + 1]
mov edx, r9d
neg edx
cmp edx, r8d
jge 0x140039c98
movsxd rax, r8d
xor ebx, ebx
mov qword [rsp + 0x78], rax
mov r15, rcx
movsxd r11, esi
mov eax, edx
imul eax, r13d
neg r15
sub r8d, edx
mov qword [rbp - 0x70], r11
mov r9, qword [rbp - 0x70]
lea r13d, [rbx + 1]
mov r11d, r8d
mov r8, qword [rsp + 0x78]
cdqe
mov qword [rbp + 0x20], rax
mov eax, ebx
mov rsi, qword [rbp + 0x20]
mov qword [rsp + 0x60], rbx
mov rdx, r15
cmp r15, r8
jge 0x140039c71
mov r8, qword [rsp + 0x60]
lea rax, [rcx + r12]
add r8, rax
mov rax, qword [rsp + 0x78]
cmp byte [rdx + r8], bl
je 0x140039c5f
lea rax, [rsi + r10]
add rax, rdx
cmp byte [rax + r14], r13b
je 0x140039c5a
mov byte [rax + r14], 2
mov rax, qword [rsp + 0x78]
add rdx, r13
cmp rdx, rax
jl 0x140039c42
mov rax, qword [rsp + 0x60]
mov r8, qword [rsp + 0x78]
add rax, r9
add rsi, rdi
mov qword [rsp + 0x60], rax
sub r11, r13
jne 0x140039c29
mov r11, qword [rbp - 0x28]
mov r9d, ecx
mov esi, dword [rbp - 0x40]
mov r13d, edi
mov rax, qword [rbp - 0x68]
mov r15d, 1
xor r8d, r8d
add r14, r15
cmp r14, r11
jl 0x140039bc5
mov rbx, qword [rbp - 0x78]
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x58]
add rbx, rdx
add r10, rdi
sub rax, r15
mov qword [rbp - 0x78], rbx
mov qword [rsp + 0x68], rax
jne 0x140039baf
jmp 0x140039b8d
test r12d, r12d
je 0x14003a00d
mov eax, 1
cmp r9d, eax
jne 0x140039d6c
mov r13d, r8d
mov r14, r12
mov edx, ecx
test r11, r11
je 0x140039d5c
mov r8, rdi
lea rcx, [r10 + 1]
not r8
mov r9, r11
test dl, 7
jne 0x140039d1f
mov eax, edx
test edx, edx
jns 0x140039d11
lea eax, [rdx + 7]
sar eax, 3
cdqe
mov r15b, byte [rax + rbx]
mov eax, 1
test r15b, r15b
jns 0x140039d4d
mov byte [rcx - 1], al
cmp byte [rcx - 2], al
je 0x140039d30
mov byte [rcx - 2], 2
cmp byte [rcx], al
je 0x140039d37
mov byte [rcx], 2
cmp byte [r8 + rcx], al
je 0x140039d42
mov byte [r8 + rcx], 2
cmp byte [rdi + rcx - 1], al
je 0x140039d4d
mov byte [rdi + rcx - 1], 2
add edx, eax
add rcx, rax
add r15b, r15b
sub r9, rax
jne 0x140039d03
xor ecx, ecx
add rbx, r13
add r10, rdi
sub r14, rax
jne 0x140039cef
jmp 0x14003a009
mov eax, r8d
mov r8d, 1
mov rcx, r9
cmp r9d, 4
jg 0x140039ec5
mov qword [rsp + 0x58], rax
mov rax, r12
mov r12, qword [rbp - 0x18]
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
xor r14d, r14d
mov esi, r14d
test r11, r11
je 0x140039eac
test sil, 7
jne 0x140039db7
mov eax, esi
shr rax, 3
mov r15b, byte [rax + rbx]
test r15b, r15b
jns 0x140039e90
mov edx, r9d
mov byte [r10 + r14], r8b
neg edx
lea r8d, [r9 + 1]
cmp edx, r8d
jge 0x140039e8a
mov rax, rcx
mov r9d, 1
neg rax
mov qword [rbp + 0x20], rax
movsxd rax, r8d
mov qword [rsp + 0x60], rax
xor eax, eax
mov qword [rsp + 0x78], rax
mov eax, edx
imul eax, r13d
sub r8d, edx
movsxd rcx, eax
mov eax, r8d
mov r8, qword [rbp + 0x20]
mov qword [rbp - 0x70], rax
mov r11, qword [rbp - 0x70]
mov rax, qword [rsp + 0x78]
mov qword [rbp - 0x68], rcx
mov rdx, r8
cmp r8, qword [rsp + 0x60]
jge 0x140039e6a
mov rcx, qword [rsp + 0x78]
mov rax, r12
mov rdi, qword [rbp - 0x68]
sub rax, r8
add rcx, rax
mov rax, qword [rsp + 0x60]
cmp byte [rdx + rcx], 0
je 0x140039e56
lea rax, [r10 + rdx]
add rax, r14
cmp byte [rax + rdi], r9b
je 0x140039e51
mov byte [rax + rdi], 2
mov rax, qword [rsp + 0x60]
add rdx, r9
cmp rdx, rax
jl 0x140039e3a
mov rax, qword [rsp + 0x78]
mov rdi, r13
mov rcx, qword [rbp - 0x68]
add rax, 9
add rcx, rdi
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x68], rcx
sub r11, r9
jne 0x140039e19
movsxd r9, dword [rbp - 0x48]
mov r11, qword [rbp - 0x28]
mov rcx, r9
mov r8d, 1
add esi, r8d
add r14, r8
add r15b, r15b
cmp r14, r11
jl 0x140039da7
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x58]
add rbx, rdx
add r10, rdi
sub rax, r8
mov qword [rsp + 0x68], rax
jne 0x140039d98
jmp 0x14003a009
mov esi, dword [rbp - 0x40]
mov rdx, r12
mov r12, qword [rbp - 0x20]
mov qword [rsp + 0x58], rdx
mov qword [rbp - 0x68], rax
xor r14d, r14d
mov eax, r14d
mov dword [rsp + 0x70], eax
test r11, r11
je 0x140039ff0
test al, 7
jne 0x140039efb
shr rax, 3
mov r15b, byte [rax + rbx]
mov eax, dword [rsp + 0x70]
test r15b, r15b
jns 0x140039fd5
mov edx, r9d
mov byte [r10 + r14], r8b
neg edx
lea r8d, [r9 + 1]
cmp edx, r8d
jge 0x140039fcf
movsxd r9, esi
mov rax, rcx
neg rax
mov qword [rbp - 0x70], r9
mov qword [rbp + 0x20], rax
movsxd rax, r8d
mov qword [rsp + 0x78], rax
mov eax, edx
mov rsi, qword [rsp + 0x78]
imul eax, r13d
mov r13, qword [rbp - 0x70]
cdqe
mov qword [rsp + 0x68], rax
xor eax, eax
mov r11, qword [rsp + 0x68]
sub r8d, edx
mov r9d, r8d
mov r8, qword [rbp + 0x20]
lea ebx, [rax + 1]
mov qword [rsp + 0x60], rax
mov rdx, r8
cmp r8, rsi
jge 0x140039faa
mov rsi, qword [rsp + 0x60]
lea rax, [rcx + r12]
add rsi, rax
mov rax, qword [rsp + 0x78]
cmp byte [rsi + rdx], 0
je 0x140039f98
lea rax, [r10 + r11]
add rax, rdx
cmp byte [rax + r14], bl
je 0x140039f93
mov byte [rax + r14], 2
mov rax, qword [rsp + 0x78]
add rdx, rbx
cmp rdx, rax
jl 0x140039f7b
mov rax, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x78]
add rax, r13
add r11, rdi
mov qword [rsp + 0x60], rax
sub r9, rbx
jne 0x140039f62
mov rbx, qword [rbp - 0x78]
mov r9d, ecx
mov r11, qword [rbp - 0x28]
mov r13d, edi
mov esi, dword [rbp - 0x40]
mov eax, dword [rsp + 0x70]
mov r8d, 1
add eax, r8d
add r14, r8
add r15b, r15b
mov dword [rsp + 0x70], eax
cmp r14, r11
jl 0x140039eeb
mov rdx, qword [rsp + 0x58]
add rbx, qword [rbp - 0x68]
add r10, rdi
sub rdx, r8
mov qword [rbp - 0x78], rbx
mov qword [rsp + 0x58], rdx
jne 0x140039ed8
mov rsi, qword [rbp - 0x50]
xor edi, edi
jmp 0x14003b4ab
mov edx, dword [rsi + 0x1221b0]
movzx ecx, byte [rsi + 0x121d84]
mov byte [rbp - 0x7c], al
mov eax, dword [rbp + 0xc]
add eax, dword [rbp + 4]
imul ecx, eax
mov eax, dword [rbp - 0x10]
add eax, dword [rbp + 4]
imul eax, edx
mov dword [rbp - 0x54], edx
movsxd r15, ecx
mov ecx, dword [rbp - 0x80]
cdqe
add r15, rax
mov eax, dword [rsi + 0x1221a8]
add r15, qword [rsi + 0x1221b8]
cdq
sub eax, edx
mov qword [rbp - 0x30], r15
movsxd rdx, dword [rbp - 0x54]
mov rdi, r15
sar eax, 1
mov r14, rdx
mov r10d, eax
mov eax, dword [rsi + 0x121d98]
or eax, dword [rsi + 0x121d94]
or eax, dword [rsi + 0x121d90]
mov dword [rbp], eax
or eax, dword [rsi + 0x121d9c]
mov dword [rbp - 0x58], r10d
mov dword [rsp + 0x70], eax
mov qword [rbp - 8], rdx
test ecx, ecx
je 0x14003cd94
sub ecx, 5
je 0x14003c4e2
sub ecx, 1
je 0x14003b77a
sub ecx, 1
je 0x14003ab12
cmp ecx, 1
jne 0x14003b469
mov al, byte [rsi + 0x121d85]
mov ecx, 1
cmp r9d, ecx
jne 0x14003a3c2
xor edx, edx
test r12d, r12d
je 0x14003a961
cmp al, 8
mov eax, r8d
jne 0x14003a26c
mov rcx, r12
mov qword [rbp + 0x20], rax
mov qword [rsp + 0x58], rcx
lea esi, [rdx + 1]
mov r13d, r8d
mov r12d, 0xff
mov qword [rsp + 0x60], rdx
mov rax, rdx
test r11, r11
je 0x14003a253
mov rcx, rbx
mov r15d, r10d
sub rcx, rdi
mov qword [rbp + 0x20], rcx
lea r8, [rdi + rax]
movzx r9d, byte [rcx + r8]
lea edx, [r15 + 1]
mov dword [rsp + 0x70], r9d
mov dword [rbp - 0x60], edx
test r9d, r9d
je 0x14003a238
mov byte [r8], r9b
mov eax, r12d
mov r8d, r15d
mov rdx, rdi
sub rdx, r14
movzx ecx, byte [rdx + r8]
sub eax, ecx
imul eax, r9d
shr eax, 8
add al, cl
mov byte [rdx + r8], al
lea rdx, [rdi + r8]
movzx ecx, byte [rdx + r14]
mov eax, r12d
sub eax, ecx
mov r8, qword [rsp + 0x60]
imul eax, r9d
shr eax, 8
add al, cl
mov byte [rdx + r14], al
lea rdx, [rdi + r10]
movzx ecx, byte [rdx + r8 - 1]
mov eax, r12d
sub eax, ecx
imul eax, r9d
shr eax, 8
add al, cl
movzx ecx, byte [rdx + r8 + 1]
mov byte [rdx + r8 - 1], al
mov eax, r12d
sub eax, ecx
imul eax, r9d
shr eax, 8
add al, cl
mov byte [rdx + r8 + 1], al
lea eax, [r15 - 1]
mov r15d, dword [rbp - 0x60]
mov rdx, rdi
mov r9d, eax
sub rdx, r14
movzx ecx, byte [rdx + rax]
mov eax, r12d
sub eax, ecx
imul eax, dword [rsp + 0x70]
shr eax, 8
add al, cl
mov byte [rdx + r9], al
mov eax, r12d
mov rdx, rdi
sub rdx, r14
movzx ecx, byte [rdx + r15]
sub eax, ecx
imul eax, dword [rsp + 0x70]
shr eax, 8
add al, cl
mov byte [rdx + r15], al
lea rdx, [rdi + r9]
movzx ecx, byte [rdx + r14]
mov eax, r12d
sub eax, ecx
imul eax, dword [rsp + 0x70]
shr eax, 8
add al, cl
mov byte [rdx + r14], al
lea rdx, [rdi + r15]
movzx ecx, byte [rdx + r14]
mov eax, r12d
sub eax, ecx
imul eax, dword [rsp + 0x70]
shr eax, 8
add al, cl
mov rcx, qword [rbp + 0x20]
mov byte [rdx + r14], al
mov rax, r8
jmp 0x14003a23b
mov r15d, edx
add rax, rsi
mov qword [rsp + 0x60], rax
cmp rax, r11
jl 0x14003a11a
mov rcx, qword [rsp + 0x58]
xor edx, edx
add rbx, r13
add rdi, r14
sub rcx, rsi
mov qword [rsp + 0x58], rcx
jne 0x14003a0fc
jmp 0x14003a3a6
mov qword [rsp + 0x58], rax
mov r15d, 1
mov rcx, qword [rsp + 0x58]
mov rax, r12
mov qword [rsp + 0x68], rax
mov r12d, 0xff
mov r13, rdx
test r11, r11
je 0x14003a392
mov esi, r10d
movzx r8d, byte [rbx + r13]
mov dword [rbp - 0x38], r8d
test r8d, r8d
je 0x14003a379
mov dword [rdi + r13*4], r8d
lea r9d, [rsi*4]
lea edx, [r9 + 4]
mov rcx, rdi
sub rcx, r14
mov eax, r12d
sub eax, dword [rcx + r9]
imul eax, r8d
shr eax, 8
add dword [rcx + r9], eax
lea rcx, [rdi + r9]
mov r9d, dword [rbp - 0x38]
mov eax, r12d
sub eax, dword [rcx + r14]
imul eax, r8d
shr eax, 8
add dword [rcx + r14], eax
lea rcx, [r10 + r13]
mov eax, r12d
sub eax, dword [rdi + rcx*4 - 4]
imul eax, r8d
shr eax, 8
add dword [rdi + rcx*4 - 4], eax
mov eax, r12d
sub eax, dword [rdi + rcx*4 + 4]
imul eax, r8d
lea r8d, [rsi*4 - 4]
shr eax, 8
add dword [rdi + rcx*4 + 4], eax
mov rcx, rdi
sub rcx, r14
mov eax, r12d
sub eax, dword [rcx + r8]
imul eax, dword [rbp - 0x38]
shr eax, 8
add dword [rcx + r8], eax
mov rcx, rdi
sub rcx, r14
mov eax, r12d
sub eax, dword [rcx + rdx]
imul eax, r9d
shr eax, 8
add dword [rcx + rdx], eax
lea rcx, [rdi + r8]
mov eax, r12d
sub eax, dword [rcx + r14]
imul eax, r9d
shr eax, 8
add dword [rcx + r14], eax
lea rcx, [rdi + rdx]
mov eax, r12d
sub eax, dword [rcx + r14]
imul eax, r9d
shr eax, 8
add dword [rcx + r14], eax
xor edx, edx
add esi, r15d
add r13, r15
cmp r13, r11
jl 0x14003a299
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
add rbx, rcx
add rdi, r14
sub rax, r15
mov qword [rsp + 0x68], rax
jne 0x14003a28a
mov rsi, qword [rbp - 0x50]
mov r15, qword [rbp - 0x30]
mov r12d, dword [rbp - 0x44]
mov r13d, dword [rsp + 0x50]
mov r8d, 1
jmp 0x14003a964
test r12d, r12d
je 0x14003a3b7
cmp r9d, 4
jg 0x14003a67e
mov rsi, qword [rbp - 0x18]
cmp al, 8
mov eax, r8d
mov r8d, 1
jne 0x14003a550
mov qword [rbp - 0x38], rax
xor r13d, r13d
mov rcx, qword [rbp - 0x38]
mov rax, r12
mov qword [rbp - 0x20], rax
mov dword [rsp + 0x70], r13d
mov r15d, r13d
test r11, r11
je 0x14003a538
mov rcx, rbx
mov qword [rbp - 0x78], r11
sub rcx, rdi
mov rax, rdi
mov r12, r11
mov qword [rsp + 0x78], rcx
mov r11, rcx
mov qword [rbp - 0x68], rax
movzx ecx, byte [rax + r11]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003a510
mov r8d, r9d
mov byte [rax], cl
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003a50a
mov r11d, dword [rsp + 0x70]
mov eax, r8d
imul eax, edx
sub ecx, r8d
mov r9d, ecx
mov r13, rsi
mov qword [rbp - 0x70], r9
xor esi, esi
cdqe
mov qword [rsp + 0x60], rax
mov r12, qword [rsp + 0x60]
lea r15d, [r10 + r8]
mov rax, r13
mov rcx, r9
add r15d, r11d
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
mov edx, 1
mov r10d, 0xff
cmp byte [rax], sil
je 0x14003a4c1
mov eax, r10d
mov edx, r15d
add rdx, r12
movzx ecx, byte [rdx + rdi]
sub eax, ecx
imul eax, dword [rbp - 0x60]
shr eax, 8
add al, cl
mov rcx, qword [rsp + 0x68]
mov byte [rdx + rdi], al
mov edx, 1
mov rax, qword [rsp + 0x58]
add rax, rdx
add r15d, edx
sub rcx, rdx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003a492
add qword [rsp + 0x60], r14
add r13, 9
sub qword [rbp - 0x70], 1
mov r10d, dword [rbp - 0x58]
jne 0x14003a46b
mov r9d, dword [rbp - 0x48]
xor r13d, r13d
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x18]
mov rax, qword [rbp - 0x68]
mov r11, qword [rsp + 0x78]
mov r15d, dword [rsp + 0x70]
mov r12, qword [rbp - 0x78]
mov r8d, 1
add r15d, r8d
add rax, r8
sub r12, r8
mov dword [rsp + 0x70], r15d
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x68], rax
jne 0x14003a425
mov r11, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x38]
add rbx, rcx
add rdi, r14
sub rax, r8
mov qword [rbp - 0x20], rax
jne 0x14003a3f8
jmp 0x14003a80f
mov rcx, r12
mov qword [rbp + 0x20], rax
mov qword [rsp + 0x78], rcx
xor r12d, r12d
mov dword [rsp + 0x70], r12d
mov rax, r12
mov qword [rsp + 0x60], rax
mov r15d, r12d
test r11, r11
je 0x14003a664
movzx ecx, byte [rbx + rax]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003a646
mov r8d, r9d
mov dword [rdi + rax*4], ecx
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003a640
mov r12d, dword [rsp + 0x70]
sub ecx, r8d
mov eax, r8d
mov r9d, ecx
imul eax, edx
mov r15, rsi
mov qword [rbp - 0x70], r9
xor edx, edx
movsxd r11, eax
lea r13d, [r10 + r8]
mov rax, r15
mov rcx, r9
mov qword [rsp + 0x58], rax
add r13d, r12d
mov qword [rsp + 0x68], rcx
mov r10d, 0xff
cmp byte [rax], dl
je 0x14003a602
mov eax, r10d
lea ecx, [r13*4]
add rcx, rdi
sub eax, dword [rcx + r11]
imul eax, dword [rbp - 0x60]
shr eax, 8
add dword [rcx + r11], eax
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
inc rax
inc r13d
sub rcx, 1
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003a5d7
mov r10d, dword [rbp - 0x58]
add r15, 9
add r11, r14
sub qword [rbp - 0x70], 1
jne 0x14003a5ba
mov r11, qword [rbp - 0x28]
mov r15d, r12d
mov r9d, dword [rbp - 0x48]
xor r12d, r12d
mov edx, dword [rbp - 0x54]
mov rax, qword [rsp + 0x60]
mov r8d, 1
add r15d, r8d
add rax, r8
mov dword [rsp + 0x70], r15d
mov qword [rsp + 0x60], rax
cmp rax, r11
jl 0x14003a578
mov rcx, qword [rsp + 0x78]
add rbx, qword [rbp + 0x20]
add rdi, r14
sub rcx, r8
mov qword [rsp + 0x78], rcx
jne 0x14003a55f
jmp 0x14003a80f
mov rsi, qword [rbp - 0x20]
cmp al, 8
mov r13d, dword [rbp - 0x40]
mov eax, r8d
mov r8d, 1
jne 0x14003a825
mov qword [rbp - 0x38], rax
mov rax, r12
mov rcx, qword [rbp - 0x38]
xor r12d, r12d
mov qword [rbp - 0x18], rax
mov dword [rsp + 0x70], r12d
mov r15d, r12d
test r11, r11
je 0x14003a7fc
mov rcx, rbx
mov qword [rbp - 0x78], r11
sub rcx, rdi
mov rax, rdi
mov r12, r11
mov qword [rsp + 0x78], rcx
mov r11, rcx
mov qword [rbp - 0x68], rax
movzx ecx, byte [r11 + rax]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003a7d1
mov r8d, r9d
mov byte [rax], cl
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003a7cb
mov r11d, dword [rsp + 0x70]
mov eax, r8d
imul eax, edx
sub ecx, r8d
mov r9d, ecx
mov r12, rsi
mov qword [rbp - 0x70], r9
xor esi, esi
cdqe
mov qword [rsp + 0x60], rax
movsxd rax, r13d
mov r13, rax
lea r15d, [r10 + r8]
mov rax, r12
mov r10, qword [rsp + 0x60]
mov rcx, r9
add r15d, r11d
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
mov edx, 1
mov r14d, 0xff
cmp byte [rax], sil
je 0x14003a77a
mov eax, r14d
mov edx, r15d
add rdx, rdi
movzx ecx, byte [rdx + r10]
sub eax, ecx
imul eax, dword [rbp - 0x60]
shr eax, 8
add al, cl
mov rcx, qword [rsp + 0x68]
mov byte [rdx + r10], al
mov edx, 1
mov rax, qword [rsp + 0x58]
add rax, rdx
add r15d, edx
sub rcx, rdx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003a749
mov r14, qword [rbp - 8]
add r12, r13
add qword [rsp + 0x60], r14
sub qword [rbp - 0x70], 1
mov r10d, dword [rbp - 0x58]
jne 0x14003a722
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x20]
mov r13d, dword [rbp - 0x40]
mov rax, qword [rbp - 0x68]
mov r11, qword [rsp + 0x78]
mov r15d, dword [rsp + 0x70]
mov r12, qword [rbp - 0x78]
mov r8d, 1
add r15d, r8d
add rax, r8
sub r12, r8
mov dword [rsp + 0x70], r15d
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x68], rax
jne 0x14003a6d6
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x38]
add rbx, rcx
add rdi, r14
sub rax, r8
mov qword [rbp - 0x18], rax
jne 0x14003a6a9
mov rsi, qword [rbp - 0x50]
mov r15, qword [rbp - 0x30]
mov r12d, dword [rbp - 0x44]
mov r13d, dword [rsp + 0x50]
jmp 0x14003a964
mov rcx, r12
mov qword [rbp - 0x68], rax
mov qword [rsp + 0x78], rcx
xor r12d, r12d
mov dword [rsp + 0x70], r12d
mov rax, r12
mov qword [rsp + 0x60], rax
mov r15d, r12d
test r11, r11
je 0x14003a947
movzx ecx, byte [rbx + rax]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003a929
mov r8d, r9d
mov dword [rdi + rax*4], ecx
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003a923
mov r11d, dword [rsp + 0x70]
mov eax, r8d
imul eax, edx
sub ecx, r8d
mov r9d, ecx
mov r12, rsi
mov qword [rbp - 0x70], r9
xor esi, esi
movsxd rdx, eax
movsxd rax, r13d
mov r13, rax
lea r15d, [r10 + r8]
mov rax, r12
mov rcx, r9
mov qword [rsp + 0x58], rax
add r15d, r11d
mov qword [rsp + 0x68], rcx
mov r10d, 0xff
cmp byte [rax], sil
je 0x14003a8dc
mov eax, r10d
lea ecx, [r15*4]
add rcx, rdx
sub eax, dword [rcx + rdi]
imul eax, dword [rbp - 0x60]
shr eax, 8
add dword [rcx + rdi], eax
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
inc rax
inc r15d
sub rcx, 1
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003a8b2
mov r10d, dword [rbp - 0x58]
add r12, r13
add rdx, r14
sub qword [rbp - 0x70], 1
jne 0x14003a895
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x20]
mov r13d, dword [rbp - 0x40]
mov rax, qword [rsp + 0x60]
mov r15d, dword [rsp + 0x70]
mov r8d, 1
add r15d, r8d
add rax, r8
mov dword [rsp + 0x70], r15d
mov qword [rsp + 0x60], rax
cmp rax, r11
jl 0x14003a84d
mov rcx, qword [rsp + 0x78]
add rbx, qword [rbp - 0x68]
add rdi, r14
sub rcx, r8
mov qword [rsp + 0x78], rcx
jne 0x14003a834
jmp 0x14003a80f
mov r8, rcx
mov ecx, dword [rbp + 4]
xor edi, edi
mov eax, dword [rbp - 0x54]
imul eax, ecx
cdqe
sub r15, rax
lea eax, [rcx*4]
movsxd rcx, eax
sub r15, rcx
cmp byte [rsi + 0x121d85], 8
jne 0x14003a9df
cmp dword [rsi + 0x121da4], 0xf
jne 0x14003b46b
mov r9d, dword [rbp + 8]
lea ecx, [r12 + r9]
test ecx, ecx
jle 0x14003b46b
lea eax, [r9 + r13]
mov r9d, ecx
movsxd r8, eax
lea r11d, [rdi + 1]
test r8, r8
jle 0x14003a9d2
mov rax, r15
mov ecx, r10d
mov rdx, r8
shr byte [rax], 4
shr byte [rax + rcx], 4
add rax, r11
sub rdx, r11
jne 0x14003a9c3
add r15, r14
sub r9, r11
jne 0x14003a9b5
jmp 0x14003b46b
mov r9d, dword [rbp + 8]
lea ecx, [r9 + r12]
cmp dword [rsi + 0x1221cc], edi
je 0x14003aaa9
test ecx, ecx
jle 0x14003b46b
lea eax, [r9 + r13]
mov r11d, ecx
movsxd rbx, eax
test rbx, rbx
jle 0x14003aa98
mov r9, r15
mov edi, r10d
mov r12, rbx
mov r8d, dword [r9]
mov edx, r8d
mov cl, byte [rsi + 0x121d8d]
mov eax, r8d
shl edx, cl
mov cl, byte [rsi + 0x121d8f]
shl eax, cl
mov cl, byte [rsi + 0x121d8e]
or edx, eax
mov eax, r8d
shl eax, cl
mov cl, byte [rsi + 0x121d8c]
or edx, eax
shl r8d, cl
or edx, r8d
mov dword [r9], edx
mov r8d, dword [r9 + rdi*4]
mov edx, r8d
mov cl, byte [rsi + 0x121d8d]
mov eax, r8d
shl edx, cl
mov cl, byte [rsi + 0x121d8f]
shl eax, cl
mov cl, byte [rsi + 0x121d8e]
or edx, eax
mov eax, r8d
shl eax, cl
mov cl, byte [rsi + 0x121d8c]
or edx, eax
shl r8d, cl
or edx, r8d
mov r8d, 1
mov dword [r9 + rdi*4], edx
lea r9, [r9 + 4]
sub r12, r8
jne 0x14003aa17
xor edi, edi
add r15, r14
sub r11, r8
jne 0x14003aa05
jmp 0x14003b46b
test ecx, ecx
jle 0x14003b46b
mov edx, dword [rbp]
lea eax, [r9 + r13]
movsxd r11, eax
mov r9d, ecx
test r11, r11
jle 0x14003ab05
mov r8, r15
mov ebx, r10d
mov rdi, r11
mov r14d, 1
mov cl, byte [rsi + 0x121d8f]
mov eax, dword [r8]
shl eax, cl
or eax, edx
mov dword [r8], eax
mov eax, dword [r8 + rbx*4]
mov cl, byte [rsi + 0x121d8f]
shl eax, cl
or eax, edx
mov dword [r8 + rbx*4], eax
lea r8, [r8 + 4]
sub rdi, r14
jne 0x14003aad2
mov r14, qword [rbp - 8]
lea r8d, [rdi + 1]
add r15, r14
sub r9, r8
jne 0x14003aabe
jmp 0x14003b46b
mov al, byte [rsi + 0x121d85]
mov ecx, 1
cmp r9d, ecx
jne 0x14003ae18
xor edx, edx
test r12d, r12d
je 0x14003b385
cmp al, 8
mov eax, r8d
jne 0x14003acc9
mov rcx, r12
mov qword [rbp + 0x20], rax
mov qword [rsp + 0x58], rcx
lea esi, [rdx + 1]
mov r13d, r8d
mov qword [rsp + 0x78], rdx
mov rax, rdx
test r11, r11
je 0x14003acb0
mov rcx, rbx
mov r15d, r10d
sub rcx, rdi
mov qword [rbp + 0x20], rcx
lea r8, [rdi + rax]
movzx r9d, byte [rcx + r8]
lea edx, [r15 + 1]
mov dword [rbp - 0x80], r9d
mov dword [rbp - 0x60], edx
test r9d, r9d
je 0x14003ac95
mov byte [r8], r9b
mov eax, 0x40
mov r8d, r15d
mov rdx, rdi
sub rdx, r14
movzx ecx, byte [rdx + r8]
sub eax, ecx
imul eax, r9d
shr eax, 6
add al, cl
mov byte [rdx + r8], al
lea rdx, [rdi + r8]
movzx ecx, byte [rdx + r14]
mov r8d, 0x40
mov eax, r8d
sub eax, ecx
imul eax, r9d
shr eax, 6
add al, cl
mov rcx, qword [rsp + 0x78]
mov byte [rdx + r14], al
lea rdx, [rdi + r10]
mov eax, r8d
movzx ecx, byte [rdx + rcx - 1]
sub eax, ecx
imul eax, r9d
shr eax, 6
add al, cl
mov rcx, qword [rsp + 0x78]
mov byte [rdx + rcx - 1], al
mov eax, r8d
movzx ecx, byte [rdx + rcx + 1]
sub eax, ecx
imul eax, r9d
shr eax, 6
add al, cl
mov rcx, qword [rsp + 0x78]
mov byte [rdx + rcx + 1], al
lea eax, [r15 - 1]
mov r15d, dword [rbp - 0x60]
mov rdx, rdi
mov r9d, eax
sub rdx, r14
movzx ecx, byte [rdx + rax]
mov eax, r8d
sub eax, ecx
imul eax, dword [rbp - 0x80]
shr eax, 6
add al, cl
mov byte [rdx + r9], al
mov eax, r8d
mov rdx, rdi
sub rdx, r14
movzx ecx, byte [rdx + r15]
sub eax, ecx
imul eax, dword [rbp - 0x80]
shr eax, 6
add al, cl
mov byte [rdx + r15], al
lea rdx, [rdi + r9]
movzx ecx, byte [rdx + r14]
mov eax, r8d
sub eax, ecx
imul eax, dword [rbp - 0x80]
shr eax, 6
add al, cl
mov byte [rdx + r14], al
lea rdx, [rdi + r15]
movzx ecx, byte [rdx + r14]
mov eax, r8d
sub eax, ecx
imul eax, dword [rbp - 0x80]
shr eax, 6
add al, cl
mov rcx, qword [rbp + 0x20]
mov byte [rdx + r14], al
mov rax, qword [rsp + 0x78]
jmp 0x14003ac98
mov r15d, edx
add rax, rsi
mov qword [rsp + 0x78], rax
cmp rax, r11
jl 0x14003ab6c
mov rcx, qword [rsp + 0x58]
xor edx, edx
add rbx, r13
add rdi, r14
sub rcx, rsi
mov qword [rsp + 0x58], rcx
jne 0x14003ab4e
jmp 0x14003ae00
mov qword [rsp + 0x58], rax
mov r15d, 1
mov rcx, qword [rsp + 0x58]
mov rax, r12
mov qword [rsp + 0x68], rax
mov r13, rdx
test r11, r11
je 0x14003adec
mov esi, r10d
movzx r8d, byte [rbx + r13]
mov dword [rbp - 0x80], r8d
test r8d, r8d
je 0x14003add3
mov dword [rdi + r13*4], r8d
lea r9d, [rsi*4]
mov edx, 0x40
mov ecx, r9d
sub rcx, r14
mov eax, 0x40
sub eax, dword [rcx + rdi]
imul eax, r8d
shr eax, 6
add dword [rcx + rdi], eax
lea rcx, [r9 + rdi]
mov eax, edx
sub eax, dword [rcx + r14]
imul eax, r8d
shr eax, 6
add dword [rcx + r14], eax
lea rcx, [r10 + r13]
mov eax, edx
sub eax, dword [rdi + rcx*4 - 4]
imul eax, r8d
shr eax, 6
add dword [rdi + rcx*4 - 4], eax
mov eax, edx
sub eax, dword [rdi + rcx*4 + 4]
imul eax, r8d
shr eax, 6
add dword [rdi + rcx*4 + 4], eax
lea eax, [rsi*4 - 4]
mov ecx, eax
mov r8d, eax
sub rcx, r14
mov eax, edx
sub eax, dword [rcx + rdi]
imul eax, dword [rbp - 0x80]
shr eax, 6
add dword [rcx + rdi], eax
lea eax, [r9 + 4]
mov edx, eax
mov r9d, 0x40
mov ecx, eax
mov eax, r9d
sub rcx, r14
sub eax, dword [rcx + rdi]
imul eax, dword [rbp - 0x80]
shr eax, 6
add dword [rcx + rdi], eax
lea rcx, [r8 + rdi]
mov eax, r9d
sub eax, dword [rcx + r14]
imul eax, dword [rbp - 0x80]
shr eax, 6
add dword [rcx + r14], eax
lea rcx, [rdx + rdi]
mov eax, r9d
sub eax, dword [rcx + r14]
imul eax, dword [rbp - 0x80]
shr eax, 6
add dword [rcx + r14], eax
xor edx, edx
add esi, r15d
add r13, r15
cmp r13, r11
jl 0x14003acf0
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
add rbx, rcx
add rdi, r14
sub rax, r15
mov qword [rsp + 0x68], rax
jne 0x14003ace1
mov rsi, qword [rbp - 0x50]
mov r15, qword [rbp - 0x30]
mov r13d, dword [rsp + 0x50]
mov r8d, 1
jmp 0x14003b388
test r12d, r12d
je 0x14003ae0d
cmp r9d, 4
jg 0x14003b0c0
mov rsi, qword [rbp - 0x18]
cmp al, 8
mov eax, r8d
mov r8d, 1
jne 0x14003af9c
mov qword [rbp - 0x38], rax
xor r13d, r13d
mov rcx, qword [rbp - 0x38]
mov rax, r12
mov qword [rbp - 0x20], rax
mov dword [rbp - 0x80], r13d
mov r15d, r13d
test r11, r11
je 0x14003af84
mov rcx, rbx
mov qword [rbp - 0x78], r11
sub rcx, rdi
mov rax, rdi
mov r12, r11
mov qword [rsp + 0x78], rcx
mov r11, rcx
mov qword [rbp - 0x68], rax
movzx ecx, byte [r11 + rax]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003af5d
mov r8d, r9d
mov byte [rax], cl
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003af57
mov r11d, dword [rbp - 0x80]
mov eax, r8d
imul eax, edx
sub ecx, r8d
mov r9d, ecx
mov r13, rsi
mov qword [rbp - 0x70], r9
xor esi, esi
cdqe
mov qword [rsp + 0x60], rax
mov r12, qword [rsp + 0x60]
lea r15d, [r10 + r8]
mov rax, r13
mov rcx, r9
add r15d, r11d
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
mov edx, 1
cmp byte [rax], sil
je 0x14003af13
mov eax, 0x40
mov edx, r15d
add rdx, rdi
movzx ecx, byte [rdx + r12]
sub eax, ecx
imul eax, dword [rbp - 0x60]
shr eax, 6
add al, cl
mov rcx, qword [rsp + 0x68]
mov byte [rdx + r12], al
mov edx, 1
mov rax, qword [rsp + 0x58]
add rax, rdx
add r15d, edx
sub rcx, rdx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003aee0
add qword [rsp + 0x60], r14
add r13, 9
sub qword [rbp - 0x70], 1
jne 0x14003aebf
mov r9d, dword [rbp - 0x48]
xor r13d, r13d
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x18]
mov rax, qword [rbp - 0x68]
mov r11, qword [rsp + 0x78]
mov r15d, dword [rbp - 0x80]
mov r12, qword [rbp - 0x78]
mov r8d, 1
add r15d, r8d
add rax, r8
sub r12, r8
mov dword [rbp - 0x80], r15d
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x68], rax
jne 0x14003ae7a
mov r11, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x38]
add rbx, rcx
add rdi, r14
sub rax, r8
mov qword [rbp - 0x20], rax
jne 0x14003ae4e
jmp 0x14003b23f
mov rcx, r12
mov qword [rbp + 0x20], rax
mov qword [rsp + 0x78], rcx
xor r12d, r12d
mov dword [rbp - 0x80], r12d
mov rax, r12
mov qword [rsp + 0x60], rax
mov r15d, r12d
test r11, r11
je 0x14003b0a6
movzx ecx, byte [rbx + rax]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003b089
mov r8d, r9d
mov dword [rdi + rax*4], ecx
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003b083
mov r11d, dword [rbp - 0x80]
sub ecx, r8d
mov eax, r8d
mov r9d, ecx
imul eax, edx
mov r13, rsi
mov qword [rbp - 0x70], r9
xor edx, edx
movsxd r12, eax
lea r15d, [r10 + r8]
mov rax, r13
mov rcx, r9
mov qword [rsp + 0x58], rax
add r15d, r11d
mov qword [rsp + 0x68], rcx
cmp byte [rax], dl
je 0x14003b048
mov eax, 0x40
lea ecx, [r15*4]
add rcx, rdi
sub eax, dword [rcx + r12]
imul eax, dword [rbp - 0x60]
shr eax, 6
add dword [rcx + r12], eax
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
inc rax
inc r15d
sub rcx, 1
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003b01b
add r13, 9
add r12, r14
sub qword [rbp - 0x70], 1
jne 0x14003b004
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rax, qword [rsp + 0x60]
mov r15d, dword [rbp - 0x80]
mov r8d, 1
add r15d, r8d
add rax, r8
mov dword [rbp - 0x80], r15d
mov qword [rsp + 0x60], rax
cmp rax, r11
jl 0x14003afc3
mov rcx, qword [rsp + 0x78]
add rbx, qword [rbp + 0x20]
add rdi, r14
sub rcx, r8
mov qword [rsp + 0x78], rcx
jne 0x14003afab
jmp 0x14003b23f
mov rsi, qword [rbp - 0x20]
cmp al, 8
mov r13d, dword [rbp - 0x40]
mov eax, r8d
mov r8d, 1
jne 0x14003b255
mov qword [rbp - 0x38], rax
mov rax, r12
mov rcx, qword [rbp - 0x38]
xor r12d, r12d
mov qword [rbp - 0x18], rax
mov dword [rbp - 0x80], r12d
mov r15d, r12d
test r11, r11
je 0x14003b22c
mov rcx, rbx
mov qword [rbp - 0x78], r11
sub rcx, rdi
mov rax, rdi
mov r12, r11
mov qword [rsp + 0x78], rcx
mov r11, rcx
mov qword [rbp - 0x68], rax
movzx ecx, byte [rax + r11]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003b202
mov r8d, r9d
mov byte [rax], cl
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003b1fc
mov r11d, dword [rbp - 0x80]
mov eax, r8d
imul eax, edx
sub ecx, r8d
mov r9d, ecx
mov r12, rsi
mov qword [rbp - 0x70], r9
xor esi, esi
cdqe
mov qword [rsp + 0x60], rax
movsxd rax, r13d
mov r13, rax
lea r15d, [r10 + r8]
mov rax, r12
mov r10, qword [rsp + 0x60]
mov rcx, r9
add r15d, r11d
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
mov edx, 1
cmp byte [rax], sil
je 0x14003b1b4
mov eax, 0x40
mov edx, r15d
add rdx, r10
movzx ecx, byte [rdx + rdi]
sub eax, ecx
imul eax, dword [rbp - 0x60]
shr eax, 6
add al, cl
mov rcx, qword [rsp + 0x68]
mov byte [rdx + rdi], al
mov edx, 1
mov rax, qword [rsp + 0x58]
add rax, rdx
add r15d, edx
sub rcx, rdx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003b183
add qword [rsp + 0x60], r14
add r12, r13
sub qword [rbp - 0x70], 1
mov r10d, dword [rbp - 0x58]
jne 0x14003b162
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x20]
mov r13d, dword [rbp - 0x40]
mov rax, qword [rbp - 0x68]
mov r11, qword [rsp + 0x78]
mov r15d, dword [rbp - 0x80]
mov r12, qword [rbp - 0x78]
mov r8d, 1
add r15d, r8d
add rax, r8
sub r12, r8
mov dword [rbp - 0x80], r15d
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x68], rax
jne 0x14003b117
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x38]
add rbx, rcx
add rdi, r14
sub rax, r8
mov qword [rbp - 0x18], rax
jne 0x14003b0eb
mov rsi, qword [rbp - 0x50]
mov r15, qword [rbp - 0x30]
mov r12d, dword [rbp - 0x44]
mov r13d, dword [rsp + 0x50]
jmp 0x14003b388
mov rcx, r12
mov qword [rbp - 0x68], rax
mov qword [rsp + 0x78], rcx
xor r12d, r12d
mov dword [rbp - 0x80], r12d
mov rax, r12
mov qword [rsp + 0x60], rax
mov r15d, r12d
test r11, r11
je 0x14003b36b
movzx ecx, byte [rbx + rax]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003b34e
mov r8d, r9d
mov dword [rdi + rax*4], ecx
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003b348
mov r11d, dword [rbp - 0x80]
mov eax, r8d
imul eax, edx
sub ecx, r8d
mov r9d, ecx
mov r12, rsi
mov qword [rbp - 0x70], r9
xor esi, esi
movsxd rdx, eax
movsxd rax, r13d
mov r13, rax
lea r15d, [r10 + r8]
mov rax, r12
mov rcx, r9
mov qword [rsp + 0x58], rax
add r15d, r11d
mov qword [rsp + 0x68], rcx
cmp byte [rax], sil
je 0x14003b306
mov eax, 0x40
lea ecx, [r15*4]
add rcx, rdi
sub eax, dword [rcx + rdx]
imul eax, dword [rbp - 0x60]
shr eax, 6
add dword [rcx + rdx], eax
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
inc rax
inc r15d
sub rcx, 1
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003b2da
add r12, r13
add rdx, r14
sub qword [rbp - 0x70], 1
jne 0x14003b2c3
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x20]
mov r13d, dword [rbp - 0x40]
mov rax, qword [rsp + 0x60]
mov r15d, dword [rbp - 0x80]
mov r8d, 1
add r15d, r8d
add rax, r8
mov dword [rbp - 0x80], r15d
mov qword [rsp + 0x60], rax
cmp rax, r11
jl 0x14003b27c
mov rcx, qword [rsp + 0x78]
add rbx, qword [rbp - 0x68]
add rdi, r14
sub rcx, r8
mov qword [rsp + 0x78], rcx
jne 0x14003b264
jmp 0x14003b23f
mov r8, rcx
mov eax, dword [rbp - 0x54]
xor edi, edi
movsxd rcx, dword [rbp + 4]
mov r9d, dword [rbp + 8]
imul eax, ecx
lea edx, [r9 + r12]
cdqe
sub r15, rax
cmp byte [rsi + 0x121d85], 8
jne 0x14003b565
sub r15, rcx
cmp dword [rsi + 0x121da4], 0xf
jne 0x14003b50a
test edx, edx
jle 0x14003b46b
lea eax, [r9 + r13]
mov edi, edx
mov r8, r15
movsxd r12, eax
neg r8
mov eax, 1
xor r13d, r13d
test r12, r12
jle 0x14003b45a
mov ebx, r10d
mov rdx, r15
mov r9d, r10d
mov r14d, 1
mov r11b, byte [rdx]
cmp r11b, 0x40
jne 0x14003b406
mov byte [rdx], 0xf
mov r9, rbx
mov byte [rdx + rbx], r13b
jmp 0x14003b445
test r11b, r11b
mov cl, r11b
mov rax, rbx
cmovne rax, r9
shr cl, 2
mov r9, rax
neg r11b
sbb al, al
and al, cl
lea rcx, [r8 + rdx]
mov byte [rdx], al
lea rax, [r9 + r15]
mov r11b, byte [rax + rcx]
lea rax, [r9 + r15]
test r11b, r11b
je 0x14003b441
shr r11b, 2
mov byte [rax + rcx], r11b
jmp 0x14003b445
mov byte [rax + rcx], r13b
add rdx, r14
lea rax, [r8 + rdx]
cmp rax, r12
jl 0x14003b3f1
mov r14, qword [rbp - 8]
mov eax, 1
add r15, r14
sub r8, r14
sub rdi, rax
jne 0x14003b3dd
xor edi, edi
cmp dword [rbp + 0xe8], edi
je 0x14003b4ab
movzx ecx, word [rsi + 0x1218ae]
mov r8d, dword [rbp + 0xc]
mov edx, dword [rbp - 0x10]
lea eax, [r8 - 1]
mov dword [rbp + 0x20], eax
lea eax, [rdx - 1]
mov dword [rbp + 0x24], eax
lea eax, [r8 - 1]
add eax, ecx
mov dword [rbp + 0x28], eax
lea eax, [rdx - 1]
add eax, ecx
lea rdx, [rbp + 0x20]
mov rcx, rsi
mov dword [rbp + 0x2c], eax
call fcn.14003d714
mov r15d, 1
mov r12, qword [rbp + 0x10]
mov eax, dword [rbp + 8]
mov r9d, dword [rbp + 0x18]
mov r10d, dword [rbp + 0x1c]
add word [r12 + 0xe], ax
add word [r12 + 0x10], ax
add word [r12 + 0x12], ax
mov eax, 0xffff
cmp r9d, eax
ja 0x14003d65f
test r10d, r10d
jne 0x14003d65f
mov eax, r9d
add rax, 0x1bbb
shl rax, 4
add rax, rsi
mov dword [rax], r15d
mov qword [rax + 8], r12
mov qword [r12 + 0x30], rax
jmp 0x14003d6e0
test edx, edx
jle 0x14003b46b
lea eax, [r9 + r13]
mov esi, 1
movsxd r8, eax
mov r9d, edx
test r8, r8
jle 0x14003b558
mov rcx, r15
mov edx, r10d
mov r11, r8
lea rbx, [0x140000000]
movzx eax, byte [rcx]
mov al, byte [rax + rbx + 0xed290]
mov byte [rcx], al
movzx eax, byte [rcx + rdx]
mov al, byte [rax + rbx + 0xed290]
mov byte [rcx + rdx], al
add rcx, rsi
sub r11, rsi
jne 0x14003b536
add r15, r14
sub r9, rsi
jne 0x14003b521
jmp 0x14003d57b
lea eax, [rcx*4]
movsxd rcx, eax
sub r15, rcx
cmp dword [rsi + 0x1221cc], edi
je 0x14003b6a7
test edx, edx
jle 0x14003b46b
lea eax, [r9 + r13]
mov r13d, edx
mov dword [rbp - 0x60], eax
mov r12, rdi
test eax, eax
jle 0x14003b696
mov ecx, eax
mov r11, r15
mov ebx, r10d
mov r9d, r10d
lea r10, [0x140000000]
mov qword [rsp + 0x60], rcx
cmp dword [r11], 0x40
jne 0x14003b5c8
or dword [r11], 0xffffffff
mov r9, rbx
mov dword [r11 + rbx*4], edi
jmp 0x14003b676
cmp dword [r11], edi
je 0x14003b615
mov cl, byte [rsi + 0x121d8d]
mov r9, rbx
mov eax, dword [r11]
movzx r8d, byte [rax + r10 + 0xed290]
mov edx, r8d
mov eax, r8d
shl edx, cl
mov cl, byte [rsi + 0x121d8f]
shl eax, cl
mov cl, byte [rsi + 0x121d8e]
or edx, eax
mov eax, r8d
shl eax, cl
mov cl, byte [rsi + 0x121d8c]
or edx, eax
shl r8d, cl
mov rcx, qword [rsp + 0x60]
or edx, r8d
mov dword [r11], edx
lea rdi, [r9 + r12]
mov eax, dword [r15 + rdi*4]
cmp eax, 0x40
jne 0x14003b629
or dword [r15 + rdi*4], 0xffffffff
jmp 0x14003b670
test eax, eax
je 0x14003b670
movzx r8d, byte [rax + r10 + 0xed290]
mov cl, byte [rsi + 0x121d8e]
mov edx, r8d
shl edx, cl
mov eax, r8d
mov cl, byte [rsi + 0x121d8c]
shl eax, cl
mov cl, byte [rsi + 0x121d8f]
or edx, eax
mov eax, r8d
shl eax, cl
mov cl, byte [rsi + 0x121d8d]
or edx, eax
shl r8d, cl
mov rcx, qword [rsp + 0x60]
or edx, r8d
mov dword [r15 + rdi*4], edx
xor edi, edi
lea r8d, [rdi + 1]
add r12, r8
add r11, 4
sub rcx, r8
mov qword [rsp + 0x60], rcx
jne 0x14003b5b2
mov r14, qword [rbp - 8]
mov r10d, dword [rbp - 0x58]
mov eax, dword [rbp - 0x60]
add r15, r14
sub r13, r8
jne 0x14003b590
jmp 0x14003b46b
test edx, edx
jle 0x14003b46b
mov r12d, dword [rsp + 0x70]
lea eax, [r9 + r13]
mov r13d, edx
mov edx, dword [rbp]
mov dword [rbp - 0x60], eax
test eax, eax
jle 0x14003b718
mov ecx, eax
mov r9, r15
mov ebx, r10d
xor r14d, r14d
mov r8d, r10d
lea r10, [0x140000000]
mov qword [rsp + 0x58], rcx
cmp dword [r9], 0x40
jne 0x14003b72a
mov dword [r9], r12d
lea r11, [r9 + rbx*4]
mov r8, rbx
mov eax, edx
mov dword [r11], eax
add r9, 4
mov eax, 1
add rdi, rax
sub qword [rsp + 0x58], rax
jne 0x14003b6df
mov r14, qword [rbp - 8]
mov r8d, 1
mov r10d, dword [rbp - 0x58]
mov eax, dword [rbp - 0x60]
add r15, r14
mov edi, 0
sub r13, r8
jne 0x14003b6c1
jmp 0x14003b46b
cmp dword [r9], r14d
je 0x14003b749
mov eax, dword [r9]
mov cl, byte [rsi + 0x121d8f]
movzx r11d, byte [rax + r10 + 0xed290]
shl r11d, cl
or r11d, edx
jmp 0x14003b74f
mov r8, rbx
mov r11d, edx
mov dword [r9], r11d
lea rax, [r8 + rdi]
lea r11, [r15 + rax*4]
cmp dword [r11], r14d
je 0x14003b6ef
mov eax, dword [r11]
mov cl, byte [rsi + 0x121d8f]
movzx eax, byte [rax + r10 + 0xed290]
shl eax, cl
or eax, edx
jmp 0x14003b6f1
mov al, byte [rsi + 0x121d85]
mov ecx, 1
cmp r9d, ecx
jne 0x14003baf3
xor edx, edx
test r12d, r12d
je 0x14003c0f2
cmp al, 8
mov eax, r8d
mov r8d, ecx
jne 0x14003b974
mov qword [rsp + 0x58], rax
mov rax, r12
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
mov r15, rdx
test r11, r11
je 0x14003b94b
mov r12, rbx
mov esi, r10d
sub r12, rdi
xor r9d, r9d
lea rdx, [rdi + r15]
movzx eax, byte [r12 + rdx]
lea ecx, [rsi + 1]
mov dword [rsp + 0x70], eax
mov dword [rbp - 0x60], ecx
test eax, eax
je 0x14003b92d
mov r11d, eax
mov r8d, esi
mov byte [rdx], r11b
lea ebx, [rsi + rsi]
mov rdx, rdi
mov ecx, pe_nt_image_headers64
sub rdx, r14
movzx eax, word [rdx + rbx]
sub ecx, eax
mov rax, rdi
imul ecx, r11d
sub rax, r14
shr ecx, 4
add cl, byte [rdx + rbx]
lea rdx, [rdi + r14]
mov byte [rax + r8], cl
mov ecx, pe_nt_image_headers64
movzx eax, word [rdx + rbx]
sub ecx, eax
lea rax, [rdi + r14]
imul ecx, r11d
shr ecx, 4
add cl, byte [rdx + rbx]
mov byte [rax + r8], cl
mov r8d, pe_nt_image_headers64
mov edx, r10d
mov ecx, r8d
add rdx, r15
movzx eax, word [rdi + rdx*2 - 2]
sub ecx, eax
imul ecx, r11d
shr ecx, 4
add cl, byte [rdi + rdx*2 - 2]
mov byte [rdx + rdi - 1], cl
mov ecx, r8d
movzx eax, word [rdi + rdx*2 + 2]
sub ecx, eax
imul ecx, r11d
shr ecx, 4
add cl, byte [rdi + rdx*2 + 2]
mov byte [rdx + rdi + 1], cl
lea ecx, [rsi - 1]
mov esi, dword [rbp - 0x60]
lea eax, [rcx + rcx]
mov r10d, ecx
mov rdx, rdi
mov r11d, eax
sub rdx, r14
mov ecx, r8d
movzx eax, word [rdx + rax]
sub ecx, eax
mov rax, rdi
imul ecx, dword [rsp + 0x70]
sub rax, r14
shr ecx, 4
add cl, byte [rdx + r11]
mov rdx, rdi
mov byte [rax + r10], cl
sub rdx, r14
lea eax, [rbx + 2]
mov ecx, r8d
mov ebx, dword [rsp + 0x70]
mov r9d, eax
movzx eax, word [rdx + rax]
sub ecx, eax
mov rax, rdi
imul ecx, ebx
sub rax, r14
shr ecx, 4
add cl, byte [rdx + r9]
lea rdx, [rdi + r14]
mov byte [rax + rsi], cl
mov ecx, r8d
movzx eax, word [rdx + r11]
sub ecx, eax
lea rax, [rdi + r14]
imul ecx, ebx
shr ecx, 4
add cl, byte [rdx + r11]
lea rdx, [rdi + r14]
mov byte [rax + r10], cl
movzx eax, word [rdx + r9]
mov ecx, r8d
mov r10d, dword [rbp - 0x58]
sub ecx, eax
imul ecx, ebx
lea rax, [rdi + r14]
mov r11, r13
mov r8d, 1
shr ecx, 4
add cl, byte [rdx + r9]
mov byte [rax + rsi], cl
xor r9d, r9d
jmp 0x14003b92f
mov esi, ecx
add r15, r8
cmp r15, r11
jl 0x14003b7d1
mov rbx, qword [rbp - 0x78]
xor edx, edx
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
add rbx, rcx
add rdi, r14
sub rax, r8
mov qword [rbp - 0x78], rbx
mov qword [rsp + 0x68], rax
jne 0x14003b7b9
mov rsi, qword [rbp - 0x50]
mov r15, qword [rbp - 0x30]
mov r12d, dword [rbp - 0x44]
jmp 0x14003c0f5
mov qword [rsp + 0x58], rax
mov rax, r12
mov rcx, qword [rsp + 0x58]
mov r12d, pe_nt_image_headers64
mov qword [rsp + 0x68], rax
mov r13, rdx
test r11, r11
je 0x14003bada
mov esi, dword [rbp - 0x58]
mov r15d, r10d
movzx r9d, byte [rbx + r13]
mov dword [rbp - 0x38], r9d
test r9d, r9d
je 0x14003babd
mov word [rdi + r13*2], r9w
lea r10d, [r15 + r15]
mov eax, r12d
mov rdx, rdi
sub rdx, r14
movzx ecx, word [rdx + r10]
sub eax, ecx
imul eax, r9d
shr eax, 4
add ax, cx
mov word [rdx + r10], ax
lea rdx, [rdi + r10]
movzx ecx, word [rdx + r14]
mov eax, r12d
sub eax, ecx
imul eax, r9d
shr eax, 4
add ax, cx
mov word [rdx + r14], ax
lea rdx, [rsi + r13]
movzx ecx, word [rdi + rdx*2 - 2]
mov eax, r12d
sub eax, ecx
imul eax, r9d
shr eax, 4
add ax, cx
movzx ecx, word [rdi + rdx*2 + 2]
mov word [rdi + rdx*2 - 2], ax
mov eax, r12d
sub eax, ecx
imul eax, r9d
shr eax, 4
add ax, cx
mov word [rdi + rdx*2 + 2], ax
lea eax, [r15*2 - 2]
mov r9d, eax
mov rdx, rdi
sub rdx, r14
movzx ecx, word [rdx + rax]
mov eax, r12d
sub eax, ecx
imul eax, dword [rbp - 0x38]
shr eax, 4
add ax, cx
mov word [rdx + r9], ax
lea eax, [r10 + 2]
mov r10d, dword [rbp - 0x38]
mov rdx, rdi
mov r8d, eax
sub rdx, r14
movzx ecx, word [rdx + rax]
mov eax, r12d
sub eax, ecx
imul eax, r10d
shr eax, 4
add ax, cx
mov word [rdx + r8], ax
lea rdx, [rdi + r9]
movzx ecx, word [rdx + r14]
mov eax, r12d
sub eax, ecx
imul eax, r10d
shr eax, 4
add ax, cx
mov word [rdx + r14], ax
lea rdx, [rdi + r8]
movzx ecx, word [rdx + r14]
mov eax, r12d
sub eax, ecx
imul eax, r10d
shr eax, 4
add ax, cx
mov word [rdx + r14], ax
xor edx, edx
lea r8d, [rdx + 1]
add r15d, r8d
add r13, r8
cmp r13, r11
jl 0x14003b99e
mov r10d, dword [rbp - 0x58]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
add rbx, rcx
add rdi, r14
sub rax, r8
mov qword [rsp + 0x68], rax
jne 0x14003b98c
jmp 0x14003bf75
test r12d, r12d
je 0x14003c0ea
cmp r9d, 4
jg 0x14003bde1
mov rsi, qword [rbp - 0x18]
cmp al, 8
mov eax, r8d
mov r8d, 1
jne 0x14003bc90
mov qword [rbp - 0x38], rax
xor r13d, r13d
mov rcx, qword [rbp - 0x38]
mov rax, r12
mov qword [rbp - 0x20], rax
mov dword [rsp + 0x70], r13d
mov r15d, r13d
test r11, r11
je 0x14003bc78
mov rcx, rbx
mov qword [rbp - 0x78], r11
sub rcx, rdi
mov rax, rdi
mov r12, r11
mov qword [rsp + 0x78], rcx
mov r11, rcx
mov qword [rbp - 0x68], rax
movzx ecx, byte [r11 + rax]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003bc50
mov r8d, r9d
mov byte [rax], cl
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003bc4a
mov r11d, dword [rsp + 0x70]
mov eax, r8d
imul eax, edx
sub ecx, r8d
mov r9d, ecx
mov r13, rsi
mov qword [rbp - 0x70], r9
xor esi, esi
cdqe
mov qword [rsp + 0x60], rax
mov r12, qword [rsp + 0x60]
lea r15d, [r10 + r8]
mov edx, 1
mov rax, r13
mov rcx, r9
mov qword [rsp + 0x58], rax
add r15d, r11d
mov qword [rsp + 0x68], rcx
lea r10d, [rdx + 0xf]
cmp byte [rax], sil
je 0x14003bbfd
mov eax, r10d
mov edx, r15d
sub eax, dword [rbp - 0x60]
add rdx, rdi
movzx ecx, byte [rdx + r12]
sub ecx, r10d
imul ecx, eax
mov rax, qword [rsp + 0x58]
add ecx, 0x100
shr ecx, 4
mov byte [rdx + r12], cl
mov edx, 1
mov rcx, qword [rsp + 0x68]
add rax, rdx
add r15d, edx
sub rcx, rdx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003bbc5
add qword [rsp + 0x60], r14
add r13, 9
sub qword [rbp - 0x70], 1
mov r10d, dword [rbp - 0x58]
jne 0x14003bba0
mov r9d, dword [rbp - 0x48]
xor r13d, r13d
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x18]
mov rax, qword [rbp - 0x68]
mov r11, qword [rsp + 0x78]
mov r15d, dword [rsp + 0x70]
mov r12, qword [rbp - 0x78]
mov r8d, 1
add r15d, r8d
add rax, r8
sub r12, r8
mov dword [rsp + 0x70], r15d
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x68], rax
jne 0x14003bb5a
mov r11, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x38]
add rbx, rcx
add rdi, r14
sub rax, r8
mov qword [rbp - 0x20], rax
jne 0x14003bb2d
jmp 0x14003bf75
mov rcx, r12
mov qword [rbp + 0x20], rax
mov qword [rbp - 0x68], rcx
xor r12d, r12d
mov dword [rsp + 0x70], r12d
mov rax, r12
mov qword [rsp + 0x78], rax
mov r15d, r12d
test r11, r11
je 0x14003bdc8
movzx ecx, byte [rbx + rax]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003bdab
mov r8d, r9d
mov word [rdi + rax*2], cx
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003bda5
mov r12d, dword [rsp + 0x70]
mov eax, r8d
imul eax, edx
sub ecx, r8d
mov r11d, ecx
mov r13, rsi
mov qword [rbp - 0x70], r11
xor r9d, r9d
cdqe
mov qword [rsp + 0x60], rax
lea r15d, [r10 + r8]
mov edx, 1
mov r10, qword [rsp + 0x60]
mov rax, r13
mov rcx, r11
mov qword [rsp + 0x58], rax
add r15d, r12d
mov qword [rsp + 0x68], rcx
lea r14d, [rdx + 0xf]
cmp byte [rax], r9b
je 0x14003bd5e
mov eax, r14d
lea edx, [r15 + r15]
sub eax, dword [rbp - 0x60]
add rdx, rdi
movzx ecx, word [rdx + r10]
sub ecx, r14d
imul ecx, eax
mov rax, qword [rsp + 0x58]
add ecx, 0x100
shr ecx, 4
mov word [rdx + r10], cx
mov edx, 1
mov rcx, qword [rsp + 0x68]
add rax, rdx
add r15d, edx
sub rcx, rdx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003bd24
mov r14, qword [rbp - 8]
add r13, 9
add qword [rsp + 0x60], r14
sub qword [rbp - 0x70], 1
mov r10d, dword [rbp - 0x58]
jne 0x14003bcff
mov r11, qword [rbp - 0x28]
mov r15d, r12d
mov r9d, dword [rbp - 0x48]
xor r12d, r12d
mov edx, dword [rbp - 0x54]
mov rax, qword [rsp + 0x78]
mov r8d, 1
add r15d, r8d
add rax, r8
mov dword [rsp + 0x70], r15d
mov qword [rsp + 0x78], rax
cmp rax, r11
jl 0x14003bcb7
mov rcx, qword [rbp - 0x68]
add rbx, qword [rbp + 0x20]
add rdi, r14
sub rcx, r8
mov qword [rbp - 0x68], rcx
jne 0x14003bc9e
jmp 0x14003bf75
mov rsi, qword [rbp - 0x20]
cmp al, 8
mov r13d, dword [rbp - 0x40]
mov eax, r8d
mov r8d, 1
jne 0x14003bf8b
mov qword [rbp - 0x38], rax
mov rax, r12
mov rcx, qword [rbp - 0x38]
xor r12d, r12d
mov qword [rbp - 0x18], rax
mov dword [rsp + 0x70], r12d
mov r15d, r12d
test r11, r11
je 0x14003bf62
mov rcx, rbx
mov qword [rbp - 0x78], r11
sub rcx, rdi
mov rax, rdi
mov r12, r11
mov qword [rsp + 0x78], rcx
mov r11, rcx
mov qword [rbp - 0x68], rax
movzx ecx, byte [rax + r11]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003bf37
mov r8d, r9d
mov byte [rax], cl
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003bf31
mov r11d, dword [rsp + 0x70]
mov eax, r8d
imul eax, edx
sub ecx, r8d
mov r9d, ecx
mov r12, rsi
mov qword [rbp - 0x70], r9
xor esi, esi
cdqe
mov qword [rsp + 0x60], rax
movsxd rax, r13d
mov r13, rax
lea r15d, [r10 + r8]
mov edx, 1
mov r10, qword [rsp + 0x60]
mov rax, r12
mov rcx, r9
mov qword [rsp + 0x58], rax
add r15d, r11d
mov qword [rsp + 0x68], rcx
lea r14d, [rdx + 0xf]
cmp byte [rax], sil
je 0x14003bee0
mov eax, r14d
mov edx, r15d
sub eax, dword [rbp - 0x60]
add rdx, r10
movzx ecx, byte [rdx + rdi]
sub ecx, r14d
imul ecx, eax
mov rax, qword [rsp + 0x58]
add ecx, 0x100
shr ecx, 4
mov byte [rdx + rdi], cl
mov edx, 1
mov rcx, qword [rsp + 0x68]
add rax, rdx
add r15d, edx
sub rcx, rdx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003beaa
mov r14, qword [rbp - 8]
add r12, r13
add qword [rsp + 0x60], r14
sub qword [rbp - 0x70], 1
mov r10d, dword [rbp - 0x58]
jne 0x14003be85
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x20]
mov r13d, dword [rbp - 0x40]
mov rax, qword [rbp - 0x68]
mov r11, qword [rsp + 0x78]
mov r15d, dword [rsp + 0x70]
mov r12, qword [rbp - 0x78]
mov r8d, 1
add r15d, r8d
add rax, r8
sub r12, r8
mov dword [rsp + 0x70], r15d
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x68], rax
jne 0x14003be39
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x38]
add rbx, rcx
add rdi, r14
sub rax, r8
mov qword [rbp - 0x18], rax
jne 0x14003be0c
mov rsi, qword [rbp - 0x50]
mov r15, qword [rbp - 0x30]
mov r12d, dword [rbp - 0x44]
mov r13d, dword [rsp + 0x50]
jmp 0x14003c0f5
mov rcx, r12
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x68], rcx
xor r12d, r12d
mov dword [rsp + 0x70], r12d
mov rax, r12
mov qword [rsp + 0x78], rax
mov r15d, r12d
test r11, r11
je 0x14003c0d1
movzx ecx, byte [rbx + rax]
mov dword [rbp - 0x60], ecx
test ecx, ecx
je 0x14003c0b4
mov r8d, r9d
mov word [rdi + rax*2], cx
neg r8d
lea ecx, [r9 + 1]
cmp r8d, ecx
jge 0x14003c0ae
mov r11d, dword [rsp + 0x70]
mov eax, r8d
imul eax, edx
sub ecx, r8d
mov r9d, ecx
mov r12, rsi
mov qword [rbp - 0x70], r9
xor esi, esi
cdqe
mov qword [rsp + 0x60], rax
movsxd rax, r13d
mov r13, rax
lea r15d, [r10 + r8]
mov edx, 1
mov r10, qword [rsp + 0x60]
mov rax, r12
mov rcx, r9
mov qword [rsp + 0x58], rax
add r15d, r11d
mov qword [rsp + 0x68], rcx
lea r14d, [rdx + 0xf]
cmp byte [rax], sil
je 0x14003c05e
mov eax, r14d
lea edx, [r15 + r15]
sub eax, dword [rbp - 0x60]
add rdx, rdi
movzx ecx, word [rdx + r10]
sub ecx, r14d
imul ecx, eax
mov rax, qword [rsp + 0x58]
add ecx, 0x100
shr ecx, 4
mov word [rdx + r10], cx
mov edx, 1
mov rcx, qword [rsp + 0x68]
add rax, rdx
add r15d, edx
sub rcx, rdx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
jne 0x14003c024
mov r14, qword [rbp - 8]
add r12, r13
add qword [rsp + 0x60], r14
sub qword [rbp - 0x70], 1
mov r10d, dword [rbp - 0x58]
jne 0x14003bfff
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x20]
mov r13d, dword [rbp - 0x40]
mov rax, qword [rsp + 0x78]
mov r15d, dword [rsp + 0x70]
mov r8d, 1
add r15d, r8d
add rax, r8
mov dword [rsp + 0x70], r15d
mov qword [rsp + 0x78], rax
cmp rax, r11
jl 0x14003bfb2
mov rcx, qword [rbp - 0x68]
add rbx, qword [rbp - 0x78]
add rdi, r14
sub rcx, r8
mov qword [rbp - 0x68], rcx
jne 0x14003bf99
jmp 0x14003bf75
mov r8d, 1
jmp 0x14003c0f5
mov r8, rcx
mov eax, dword [rbp - 0x54]
xor edi, edi
movsxd rcx, dword [rbp + 4]
mov r9d, dword [rbp + 8]
imul eax, ecx
lea edx, [r9 + r12]
cdqe
sub r15, rax
cmp byte [rsi + 0x121d85], 8
jne 0x14003c273
sub r15, rcx
cmp dword [rsi + 0x121da4], 0xf
jne 0x14003c1d6
test edx, edx
jle 0x14003b46b
lea eax, [r9 + r13]
mov edi, edx
mov r8, r15
movsxd r12, eax
neg r8
xor esi, esi
lea r13d, [rsi + 1]
test r12, r12
jle 0x14003c1be
mov ebx, r10d
mov rdx, r15
mov r9d, r10d
mov r14d, pe_nt_image_headers64
mov r11b, byte [rdx]
cmp r11b, r14b
jne 0x14003c170
mov byte [rdx], 0xf
mov r9, rbx
mov byte [rdx + rbx], sil
jmp 0x14003c1ae
test r11b, r11b
mov cl, r11b
mov rax, rbx
cmovne rax, r9
sub cl, r13b
mov r9, rax
neg r11b
sbb al, al
and al, cl
lea rcx, [r8 + rdx]
mov byte [rdx], al
lea rax, [r9 + r15]
mov r11b, byte [rax + rcx]
lea rax, [r9 + r15]
test r11b, r11b
je 0x14003c1aa
sub r11b, r13b
mov byte [rax + rcx], r11b
jmp 0x14003c1ae
mov byte [rax + rcx], sil
add rdx, r13
lea rax, [r8 + rdx]
cmp rax, r12
jl 0x14003c15c
mov r14, qword [rbp - 8]
add r15, r14
sub r8, r14
sub rdi, r13
jne 0x14003c148
mov rsi, qword [rbp - 0x50]
jmp 0x14003b469
test edx, edx
jle 0x14003b46b
mov rcx, r15
mov edi, edx
neg rcx
lea eax, [r9 + r13]
xor esi, esi
movsxd r12, eax
test r12, r12
jle 0x14003c263
mov r11d, r10d
mov rdx, r15
mov r8d, r10d
mov r13d, 1
mov al, byte [rdx]
cmp al, 0x10
jne 0x14003c215
mov byte [rdx], 0xff
lea r9, [rdx + r11]
mov r8, r11
jmp 0x14003c24a
test al, al
je 0x14003c221
shl al, 4
sub al, r13b
jmp 0x14003c227
mov r8, r11
mov al, sil
lea rbx, [rcx + rdx]
mov byte [rdx], al
lea r9, [r8 + r15]
add r9, rbx
mov al, byte [r9]
test al, al
je 0x14003c243
shl al, 4
sub al, r13b
jmp 0x14003c24d
lea r9, [r8 + r15]
add r9, rbx
mov al, sil
add rdx, r13
mov byte [r9], al
lea rax, [rcx + rdx]
cmp rax, r12
jl 0x14003c203
mov r14, qword [rbp - 8]
mov r8, r13
add r15, r14
sub rcx, r14
sub rdi, r8
jne 0x14003c1ef
jmp 0x14003c1cd
mov r8b, byte [rsi + 0x121d8f]
lea eax, [rcx + rcx]
sub r8b, 4
movsxd rcx, eax
add r8b, byte [rsi + 0x121d8b]
sub r15, rcx
cmp dword [rsi + 0x1221cc], edi
je 0x14003c426
test edx, edx
jle 0x14003b46b
mov al, byte [rsi + 0x121d8e]
lea ecx, [r9 + r13]
sub al, 4
mov dword [rbp - 0x28], ecx
add al, byte [rsi + 0x121d8a]
movzx edi, al
mov al, byte [rsi + 0x121d8d]
sub al, 4
mov dword [rsp + 0x70], edi
add al, byte [rsi + 0x121d89]
movzx eax, al
mov dword [rbp - 0x60], eax
mov al, byte [rsi + 0x121d8c]
sub al, 4
add al, byte [rsi + 0x121d88]
mov esi, dword [rbp - 0x60]
movzx eax, al
mov dword [rbp - 0x38], eax
movzx eax, r8b
xor r8d, r8d
mov dword [rbp - 0x30], eax
mov eax, edx
mov edx, 1
mov qword [rsp + 0x58], rax
mov r12, r8
test ecx, ecx
jle 0x14003c410
mov r14d, dword [rbp - 0x30]
mov eax, 1
mov ebx, r10d
mov r11, r15
mov r8d, r10d
mov r10d, dword [rbp - 0x38]
mov r13d, ecx
lea ecx, [rax + 0xf]
movzx r9d, word [r11]
cmp r9w, cx
jne 0x14003c34a
or word [r11], 0xffff
mov r8, rbx
xor ecx, ecx
mov word [r11 + rbx*2], cx
mov ecx, pe_nt_image_headers64
jmp 0x14003c3e9
test r9w, r9w
je 0x14003c389
mov ecx, edi
movzx edx, r9w
shl dx, cl
movzx eax, r9w
mov ecx, esi
mov r8, rbx
shl ax, cl
mov ecx, r10d
or dx, ax
movzx eax, r9w
shl ax, cl
mov ecx, r14d
shl r9w, cl
or dx, ax
or dx, r9w
mov ecx, pe_nt_image_headers64
mov word [r11], dx
lea rdi, [r8 + r12]
movzx r9d, word [r15 + rdi*2]
cmp r9w, cx
jne 0x14003c3a1
or word [r15 + rdi*2], 0xffff
jmp 0x14003c3e0
test r9w, r9w
je 0x14003c3e0
mov ecx, dword [rsp + 0x70]
movzx edx, r9w
shl dx, cl
movzx eax, r9w
mov ecx, esi
shl ax, cl
mov ecx, r10d
or dx, ax
movzx eax, r9w
shl ax, cl
mov ecx, r14d
shl r9w, cl
or dx, ax
or dx, r9w
mov ecx, pe_nt_image_headers64
mov word [r15 + rdi*2], dx
mov edi, dword [rsp + 0x70]
mov eax, 1
add r12, rax
add r11, 2
sub r13, rax
jne 0x14003c326
mov r14, qword [rbp - 8]
lea edx, [r13 + 1]
mov r10d, dword [rbp - 0x58]
xor r8d, r8d
mov rax, qword [rsp + 0x58]
mov ecx, dword [rbp - 0x28]
add r15, r14
sub rax, rdx
mov qword [rsp + 0x58], rax
jne 0x14003c2ff
jmp 0x14003c1cd
test edx, edx
jle 0x14003b46b
mov r12d, edx
add r13d, r9d
mov edx, dword [rbp]
mov esi, 1
movzx ecx, r8b
test r13d, r13d
jle 0x14003c49a
mov eax, r13d
mov r9, r15
mov ebx, r10d
mov r8d, r10d
mov r10d, pe_nt_image_headers64
mov qword [rsp + 0x58], rax
movzx eax, word [r9]
cmp ax, r10w
jne 0x14003c4ac
mov eax, r10d
lea r11, [r9 + rbx*2]
shl ax, cl
mov r8, rbx
sub ax, si
or ax, dx
mov word [r9], ax
movzx eax, dx
add rdi, rsi
mov word [r11], ax
add r9, 2
sub qword [rsp + 0x58], rsi
jne 0x14003c45c
mov r14, qword [rbp - 8]
mov r10d, dword [rbp - 0x58]
add r15, r14
mov edi, 0
sub r12, rsi
jne 0x14003c440
jmp 0x14003d57b
test ax, ax
je 0x14003c4bc
shl ax, cl
sub ax, si
or ax, dx
jmp 0x14003c4c2
mov r8, rbx
movzx eax, dx
mov word [r9], ax
lea rax, [r8 + rdi]
lea r11, [r15 + rax*2]
movzx eax, word [r11]
test ax, ax
je 0x14003c47d
shl ax, cl
sub ax, si
or ax, dx
jmp 0x14003c480
mov al, byte [rsi + 0x121d85]
mov ecx, 1
cmp r9d, ecx
jne 0x14003c6af
xor r9d, r9d
test r12d, r12d
je 0x14003cbc2
cmp al, 8
mov eax, r8d
jne 0x14003c5da
mov qword [rsp + 0x58], rax
mov rax, r12
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
mov r8, r9
test r13d, r13d
je 0x14003c5b4
mov r9, rbx
mov edx, r10d
sub r9, rdi
mov esi, 1
lea rcx, [rdi + r8]
cmp byte [r9 + rcx], 0
lea eax, [rdx + 1]
mov dword [rbp - 0x38], eax
je 0x14003c59d
mov byte [rcx], sil
mov rax, rdi
sub rax, r14
mov ecx, edx
dec edx
mov byte [rax + rcx], sil
lea rax, [rdi + r14]
mov byte [rax + rcx], sil
lea rax, [rdi + r10]
mov ecx, dword [rbp - 0x38]
mov byte [rax + r8 - 1], sil
mov byte [rax + r8 + 1], sil
mov rax, rdi
sub rax, r14
mov byte [rax + rdx], sil
mov rax, rdi
sub rax, r14
mov byte [rax + rcx], sil
lea rax, [rdi + r14]
mov byte [rax + rdx], sil
lea rax, [rdi + r14]
mov edx, dword [rbp - 0x38]
mov byte [rax + rcx], sil
jmp 0x14003c59f
mov edx, eax
add r8, rsi
cmp r8, r11
jl 0x14003c539
mov rax, qword [rsp + 0x68]
xor r9d, r9d
mov rcx, qword [rsp + 0x58]
add rbx, rcx
add rdi, r14
mov r8d, 1
sub rax, r8
mov qword [rsp + 0x68], rax
jne 0x14003c51f
mov rsi, qword [rbp - 0x50]
mov edx, dword [rbp - 0x54]
jmp 0x14003cbc5
mov qword [rsp + 0x58], rax
mov r13d, 1
mov rcx, qword [rsp + 0x58]
mov rax, r12
mov qword [rsp + 0x68], rax
xor edx, edx
test r11, r11
je 0x14003c67e
mov r15d, r10d
cmp byte [rbx + r9], dl
je 0x14003c669
mov word [rdi + r9*2], r13w
lea r8d, [r15 + r15]
lea edx, [r15*2 - 2]
mov rax, rdi
sub rax, r14
lea ecx, [r8 + 2]
mov word [rax + r8], r13w
lea rax, [rdi + r8]
mov word [rax + r14], r13w
lea rax, [r9 + r10]
mov word [rdi + rax*2 - 2], r13w
mov word [rdi + rax*2 + 2], r13w
mov rax, rdi
sub rax, r14
mov word [rax + rdx], r13w
mov rax, rdi
sub rax, r14
mov word [rax + rcx], r13w
lea rax, [rdi + rdx]
mov word [rax + r14], r13w
xor edx, edx
lea rax, [rdi + rcx]
mov word [rax + r14], r13w
add r15d, r13d
add r9, r13
cmp r9, r11
jl 0x14003c600
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
add rbx, rcx
add rdi, r14
sub rax, r13
mov r9d, 0
mov qword [rsp + 0x68], rax
jne 0x14003c5f2
mov r15, qword [rbp - 0x30]
mov r13d, dword [rsp + 0x50]
mov edx, dword [rbp - 0x54]
mov r8d, 1
jmp 0x14003cbc5
test r12d, r12d
je 0x14003c6a4
cmp r9d, 4
jg 0x14003c92a
mov rsi, qword [rbp - 0x18]
cmp al, 8
mov eax, r8d
mov r8d, 1
jne 0x14003c809
mov qword [rbp - 0x68], rax
xor r13d, r13d
mov rcx, qword [rbp - 0x68]
mov rax, r12
mov qword [rbp - 0x60], rax
mov dword [rbp - 0x58], r13d
mov r15d, r13d
test r11, r11
je 0x14003c7ed
mov rcx, rbx
mov qword [rsp + 0x78], r11
sub rcx, rdi
mov rax, rdi
mov qword [rsp + 0x68], rcx
mov r12, r11
mov qword [rbp - 0x70], rax
mov ebx, 1
cmp byte [rax + rcx], r13b
je 0x14003c7bb
mov ecx, r9d
mov byte [rax], bl
neg ecx
lea r8d, [r9 + 1]
cmp ecx, r8d
jge 0x14003c7b6
sub r8d, ecx
mov eax, ecx
imul eax, edx
mov r13, rsi
mov edx, dword [rbp - 0x58]
xor r9d, r9d
mov r12d, r8d
mov r11d, r8d
movsxd r15, eax
mov eax, r8d
mov qword [rbp + 0x20], rax
lea r8d, [r10 + rcx]
mov qword [rsp + 0x58], r11
mov rax, r13
add r8d, edx
mov qword [rsp + 0x60], rax
cmp byte [rax], r9b
je 0x14003c781
mov eax, r8d
add rax, rdi
cmp byte [rax + r15], r9b
jne 0x14003c77c
mov byte [rax + r15], bl
mov rax, qword [rsp + 0x60]
add rax, rbx
add r8d, ebx
sub qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rax
jne 0x14003c767
add r13, 9
add r15, r14
sub r12, rbx
jne 0x14003c753
mov r9d, dword [rbp - 0x48]
xor r13d, r13d
mov edx, dword [rbp - 0x54]
mov rax, qword [rbp - 0x70]
mov r15d, dword [rbp - 0x58]
mov r12, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
add r15d, ebx
add rax, rbx
sub r12, rbx
mov dword [rbp - 0x58], r15d
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x70], rax
jne 0x14003c714
mov rbx, qword [rbp - 0x78]
mov r8d, 1
mov r11, qword [rbp - 0x28]
mov rax, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x68]
add rbx, rcx
add rdi, r14
sub rax, r8
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x60], rax
jne 0x14003c6e5
jmp 0x14003ca84
mov rcx, r12
mov qword [rbp + 0x20], rax
mov qword [rbp - 0x70], rcx
xor r12d, r12d
mov dword [rbp - 0x80], r12d
mov rax, r12
mov qword [rsp + 0x68], rax
mov r15d, r12d
test r11, r11
je 0x14003c911
cmp byte [rbx + rax], r12b
je 0x14003c8f5
mov word [rdi + rax*2], r8w
lea ecx, [r9 + 1]
mov r8d, r9d
neg r8d
cmp r8d, ecx
jge 0x14003c8ef
mov r12d, dword [rbp - 0x80]
sub ecx, r8d
mov eax, r8d
mov r11d, ecx
imul eax, edx
mov r15, rsi
mov qword [rsp + 0x58], r11
xor r9d, r9d
movsxd rdx, eax
lea r13d, [r10 + r8]
mov rax, r15
mov rcx, r11
mov qword [rsp + 0x60], rax
add r13d, r12d
mov qword [rsp + 0x78], rcx
mov r10d, 1
cmp byte [rax], r9b
je 0x14003c8b2
mov rax, qword [rsp + 0x60]
lea ecx, [r13*2]
add rcx, rdx
cmp word [rcx + rdi], r9w
jne 0x14003c8ad
mov word [rcx + rdi], r10w
mov rcx, qword [rsp + 0x78]
add rax, r10
add r13d, r10d
sub rcx, r10
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x78], rcx
jne 0x14003c88c
add r15, 9
add rdx, r14
sub qword [rsp + 0x58], r10
mov r10d, dword [rbp - 0x58]
jne 0x14003c86f
mov r11, qword [rbp - 0x28]
mov r15d, r12d
mov r9d, dword [rbp - 0x48]
xor r12d, r12d
mov edx, dword [rbp - 0x54]
mov rax, qword [rsp + 0x68]
mov r8d, 1
add r15d, r8d
add rax, r8
mov dword [rbp - 0x80], r15d
mov qword [rsp + 0x68], rax
cmp rax, r11
jl 0x14003c82f
mov rcx, qword [rbp - 0x70]
add rbx, qword [rbp + 0x20]
add rdi, r14
sub rcx, r8
mov qword [rbp - 0x70], rcx
jne 0x14003c817
jmp 0x14003ca84
mov rsi, qword [rbp - 0x20]
cmp al, 8
mov eax, r8d
mov r8d, 1
jne 0x14003ca9a
mov r13d, dword [rbp - 0x40]
mov qword [rbp - 0x68], rax
mov rax, r12
mov rcx, qword [rbp - 0x68]
xor r12d, r12d
mov qword [rbp - 0x78], rax
mov dword [rbp - 0x58], r12d
mov r15d, r12d
test r11, r11
je 0x14003ca71
mov rcx, rbx
mov qword [rsp + 0x78], r11
sub rcx, rdi
mov rax, rdi
mov r12, r11
mov qword [rsp + 0x68], rcx
xor r11d, r11d
mov qword [rbp - 0x70], rax
cmp byte [rcx + rax], r11b
je 0x14003ca46
mov ecx, r9d
mov byte [rax], r8b
neg ecx
lea r8d, [r9 + 1]
cmp ecx, r8d
jge 0x14003ca3b
mov r11d, dword [rbp - 0x58]
sub r8d, ecx
mov eax, ecx
mov r9d, r8d
imul eax, edx
mov r15, rsi
mov edx, r8d
xor esi, esi
movsxd r12, eax
movsxd rax, r13d
mov qword [rsp + 0x58], rax
mov r13, qword [rsp + 0x58]
mov eax, r8d
mov qword [rbp + 0x20], rax
lea r8d, [r10 + rcx]
mov qword [rsp + 0x58], r9
mov rax, r15
add r8d, r11d
mov qword [rsp + 0x60], rax
cmp byte [rax], sil
je 0x14003c9fe
mov eax, r8d
add rax, rdi
cmp byte [rax + r12], sil
jne 0x14003c9f9
mov byte [rax + r12], 1
mov rax, qword [rsp + 0x60]
inc rax
inc r8d
sub qword [rsp + 0x58], 1
mov qword [rsp + 0x60], rax
jne 0x14003c9e3
add r15, r13
add r12, r14
sub rdx, 1
jne 0x14003c9cf
mov r9d, dword [rbp - 0x48]
mov r15d, r11d
mov edx, dword [rbp - 0x54]
xor r11d, r11d
mov rsi, qword [rbp - 0x20]
mov r13d, dword [rbp - 0x40]
mov rax, qword [rbp - 0x70]
mov r12, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
mov r8d, 1
add r15d, r8d
add rax, r8
sub r12, r8
mov dword [rbp - 0x58], r15d
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x70], rax
jne 0x14003c982
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov rax, qword [rbp - 0x78]
mov rcx, qword [rbp - 0x68]
add rbx, rcx
add rdi, r14
sub rax, r8
mov qword [rbp - 0x78], rax
jne 0x14003c955
mov rsi, qword [rbp - 0x50]
mov r15, qword [rbp - 0x30]
mov r12d, dword [rbp - 0x44]
mov r13d, dword [rsp + 0x50]
jmp 0x14003cbc5
movsxd r13, dword [rbp - 0x40]
mov rcx, r12
mov qword [rbp - 0x70], rcx
xor r12d, r12d
mov qword [rbp + 0x20], rax
mov dword [rbp - 0x80], r12d
mov rax, r12
mov qword [rsp + 0x68], rax
mov r15d, r12d
test r11, r11
je 0x14003cba9
cmp byte [rbx + rax], r12b
je 0x14003cb8d
mov word [rdi + rax*2], r8w
lea ecx, [r9 + 1]
mov r8d, r9d
neg r8d
cmp r8d, ecx
jge 0x14003cb87
mov r11d, dword [rbp - 0x80]
sub ecx, r8d
mov eax, r8d
mov r9d, ecx
imul eax, edx
mov r15, rsi
mov qword [rsp + 0x58], r9
xor esi, esi
movsxd r12, eax
add r10d, r8d
mov rax, r15
mov rcx, r9
mov qword [rsp + 0x60], rax
add r10d, r11d
mov qword [rsp + 0x78], rcx
mov r14d, 1
cmp byte [rax], sil
je 0x14003cb41
mov rax, qword [rsp + 0x60]
lea ecx, [r10 + r10]
add rcx, rdi
cmp word [rcx + r12], si
jne 0x14003cb3c
mov word [rcx + r12], r14w
mov rcx, qword [rsp + 0x78]
add rax, r14
add r10d, r14d
sub rcx, r14
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x78], rcx
jne 0x14003cb1f
mov r14, qword [rbp - 8]
add r15, r13
mov r10d, dword [rbp - 0x58]
add r12, r14
sub qword [rsp + 0x58], 1
jne 0x14003cb03
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x20]
mov rax, qword [rsp + 0x68]
mov r15d, dword [rbp - 0x80]
mov r8d, 1
add r15d, r8d
add rax, r8
mov dword [rbp - 0x80], r15d
mov qword [rsp + 0x68], rax
cmp rax, r11
jl 0x14003cac4
mov rcx, qword [rbp - 0x70]
add rbx, qword [rbp + 0x20]
add rdi, r14
sub rcx, r8
mov qword [rbp - 0x70], rcx
jne 0x14003caac
jmp 0x14003ca84
mov r8, rcx
movsxd rcx, dword [rbp + 4]
xor edi, edi
mov r9d, dword [rbp + 8]
imul edx, ecx
movsxd rax, edx
lea edx, [r9 + r12]
sub r15, rax
cmp byte [rsi + 0x121d85], 8
jne 0x14003ccb9
sub r15, rcx
cmp dword [rsi + 0x121da4], 0xf
jne 0x14003cc54
test edx, edx
jle 0x14003b46b
lea eax, [r9 + r13]
mov r11d, edx
movsxd rbx, eax
test rbx, rbx
jle 0x14003cc47
mov rcx, r15
mov r8d, r10d
mov r9, rbx
cmp byte [rcx], dil
je 0x14003cc26
mov byte [rcx], 0xf
lea rdx, [r8 + rcx]
mov al, dil
jmp 0x14003cc35
lea rdx, [rcx + r8]
mov byte [rcx], dil
mov al, byte [rdx]
neg al
sbb al, al
and al, 0xf
mov byte [rdx], al
mov eax, 1
add rcx, rax
sub r9, rax
jne 0x14003cc15
mov r8d, eax
add r15, r14
sub r11, r8
jne 0x14003cc07
jmp 0x14003b46b
test edx, edx
jle 0x14003b46b
lea eax, [r9 + r13]
mov r11d, edx
movsxd rbx, eax
mov esi, 0xff
test rbx, rbx
jle 0x14003ccac
mov rcx, r15
mov r8d, r10d
mov r9, rbx
cmp byte [rcx], dil
je 0x14003cc8a
mov byte [rcx], sil
lea rdx, [r8 + rcx]
mov al, dil
jmp 0x14003cc9a
lea rdx, [rcx + r8]
mov byte [rcx], dil
mov al, byte [rdx]
neg al
sbb al, al
and al, sil
mov byte [rdx], al
mov eax, 1
add rcx, rax
sub r9, rax
jne 0x14003cc79
mov r8d, eax
add r15, r14
sub r11, r8
jne 0x14003cc6b
jmp 0x14003d57b
lea eax, [rcx + rcx]
movsxd rcx, eax
sub r15, rcx
cmp dword [rsi + 0x1221cc], edi
je 0x14003cd2f
test edx, edx
jle 0x14003b46b
mov r12d, dword [rsp + 0x70]
lea eax, [r9 + r13]
movsxd r11, eax
mov r9d, edx
test r11, r11
jle 0x14003cd22
mov rcx, r15
mov edx, r10d
mov r8, r11
cmp word [rcx], di
je 0x14003ccfd
mov word [rcx], r12w
movzx eax, di
jmp 0x14003cd0e
mov word [rcx], di
movzx eax, word [rcx + rdx*2]
neg ax
sbb ax, ax
and ax, r12w
mov word [rcx + rdx*2], ax
add rcx, 2
sub r8, 1
jne 0x14003ccef
mov r8d, 1
add r15, r14
sub r9, r8
jne 0x14003cce1
jmp 0x14003b46b
test edx, edx
jle 0x14003b46b
mov r12d, dword [rsp + 0x70]
lea eax, [r9 + r13]
mov r11d, edx
mov edx, dword [rbp]
movsxd rbx, eax
test rbx, rbx
jle 0x14003cd87
mov rax, r15
mov r9d, r10d
mov r8, rbx
movzx ecx, dx
cmp word [rax], di
je 0x14003cd65
mov word [rax], r12w
jmp 0x14003cd72
mov word [rax], dx
cmp word [rax + r9*2], di
cmovne cx, r12w
mov word [rax + r9*2], cx
add rax, 2
sub r8, 1
jne 0x14003cd57
mov r8d, 1
add r15, r14
sub r11, r8
jne 0x14003cd49
jmp 0x14003b46b
mov al, byte [rsi + 0x121d85]
mov ecx, 1
cmp r9d, ecx
jne 0x14003cf85
xor r9d, r9d
test r12d, r12d
je 0x14003d481
cmp al, 8
mov r15d, ecx
mov eax, r8d
jne 0x14003ce8c
mov qword [rsp + 0x58], rax
mov rax, r12
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
mov r13, r9
test r11, r11
je 0x14003ce73
mov r8b, byte [rbp - 0x7c]
mov r9d, r10d
mov eax, r9d
sub eax, r10d
test al, 7
jne 0x14003cdfb
cdqe
sar rax, 3
mov r8b, byte [rax + rbx]
test r8b, r8b
jns 0x14003ce54
mov byte [rdi + r13], r15b
lea edx, [r9 - 1]
mov ecx, r9d
mov rax, rdi
sub rax, r14
mov byte [rax + rcx], r15b
lea rax, [rdi + rcx]
mov byte [rax + r14], r15b
lea rax, [rdi + r10]
mov byte [rax + r13 - 1], r15b
mov byte [rax + r13 + 1], r15b
mov rax, rdi
sub rax, r14
inc r9d
mov byte [rax + rdx], r15b
mov rax, rdi
sub rax, r14
mov byte [rax + r9], r15b
lea rax, [rdi + rdx]
mov byte [rax + r14], r15b
lea rax, [rdi + r9]
mov byte [rax + r14], r15b
jmp 0x14003ce57
inc r9d
add r13, r15
add r8b, r8b
cmp r13, r11
jl 0x14003cde7
mov rax, qword [rsp + 0x68]
xor r9d, r9d
mov rcx, qword [rsp + 0x58]
mov byte [rbp - 0x7c], r8b
add rbx, rcx
add rdi, r14
sub rax, r15
mov qword [rsp + 0x68], rax
jne 0x14003cdd4
jmp 0x14003cf6a
mov qword [rsp + 0x58], rax
mov rax, r12
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
mov rsi, r9
test r11, r11
je 0x14003cf52
mov r9b, byte [rbp - 0x7c]
mov r13d, r10d
mov eax, r13d
sub eax, r10d
test al, 7
jne 0x14003cec5
cdqe
sar rax, 3
mov r9b, byte [rax + rbx]
test r9b, r9b
jns 0x14003cf2f
mov word [rdi + rsi*2], r15w
lea r8d, [r13*2]
lea edx, [r13*2 - 2]
mov rax, rdi
sub rax, r14
lea ecx, [r8 + 2]
mov word [rax + r8], r15w
lea rax, [rdi + r8]
mov word [rax + r14], r15w
lea rax, [rsi + r10]
mov word [rdi + rax*2 - 2], r15w
mov word [rdi + rax*2 + 2], r15w
mov rax, rdi
sub rax, r14
mov word [rax + rdx], r15w
mov rax, rdi
sub rax, r14
mov word [rax + rcx], r15w
lea rax, [rdi + rdx]
mov word [rax + r14], r15w
lea rax, [rdi + rcx]
mov word [rax + r14], r15w
add r13d, r15d
add rsi, r15
add r9b, r9b
cmp rsi, r11
jl 0x14003ceb1
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
mov byte [rbp - 0x7c], r9b
xor r9d, r9d
add rbx, rcx
add rdi, r14
sub rax, r15
mov qword [rsp + 0x68], rax
jne 0x14003ce9e
mov r12d, dword [rbp - 0x44]
mov r15, qword [rbp - 0x30]
mov rsi, qword [rbp - 0x50]
mov r13d, dword [rsp + 0x50]
mov edx, dword [rbp - 0x54]
mov r8d, 1
jmp 0x14003d484
test r12d, r12d
je 0x14003cf7a
mov rcx, r12
cmp r9d, 4
jg 0x14003d1ea
mov rsi, qword [rbp - 0x18]
xor r12d, r12d
cmp al, 8
mov eax, r8d
lea r8d, [r12 + 1]
jne 0x14003d0c4
mov qword [rbp - 0x70], rax
mov qword [rsp + 0x68], rcx
mov rax, r12
mov r15d, r12d
mov qword [rsp + 0x78], rax
test r11, r11
je 0x14003d0aa
mov cl, byte [rbp - 0x7c]
test r15b, 7
jne 0x14003cfe3
mov eax, r15d
shr rax, 3
mov cl, byte [rax + rbx]
mov rax, qword [rsp + 0x78]
test cl, cl
jns 0x14003d08c
mov byte [rdi + rax], r8b
lea r13d, [r9 + 1]
mov r8d, r9d
neg r8d
cmp r8d, r13d
jge 0x14003d086
sub r13d, r8d
mov eax, r8d
imul eax, edx
mov rdx, rsi
mov r11d, r13d
xor esi, esi
mov r9d, r13d
movsxd r12, eax
mov eax, r13d
mov qword [rbp + 0x20], rax
lea r13d, [r10 + r8]
mov qword [rsp + 0x60], rdx
add r13d, r15d
mov qword [rsp + 0x58], r9
mov rax, rdx
cmp byte [rax], sil
je 0x14003d04f
mov eax, r13d
add rax, rdi
cmp byte [rax + r12], sil
jne 0x14003d04a
mov byte [rax + r12], 1
mov rax, qword [rsp + 0x60]
inc rax
inc r13d
sub qword [rsp + 0x58], 1
mov qword [rsp + 0x60], rax
jne 0x14003d034
add rdx, 9
add r12, r14
sub r11, 1
jne 0x14003d020
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x18]
mov rax, qword [rsp + 0x78]
mov r8d, 1
add rax, r8
add r15d, r8d
add cl, cl
mov qword [rsp + 0x78], rax
cmp rax, r11
jl 0x14003cfce
mov byte [rbp - 0x7c], cl
mov rcx, qword [rsp + 0x68]
add rbx, qword [rbp - 0x70]
add rdi, r14
sub rcx, r8
mov qword [rsp + 0x68], rcx
jne 0x14003cfb7
jmp 0x14003d32a
mov qword [rbp + 0x20], rax
mov qword [rsp + 0x68], rcx
mov rax, r12
mov r15d, r12d
mov qword [rbp - 0x68], rax
test r11, r11
je 0x14003d1d0
mov cl, byte [rbp - 0x7c]
test r15b, 7
jne 0x14003d0f7
mov eax, r15d
shr rax, 3
mov cl, byte [rax + rbx]
mov rax, qword [rbp - 0x68]
test cl, cl
jns 0x14003d1b3
mov r13d, r9d
mov word [rdi + rax*2], r8w
neg r13d
lea r8d, [r9 + 1]
cmp r13d, r8d
jge 0x14003d1ad
sub r8d, r13d
mov eax, r13d
imul eax, edx
mov r12, rsi
mov r11d, r8d
xor r9d, r9d
mov qword [rsp + 0x58], r11
movsxd rdx, eax
add r10d, r13d
mov qword [rsp + 0x78], r11
mov rax, r12
add r10d, r15d
mov qword [rsp + 0x60], rax
mov r8, r11
mov r14d, 1
cmp byte [rax], r9b
je 0x14003d16f
mov rax, qword [rsp + 0x60]
lea r8d, [r10 + r10]
add r8, rdi
cmp word [r8 + rdx], r9w
jne 0x14003d16a
mov word [r8 + rdx], r14w
mov r8, qword [rsp + 0x78]
add rax, r14
add r10d, r14d
sub r8, r14
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x78], r8
jne 0x14003d14d
mov r14, qword [rbp - 8]
add r12, 9
mov r10d, dword [rbp - 0x58]
add rdx, r14
sub qword [rsp + 0x58], 1
jne 0x14003d131
mov r11, qword [rbp - 0x28]
xor r12d, r12d
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rax, qword [rbp - 0x68]
mov r8d, 1
add rax, r8
add r15d, r8d
add cl, cl
mov qword [rbp - 0x68], rax
cmp rax, r11
jl 0x14003d0e3
mov byte [rbp - 0x7c], cl
mov rcx, qword [rsp + 0x68]
add rbx, qword [rbp + 0x20]
add rdi, r14
sub rcx, r8
mov qword [rsp + 0x68], rcx
jne 0x14003d0cd
jmp 0x14003d32a
mov rsi, qword [rbp - 0x20]
xor r15d, r15d
mov r13d, dword [rbp - 0x40]
cmp al, 8
mov eax, r8d
lea r8d, [r15 + 1]
jne 0x14003d340
mov qword [rbp - 0x70], rax
mov qword [rsp + 0x68], rcx
mov rax, r15
mov r12d, r15d
mov qword [rsp + 0x78], rax
test r11, r11
je 0x14003d311
mov cl, byte [rbp - 0x7c]
test r12b, 7
jne 0x14003d239
mov eax, r12d
shr rax, 3
mov cl, byte [rax + rbx]
mov rax, qword [rsp + 0x78]
test cl, cl
jns 0x14003d2f3
mov byte [rdi + rax], r8b
lea r15d, [r9 + 1]
mov r8d, r9d
neg r8d
cmp r8d, r15d
jge 0x14003d2ec
sub r15d, r8d
mov eax, r8d
imul eax, edx
mov rdx, rsi
mov r9d, r15d
xor ebx, ebx
movsxd r11, eax
movsxd rax, r13d
mov qword [rsp + 0x58], rax
mov rsi, qword [rsp + 0x58]
mov eax, r15d
mov qword [rbp + 0x20], rax
mov r13d, r15d
lea r15d, [r10 + r8]
mov qword [rsp + 0x60], rdx
add r15d, r12d
mov qword [rsp + 0x58], r9
mov rax, rdx
cmp byte [rax], bl
je 0x14003d2b1
mov eax, r15d
add rax, rdi
cmp byte [rax + r11], bl
jne 0x14003d2ac
mov byte [rax + r11], 1
mov rax, qword [rsp + 0x60]
inc rax
inc r15d
sub qword [rsp + 0x58], 1
mov qword [rsp + 0x60], rax
jne 0x14003d297
add rdx, rsi
add r11, r14
sub r13, 1
jne 0x14003d283
mov rbx, qword [rbp - 0x78]
mov r11, qword [rbp - 0x28]
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x20]
mov r13d, dword [rbp - 0x40]
mov rax, qword [rsp + 0x78]
xor r15d, r15d
lea r8d, [r15 + 1]
add rax, r8
add r12d, r8d
add cl, cl
mov qword [rsp + 0x78], rax
cmp rax, r11
jl 0x14003d224
mov byte [rbp - 0x7c], cl
mov rcx, qword [rsp + 0x68]
add rbx, qword [rbp - 0x70]
add rdi, r14
sub rcx, r8
mov qword [rbp - 0x78], rbx
mov qword [rsp + 0x68], rcx
jne 0x14003d20d
mov rsi, qword [rbp - 0x50]
mov r15, qword [rbp - 0x30]
mov r12d, dword [rbp - 0x44]
mov r13d, dword [rsp + 0x50]
jmp 0x14003d484
mov qword [rbp - 0x38], rax
mov qword [rsp + 0x68], rcx
mov rax, r15
mov r12d, r15d
mov qword [rsp + 0x60], rax
test r11, r11
je 0x14003d463
mov cl, byte [rbp - 0x7c]
test r12b, 7
jne 0x14003d375
mov eax, r12d
shr rax, 3
mov cl, byte [rax + rbx]
mov rax, qword [rsp + 0x60]
test cl, cl
jns 0x14003d445
mov word [rdi + rax*2], r8w
mov eax, r9d
neg eax
lea r8d, [r9 + 1]
mov dword [rbp - 0x60], eax
cmp eax, r8d
jge 0x14003d43a
imul eax, edx
mov edx, dword [rbp - 0x60]
sub r8d, edx
mov r9d, r8d
xor ebx, ebx
mov qword [rsp + 0x58], r9
movsxd r11, eax
mov qword [rbp + 0x20], r11
mov r11, rsi
movsxd rax, r13d
mov r13, qword [rbp + 0x20]
mov rsi, rax
lea r15d, [r10 + rdx]
mov qword [rbp - 0x68], r9
mov rax, r11
add r15d, r12d
mov qword [rsp + 0x78], rax
mov r8, r9
mov r14d, 1
cmp byte [rax], bl
je 0x14003d3fa
mov rax, qword [rsp + 0x78]
lea r8d, [r15 + r15]
add r8, rdi
cmp word [r8 + r13], bx
jne 0x14003d3f6
mov word [r8 + r13], r14w
mov r8, qword [rbp - 0x68]
add rax, r14
add r15d, r14d
sub r8, r14
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x68], r8
jne 0x14003d3da
mov r14, qword [rbp - 8]
add r11, rsi
add r13, r14
sub qword [rsp + 0x58], 1
jne 0x14003d3be
mov rbx, qword [rbp - 0x78]
xor r15d, r15d
mov r11, qword [rbp - 0x28]
mov r9d, dword [rbp - 0x48]
mov edx, dword [rbp - 0x54]
mov rsi, qword [rbp - 0x20]
mov r13d, dword [rbp - 0x40]
mov rax, qword [rsp + 0x60]
mov r8d, 1
add rax, r8
add r12d, r8d
add cl, cl
mov qword [rsp + 0x60], rax
cmp rax, r11
jl 0x14003d360
mov byte [rbp - 0x7c], cl
mov rcx, qword [rsp + 0x68]
add rbx, qword [rbp - 0x38]
add rdi, r14
sub rcx, r8
mov qword [rbp - 0x78], rbx
mov qword [rsp + 0x68], rcx
jne 0x14003d349
jmp 0x14003d32a
mov r8, rcx
movsxd rcx, dword [rbp + 4]
xor edi, edi
mov r9d, dword [rbp + 8]
imul edx, ecx
movsxd rax, edx
lea edx, [r9 + r12]
sub r15, rax
cmp byte [rsi + 0x121d85], 8
jne 0x14003d584
sub r15, rcx
cmp dword [rsi + 0x121da4], 0xf
jne 0x14003d517
test edx, edx
jle 0x14003b46b
lea eax, [r9 + r13]
mov r11d, edx
movsxd rbx, eax
test rbx, rbx
jle 0x14003d50a
mov r8d, r10d
mov rcx, r15
mov r9, rbx
lea rdx, [r15 + r8*2]
cmp byte [rcx], dil
je 0x14003d4e5
mov byte [rcx], 0xf
mov al, dil
jmp 0x14003d4f2
mov byte [rcx], dil
movzx eax, word [rdx]
neg ax
sbb al, al
and al, 0xf
mov byte [rcx + r8], al
add rdx, 2
mov eax, 1
add rcx, rax
sub r9, rax
jne 0x14003d4d8
mov r8d, eax
add r15, r14
sub r11, r8
jne 0x14003d4c6
jmp 0x14003b46b
test edx, edx
jle 0x14003b46b
lea eax, [r9 + r13]
mov r11d, edx
movsxd rbx, eax
mov esi, 0xff
test rbx, rbx
jle 0x14003d573
mov r8d, r10d
mov rcx, r15
mov r9, rbx
lea rdx, [r15 + r8*2]
cmp byte [rcx], dil
je 0x14003d54d
mov byte [rcx], sil
mov al, dil
jmp 0x14003d55b
mov byte [rcx], dil
movzx eax, word [rdx]
neg ax
sbb al, al
and al, sil
mov byte [r8 + rcx], al
add rdx, 2
mov eax, 1
add rcx, rax
sub r9, rax
jne 0x14003d540
mov r8d, eax
add r15, r14
sub r11, r8
jne 0x14003d52e
mov rsi, qword [rbp - 0x50]
jmp 0x14003b46b
lea eax, [rcx + rcx]
movsxd rcx, eax
sub r15, rcx
cmp dword [rsi + 0x1221cc], edi
je 0x14003d5fa
test edx, edx
jle 0x14003b46b
mov r12d, dword [rsp + 0x70]
lea eax, [r9 + r13]
movsxd r11, eax
mov r9d, edx
test r11, r11
jle 0x14003d5ed
mov rcx, r15
mov edx, r10d
mov r8, r11
cmp word [rcx], di
je 0x14003d5c8
mov word [rcx], r12w
movzx eax, di
jmp 0x14003d5d9
mov word [rcx], di
movzx eax, word [rcx + rdx*2]
neg ax
sbb ax, ax
and ax, r12w
mov word [rcx + rdx*2], ax
add rcx, 2
sub r8, 1
jne 0x14003d5ba
mov r8d, 1
add r15, r14
sub r9, r8
jne 0x14003d5ac
jmp 0x14003b46b
test edx, edx
jle 0x14003b46b
mov r12d, dword [rsp + 0x70]
lea eax, [r9 + r13]
mov r11d, edx
mov edx, dword [rbp]
movsxd rbx, eax
test rbx, rbx
jle 0x14003d652
mov rax, r15
mov r9d, r10d
mov r8, rbx
movzx ecx, dx
cmp word [rax], di
je 0x14003d630
mov word [rax], r12w
jmp 0x14003d63d
mov word [rax], dx
cmp word [rax + r9*2], di
cmovne cx, r12w
mov word [rax + r9*2], cx
add rax, 2
sub r8, 1
jne 0x14003d622
mov r8d, 1
add r15, r14
sub r11, r8
jne 0x14003d614
jmp 0x14003b46b
mov qword [r12 + 0x30], rdi
cmp dword [rsi + 0x11bbb0], 0x400
jne 0x14003d6ca
mov edx, edi
lea rax, [rsi + 0x11bbb8]
jmp 0x14003d682
add edx, r15d
lea rax, [rax + 8]
cmp qword [rax], r12
je 0x14003d67b
movsxd rax, edx
add rax, 0x23777
lea rcx, [rsi + rax*8]
mov rax, qword [rcx]
mov byte [rax + 8], dil
dec dword [rsi + 0x11bbb0]
mov eax, dword [rsi + 0x11bbb0]
sub eax, edx
test eax, eax
jle 0x14003d6ca
movsxd r8, eax
lea eax, [rdx + 1]
movsxd rdx, eax
add rdx, 0x23777
shl r8, 3
lea rdx, [rsi + rdx*8]
call fcn.140055390
movsxd rax, dword [rsi + 0x11bbb0]
mov qword [rsi + rax*8 + 0x11bbb8], r12
add dword [rsi + 0x11bbb0], r15d
mov word [r12 + 8], 1
xor eax, eax
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.1400bdaf0
mov rbx, qword [rsp + 0x198]
add rsp, 0x140
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret