Function at 0x140029700
Capabilities:
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0x1d8
mov r9, rcx
mov r8, rdx
movups xmmword [rsp + 0x90], xmm6
mov rdi, r9
mov edx, 0x1000000
mov rax, qword [r9 + 0xb38]
mov r11, qword [r9 + 0xb50]
mov ecx, dword [r9 + 0x60]
mov r10d, dword [rax]
add rax, 4
mov dword [rsp + 0xe4], r10d
mov r10, qword [r11 + 0xe5fe0]
movzx r11d, byte [r9 + 0x64]
cmp r11d, 0x24
mov qword [rsp + 0xf0], r10
mov r10d, 0x24
cmovl r10d, r11d
lea r11, [0x140005b40]
mov byte [r9 + 0x64], r10b
shl r10, 4
mov qword [rsp + 0x168], rax
mov eax, dword [r9 + 0x58]
neg rax
mov qword [rsp + 0x180], rax
add r11, r10
mov qword [r9 + 0x68], r11
lea r11, [r9 + 0x8c0]
mov qword [rsp + 0x1c8], r11
mov qword [rsp + 0x1a0], rcx
mov ecx, dword [rdi + 0x58]
mov r15d, ecx
shr r15d, 0x18
xor ebp, ebp
mov eax, dword [rdi + 0x8b8]
cmp r15, rax
mov ebx, ecx
cmovae r15, rbp
mov r14, qword [rdi + r15*8 + 0x4a8]
add r14, 0x1000000
mov rax, qword [rdi + r15*8 + 0x4b0]
and rbx, 0xffffff
je 0x14002bdd0
movzx ebp, byte [rax + rbx - 1]
mov rsi, rbx
lea r11, [r8 + rbx]
neg rsi
cmp r11, 0x1000000
mov r13, qword [rdi + 0x78]
mov r12, r15
cmovae r11, rdx
shl r12, 0x18
lea r10, [rsi + r13]
cmp rbx, r11
jae 0x14002a65a
mov r9, rax
mov rcx, r14
sub r9, rsi
sub rcx, rsi
sub r9, r13
sub rcx, r13
mov qword [rsp + 0x158], rsi
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x188], r9
mov qword [rsp + 0x148], r12
mov qword [rsp + 0x1b0], r11
mov qword [rsp + 0x1a8], r10
mov qword [rsp + 0x178], r14
mov qword [rsp + 0x1b8], rax
mov qword [rsp + 0x150], r15
mov qword [rsp + 0x160], r8
mov rsi, qword [rsp + 0x1a0]
cmp byte [rdi + 0xc2c], 0
je 0x140029e04
mov rdx, qword [rsp + 0x1a8]
mov rax, qword [rdi + 0x8c0]
add rdx, rbx
cmp rdx, rax
jb 0x140029a7e
mov r12, rbx
mov qword [rsp + 0x190], rbx
sub r12, rdx
mov qword [rsp + 0x198], rbp
mov qword [rsp + 0x1c0], rdx
mov qword [rsp + 0x1a0], rsi
mov rbx, qword [rsp + 0x188]
mov edx, dword [rdi + 0xac8]
movabs rsi, 0xffffffffff
mov r15, qword [rdi + 0xa80]
lea r10, [rax + r12]
mov rbp, qword [rdi + 0x9a8]
mov r13, qword [rdi + 0xac0]
and rsi, qword [r15 + rdx*8]
mov r15, rsi
shr rsi, 0x17
and r15, 0x7fffff
mov r14, qword [rbp + rsi*8]
lea r11, [r15 + r14]
cmp r10, r13
jl 0x14002a8b1
mov r9, r13
lea rdx, [r11 + r13]
add r10, qword [rsp + 0x1b8]
mov rcx, r11
shr r9, 5
sub r10, rdx
test r9, r9
je 0x140029a18
mov rbp, r13
xor esi, esi
shr rbp, 6
mov r8d, 1
xor edx, edx
test rbp, rbp
jbe 0x1400299dc
mov r8, rax
lea rcx, [rax + rbx]
sub rcx, r13
sub r8, r13
add r8, rbx
lea r14, [r15 + r14 + 0x40]
mov r15, rbp
mov rbp, rdx
mov rdx, rcx
nop dword [rax + rax]
nop dword [rax]
movdqu xmm0, xmmword [rbp + rdx]
movdqu xmm1, xmmword [rbp + r8 + 0x10]
movdqu xmmword [rbp + r11], xmm0
inc rsi
movdqu xmmword [rbp + r11 + 0x10], xmm1
lea rcx, [r14 + rbp]
movdqu xmm2, xmmword [rbp + r8 + 0x20]
movdqu xmm3, xmmword [rbp + r8 + 0x30]
movdqu xmmword [rbp + r11 + 0x20], xmm2
movdqu xmmword [rbp + r11 + 0x30], xmm3
add rbp, 0x40
cmp rsi, r15
jb 0x140029990
lea r8, [rsi + rsi + 1]
lea rbp, [r8 - 1]
cmp rbp, r9
jae 0x140029a18
shl rbp, 5
lea rdx, [rax + rbx]
sub rax, r13
sub rdx, r13
add rax, rbx
shl r8, 5
movdqu xmm0, xmmword [rbp + rdx]
movdqu xmm1, xmmword [rbp + rax + 0x10]
movdqu xmmword [rbp + r11], xmm0
lea rcx, [r11 + r8]
movdqu xmmword [rbp + r11 + 0x10], xmm1
and r13, 0x1f
je 0x140029a3c
mov al, byte [rcx + r10]
mov byte [rcx], al
cmp r13, 1
je 0x140029a3c
mov al, byte [rcx + r10 + 1]
mov byte [rcx + 1], al
add rcx, 2
add r13, 0xfffffffffffffffe
jne 0x140029a1e
mov rcx, qword [rsp + 0x1c8]
call fcn.14002d170
mov rax, qword [rdi + 0x8c0]
cmp rax, qword [rsp + 0x1c0]
jbe 0x1400298e1
mov rbx, qword [rsp + 0x190]
mov rbp, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x1c0]
mov rsi, qword [rsp + 0x1a0]
cmp rdx, qword [rdi + 0x8c8]
jb 0x140029e04
movsxd r12, dword [rdi + 0x950]
movabs r10, 0xffffffffff
mov r14, qword [rdi + 0x930]
mov r13, qword [rsp + 0x1b8]
mov rax, qword [rdi + 0xa80]
lea rbp, [r12*4]
shl r12, 5
sub r12, rbp
mov rdx, qword [r14 + r12 + 0x28]
mov r14d, dword [r14 + r12 + 0x30]
lea r12, [rbx + r13]
mov r13, rdx
shr r13, 0x20
mov edx, edx
movzx ebp, r14w
and r10, qword [rax + r13*8]
add rdx, r10
mov r10, rdx
shr r10, 0x17
cmp r10, qword [rdi + 0x9d8]
jae 0x140029c00
xor r8d, r8d
mov rcx, qword [rdi + 0x9c8]
call fcn.14004529c
mov edx, 1
mov r8, rbp
mov rcx, qword [rdi + 0x9b8]
mov r9, qword [rdi + 0x9c8]
call fcn.140045c34
mov rdx, rbp
mov r15, r12
mov rax, qword [rdi + 0x9b8]
mov r11, rax
shr rdx, 5
sub r11, r12
test rdx, rdx
je 0x140029bd0
mov r8, rbp
xor r9d, r9d
shr r8, 6
mov r10d, 1
xor ecx, ecx
test r8, r8
jbe 0x140029ba3
movdqu xmm0, xmmword [rcx + rax]
movdqu xmm1, xmmword [rcx + rax + 0x10]
movdqu xmmword [rcx + r12], xmm0
movdqu xmmword [rcx + r12 + 0x10], xmm1
inc r9
movdqu xmm2, xmmword [rcx + rax + 0x20]
movdqu xmm3, xmmword [rcx + rax + 0x30]
movdqu xmmword [rcx + r12 + 0x20], xmm2
movdqu xmmword [rcx + r12 + 0x30], xmm3
add rcx, 0x40
cmp r9, r8
jb 0x140029b58
lea r10, [r9 + r9 + 1]
shl r9, 6
lea r15, [r12 + r9]
lea rcx, [r10 - 1]
cmp rcx, rdx
jae 0x140029bd0
shl rcx, 5
shl r10, 5
movdqu xmm0, xmmword [rax + rcx]
movdqu xmm1, xmmword [rax + rcx + 0x10]
movdqu xmmword [r12 + rcx], xmm0
movdqu xmmword [r12 + rcx + 0x10], xmm1
lea r15, [r12 + r10]
mov rax, rbp
and rax, 0x1f
je 0x140029bf9
mov dl, byte [r15 + r11]
mov byte [r15], dl
cmp rax, 1
je 0x140029bf9
mov dl, byte [r15 + r11 + 1]
mov byte [r15 + 1], dl
add r15, 2
add rax, 0xfffffffffffffffe
jne 0x140029bd9
mov dl, 1
jmp 0x140029cfd
mov rax, qword [rdi + 0x9a8]
and rdx, 0x7fffff
sub rdx, r12
mov r11, r12
add rdx, qword [rax + r10*8]
mov r10, rbp
shr r10, 5
test r10, r10
je 0x140029cd2
mov rcx, rbp
xor r8d, r8d
shr rcx, 6
mov eax, 1
xor r15d, r15d
test rcx, rcx
jbe 0x140029c9f
lea rax, [r12 + rdx]
nop dword [rax + rax]
nop dword [rax + rax]
movdqu xmm0, xmmword [r15 + rax]
movdqu xmm1, xmmword [r15 + rax + 0x10]
movdqu xmmword [r15 + r12], xmm0
movdqu xmmword [r15 + r12 + 0x10], xmm1
inc r8
movdqu xmm2, xmmword [r15 + rax + 0x20]
movdqu xmm3, xmmword [r15 + rax + 0x30]
movdqu xmmword [r15 + r12 + 0x20], xmm2
movdqu xmmword [r15 + r12 + 0x30], xmm3
add r15, 0x40
cmp r8, rcx
jb 0x140029c50
lea rax, [r8 + r8 + 1]
shl r8, 6
lea r11, [r12 + r8]
lea r15, [rax - 1]
cmp r15, r10
jae 0x140029cd2
shl r15, 5
lea r10, [r12 + rdx]
shl rax, 5
movdqu xmm0, xmmword [r10 + r15]
movdqu xmm1, xmmword [r10 + r15 + 0x10]
movdqu xmmword [r12 + r15], xmm0
movdqu xmmword [r12 + r15 + 0x10], xmm1
lea r11, [r12 + rax]
mov rax, rbp
and rax, 0x1f
je 0x140029cfb
mov r10b, byte [r11 + rdx]
mov byte [r11], r10b
cmp rax, 1
je 0x140029cfb
mov r10b, byte [r11 + rdx + 1]
mov byte [r11 + 1], r10b
add r11, 2
add rax, 0xfffffffffffffffe
jne 0x140029cdb
xor dl, dl
mov eax, dword [rdi + 0x948]
mov r10d, dword [rdi + 0x950]
lea r12d, [rax + 1]
and r12d, 0xfff
cmp r12d, dword [rdi + 0x94c]
je 0x140029d37
mov r11, qword [rdi + 0x940]
mov dword [r11 + rax*4], r10d
mov dword [rdi + 0x948], r12d
mov r10d, dword [rdi + 0x950]
movsxd r12, r10d
mov rax, qword [rdi + 0x930]
lea r11, [r12*4]
shl r12, 5
sub r12, r11
mov r11d, dword [rax + r12 + 0x1c]
test r11d, r11d
jl 0x140029d66
mov dword [rdi + 0x950], r11d
mov r10d, r11d
jmp 0x140029db8
mov r11, qword [rax + r12 + 0x20]
mov ecx, dword [rdi + 0x960]
shr r11, cl
test r11d, r11d
jl 0x140029db8
movsxd r12, r11d
inc r12
cmp r12, 0x10000
jae 0x140029da8
mov r11, qword [rdi + 0x958]
mov r10d, dword [r11 + r12*4]
test r10d, r10d
jge 0x14002a8a5
inc r12
cmp r12, 0x10000
jb 0x140029d8f
mov dword [rdi + 0x950], 0xffffffff
mov r10d, 0xffffffff
test r14d, r14d
jl 0x14002a6f4
movsxd r10, r10d
add rbx, rbp
lea r8, [0x140000000]
mov rbp, qword [rsp + 0x1b8]
lea rdx, [r10*4]
shl r10, 5
sub r10, rdx
movzx esi, byte [r8 + rsi + 0xa2b0]
mov rax, qword [rax + r10 + 0x20]
mov qword [rdi + 0x8c8], rax
movzx ebp, byte [rbp + rbx - 1]
jmp 0x14002a620
mov r8, qword [rsp + 0x180]
movzx edx, byte [rdi + 0xc39]
mov r11, qword [rdi + 0x68]
mov r12, qword [rdi + 0x70]
lea r10, [rbx + r8]
and r10, rdx
mov rdx, qword [rdi + 0xb50]
movzx r9d, byte [r10 + r11]
mov r13, r9
shl r13, 6
mov r10d, dword [rsp + 0xe4]
mov r11d, r10d
movzx r8d, byte [r12 + r9]
mov r12d, r10d
shr r11d, 0xe
and r12d, 0x3fff
lea rax, [r13 + rsi*4]
movzx r13d, word [rdx + rax]
imul r11d, r13d
cmp r12d, r13d
jae 0x140029fdf
mov r10d, r13d
add r12d, r11d
neg r10d
add r10d, 0x4000
shr r10d, 5
add r13d, r10d
mov word [rdx + rax], r13w
cmp r12d, 0x800000
jae 0x140029ecd
mov r10, qword [rsp + 0x168]
shl r12d, 8
movzx r11d, byte [r10]
or r12d, r11d
inc r10
cmp r12d, 0x800000
jae 0x140029ec5
shl r12d, 8
movzx r11d, byte [r10]
or r12d, r11d
inc r10
cmp r12d, 0x800000
jb 0x140029eae
mov qword [rsp + 0x168], r10
xor r10b, r10b
cmp r8d, 0x63
jge 0x140029fd5
mov r11d, r12d
mov r10d, r12d
shr r11d, 0xe
and r10d, 0x3fff
movzx r13d, word [rdx + rax + 2]
imul r11d, r13d
cmp r10d, r13d
jae 0x140029f6a
lea r12d, [r10 + r11]
mov r10d, r13d
neg r10d
add r10d, 0x4000
shr r10d, 5
add r13d, r10d
mov word [rdx + rax + 2], r13w
cmp r12d, 0x800000
jae 0x140029f5d
mov rax, qword [rsp + 0x168]
shl r12d, 8
movzx edx, byte [rax]
or r12d, edx
inc rax
cmp r12d, 0x800000
jae 0x140029f55
shl r12d, 8
movzx edx, byte [rax]
or r12d, edx
inc rax
cmp r12d, 0x800000
jb 0x140029f3f
mov qword [rsp + 0x168], rax
mov dword [rsp + 0xe4], r12d
xor r10b, r10b
jmp 0x140029fd0
mov r10d, r13d
sub r12d, r11d
shr r10d, 5
sub r12d, r13d
sub r13d, r10d
mov word [rdx + rax + 2], r13w
cmp r12d, 0x800000
jae 0x140029fc5
mov rax, qword [rsp + 0x168]
shl r12d, 8
movzx edx, byte [rax]
or r12d, edx
inc rax
cmp r12d, 0x800000
jae 0x140029fbd
shl r12d, 8
movzx edx, byte [rax]
or r12d, edx
inc rax
cmp r12d, 0x800000
jb 0x140029fa7
mov qword [rsp + 0x168], rax
mov dword [rsp + 0xe4], r12d
mov r10b, 1
add r10b, r10b
jmp 0x14002a049
mov dword [rsp + 0xe4], r12d
jmp 0x14002a049
sub r10d, r11d
mov r12d, r10d
mov r10d, r13d
shr r10d, 5
sub r12d, r13d
sub r13d, r10d
mov word [rdx + rax], r13w
cmp r12d, 0x800000
jae 0x14002a03e
mov rdx, qword [rsp + 0x168]
shl r12d, 8
movzx r10d, byte [rdx]
or r12d, r10d
inc rdx
cmp r12d, 0x800000
jae 0x14002a036
shl r12d, 8
movzx r10d, byte [rdx]
or r12d, r10d
inc rdx
cmp r12d, 0x800000
jb 0x14002a01f
mov qword [rsp + 0x168], rdx
mov dword [rsp + 0xe4], r12d
mov r10b, 1
test r10b, r10b
je 0x14002b7e9
cmp r10b, 1
je 0x14002a539
cmp r10b, 2
jne 0x14002a620
cmp r8d, 8
ja 0x14002a620
lea rdx, [0x140000000]
movzx eax, word [rdx + r8*2 + 0xa880]
lea rax, [rdx + rax + 0x2a08a]
jmp rax
mov r11d, dword [rdi]
mov r10, r11
not r10
add r10, rbx
js 0x14002b7b2
mov rdx, qword [rsp + 0x1b8]
movzx edx, byte [r10 + rdx]
mov r10, rsp
mov rcx, rdi
lea r8, [rsp + 0x168]
mov qword [r10 + 0x30], rdx
lea rdx, [rsp + 0xe4]
mov qword [r10 + 0x28], rsi
lea rsi, [rsp + 0xe8]
mov qword [r10 + 0x38], r11
lea r11, [rsp + 0xf8]
mov qword [r10 + 0x20], rbp
mov qword [r10 + 0x40], rdi
mov qword [r10 + 0x48], rsi
mov qword [r10 + 0x50], r11
call fcn.140035820
mov r11, rax
mov rsi, qword [rsp + 0xe8]
mov rax, qword [rsp + 0xf8]
cmp byte [rdi + 0xc34], 0
jne 0x14002b3f9
cmp rax, rbx
jae 0x14002b2cf
not rax
add rax, rbx
mov r10, rax
sar r10, 0x18
add r10, qword [rsp + 0x150]
jl 0x14002a5e3
xor edx, edx
jmp 0x14002a5e9
mov edx, dword [rdi + 0x8b8]
mov rbp, qword [rsp + 0x1b8]
add r10, rdx
and rax, 0xffffff
lea r8, [rbx + rbp]
sub rax, r8
lea rdx, [r11 + r8]
add rax, qword [rdi + r10*8 + 0x4b0]
movzx ebp, byte [r8 + rax]
mov byte [r8], bpl
inc r8
cmp r8, rdx
jb 0x14002a60d
add rbx, r11
cmp rbx, qword [rsp + 0x1b0]
jb 0x14002988b
mov qword [rsp + 0x1a0], rsi
mov edx, 0x1000000
mov rsi, qword [rsp + 0x158]
mov rax, qword [rsp + 0x1b8]
mov r8, qword [rsp + 0x160]
mov ecx, dword [rdi + 0x58]
mov r13, qword [rdi + 0x78]
add rsi, rbx
add rcx, rsi
add r13, rsi
add dword [rdi + 0x84], esi
sub r8, rsi
mov dword [rdi + 0x58], ecx
mov qword [rdi + 0x78], r13
cmp rbx, 0x1000000
jbe 0x14002a69e
shr ecx, 0x18
lea rsi, [rax + 0x1000000]
mov r13, qword [rdi + rcx*8 + 0x4b0]
and rbx, 0xffffff
cmp r13, rsi
jne 0x14002b1cf
test r8, r8
jne 0x1400297b0
mov r9, rdi
mov rax, rbp
mov rdx, qword [r9 + 0xb50]
mov rcx, qword [rsp + 0x1a0]
mov dword [r9 + 0x80], eax
movups xmm6, xmmword [rsp + 0x90]
mov rax, qword [rsp + 0xf0]
mov dword [r9 + 0x60], ecx
mov qword [rdx + 0xe5fe0], rax
xor eax, eax
add rsp, 0x1d8
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
test dl, dl
jne 0x140029dc1
mov eax, dword [rdi + 0xa98]
lea r10d, [rax + 1]
and r10d, 0xfff
cmp r10d, dword [rdi + 0xa9c]
je 0x14002a728
mov rdx, qword [rdi + 0xa90]
mov dword [rdx + rax*4], r13d
mov dword [rdi + 0xa98], r10d
mov rax, qword [rdi + 0xa80]
mov edx, dword [rdi + 0x994]
mov r14, qword [rax + r13*8]
mov r12, r14
shr r12, 0x28
cmp edx, dword [rdi + 0x990]
je 0x14002a76a
mov rax, qword [rdi + 0x988]
mov r11, qword [rdi + 0x978]
mov r13d, dword [rax + rdx*4]
inc edx
and edx, 0xfff
mov dword [rdi + 0x994], edx
jmp 0x14002a793
mov r13, qword [rdi + 0x968]
mov rdx, qword [rdi + 0x970]
lea rax, [r13 + 1]
mov qword [rdi + 0x968], rax
cmp rax, rdx
jae 0x14002a860
mov r11, qword [rdi + 0x978]
movabs r10, 0xffffffffff
lea rdx, [r13 + r13*2]
and r10, r14
mov r14, r12
shl r14, 0x28
mov eax, r12d
add r10, r14
mov qword [r11 + rdx*4 + 4], r10
mov dword [r11 + rdx*4], 0xffffffff
mov r11d, eax
shr r11d, 0x12
shr eax, 7
movzx r10d, word [rdi + r11*4 + 0x9e8]
cmp r10d, 0xffff
jne 0x14002a7fc
mov word [rdi + r11*4 + 0x9ea], ax
mov word [rdi + r11*4 + 0x9e8], ax
mov eax, eax
mov rdx, qword [rdi + 0xa68]
mov dword [rdx + rax*4], r13d
jmp 0x14002a846
cmp r10d, eax
cmovae r10d, eax
mov word [rdi + r11*4 + 0x9e8], r10w
movzx r10d, word [rdi + r11*4 + 0x9ea]
cmp r10d, eax
cmovbe r10d, eax
mov word [rdi + r11*4 + 0x9ea], r10w
mov r11, qword [rdi + 0xa68]
mov r15, qword [rdi + 0x978]
mov r14d, dword [r11 + rax*4]
mov dword [r15 + rdx*4], r14d
mov rdx, qword [rdi + 0xa68]
mov dword [rdx + rax*4], r13d
sub qword [rdi + 0xaa0], r12
mov rax, qword [rdi + 0x930]
mov r10d, dword [rdi + 0x950]
jmp 0x140029dc1
mov r10d, 0x1000
test rdx, rdx
lea rax, [rdx + rdx]
cmovne r10, rax
xor edx, edx
mov rcx, qword [rdi + 0x980]
mov r8, qword [rdi + 0x978]
mov qword [rdi + 0x970], r10
lea r9, [r10 + r10*2]
shl r9, 2
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov r11, rax
mov qword [rdi + 0x978], r11
jmp 0x14002a793
mov dword [rdi + 0x950], r10d
jmp 0x140029db8
mov rbp, r13
mov rdx, r13
sub rbp, r10
mov r9, r11
cmp rbp, r13
mov rsi, qword [rsp + 0x178]
cmovl rdx, rbp
sub rsi, r11
mov rcx, rdx
sub rsi, rbp
shr rcx, 5
mov qword [rsp + 0x170], rsi
test rcx, rcx
je 0x14002a9ca
mov rsi, rdx
xor r8d, r8d
shr rsi, 6
mov ebp, 1
test rsi, rsi
jbe 0x14002a983
mov r9, qword [rsp + 0x140]
mov rbp, rax
sub rbp, r13
lea r14, [r15 + r14 + 0x40]
add rbp, r9
mov qword [rsp + 0x120], rdi
add r9, rax
sub r9, r13
mov rdi, r9
mov r15, r8
nop dword [rax]
movdqu xmm0, xmmword [r15 + rdi]
movdqu xmm1, xmmword [r15 + rbp + 0x10]
movdqu xmmword [r15 + r11], xmm0
inc r8
movdqu xmmword [r15 + r11 + 0x10], xmm1
lea r9, [r14 + r15]
movdqu xmm2, xmmword [r15 + rbp + 0x20]
movdqu xmm3, xmmword [r15 + rbp + 0x30]
movdqu xmmword [r15 + r11 + 0x20], xmm2
movdqu xmmword [r15 + r11 + 0x30], xmm3
add r15, 0x40
cmp r8, rsi
jb 0x14002a930
mov rdi, qword [rsp + 0x120]
lea rbp, [r8 + r8 + 1]
lea r15, [rbp - 1]
cmp r15, rcx
jae 0x14002a9ca
mov r8, qword [rsp + 0x140]
mov r14, rax
sub r14, r13
shl r15, 5
add r14, r8
shl rbp, 5
lea rsi, [rax + r8]
sub rsi, r13
movdqu xmm1, xmmword [r15 + r14 + 0x10]
movdqu xmm0, xmmword [r15 + rsi]
movdqu xmmword [r15 + r11], xmm0
lea r9, [r11 + rbp]
movdqu xmmword [r15 + r11 + 0x10], xmm1
mov rbp, rdx
and rbp, 0x1f
je 0x14002a9fb
mov r8, qword [rsp + 0x170]
mov sil, byte [r9 + r8]
mov byte [r9], sil
cmp rbp, 1
je 0x14002a9fb
mov sil, byte [r9 + r8 + 1]
mov byte [r9 + 1], sil
add r9, 2
add rbp, 0xfffffffffffffffe
jne 0x14002a9db
mov rbp, r13
lea r8, [rdx + r11]
sub rbp, rdx
mov r9, rbp
add r10, qword [rsp + 0x1b8]
shr r9, 5
lea rsi, [rbp + r8]
sub r10, rsi
test r9, r9
je 0x14002ab4a
mov r14, rbp
xor esi, esi
shr r14, 6
mov ecx, 1
xor r15d, r15d
test r14, r14
jbe 0x14002ab03
mov rcx, rax
lea r8, [rax + rbx]
sub r8, r13
sub rcx, r13
add r8, rdx
add rcx, rbx
mov qword [rsp + 0x138], r8
lea r8, [r11 + rdx]
mov qword [rsp + 0x130], r8
lea r8, [r11 + rdx + 0x40]
add rcx, rdx
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x120], rdi
mov rax, r8
mov rbx, qword [rsp + 0x130]
mov rdi, qword [rsp + 0x138]
nop dword [rax + rax]
nop dword [rax]
movdqu xmm0, xmmword [r15 + rcx]
movdqu xmm1, xmmword [r15 + rdi + 0x10]
movdqu xmmword [r15 + rbx], xmm0
movdqu xmmword [r15 + rbx + 0x10], xmm1
inc rsi
lea r8, [rax + r15]
movdqu xmm2, xmmword [r15 + rdi + 0x20]
movdqu xmm3, xmmword [r15 + rdi + 0x30]
movdqu xmmword [r15 + rbx + 0x20], xmm2
movdqu xmmword [r15 + rbx + 0x30], xmm3
add r15, 0x40
cmp rsi, r14
jb 0x14002aaa0
mov rax, qword [rsp + 0x128]
lea rcx, [rsi + rsi + 1]
mov rbx, qword [rsp + 0x188]
mov rdi, qword [rsp + 0x120]
lea r14, [rcx - 1]
cmp r14, r9
jae 0x14002ab4a
mov rsi, rax
add rax, rbx
sub rsi, r13
sub rax, r13
add rsi, rbx
add rax, rdx
shl r14, 5
add rsi, rdx
shl rcx, 5
add r11, rdx
movdqu xmm0, xmmword [r14 + rsi]
movdqu xmm1, xmmword [r14 + rax + 0x10]
movdqu xmmword [r11 + r14], xmm0
movdqu xmmword [r11 + r14 + 0x10], xmm1
lea r8, [r11 + rcx]
and rbp, 0x1f
je 0x140029a3c
mov al, byte [r8 + r10]
mov byte [r8], al
cmp rbp, 1
je 0x140029a3c
mov al, byte [r8 + r10 + 1]
mov byte [r8 + 1], al
add r8, 2
add rbp, 0xfffffffffffffffe
jne 0x14002ab54
jmp 0x140029a3c
mov rsi, rbx
mov r12, rax
shr rsi, 5
sub r12, r13
mov r10, r13
test rsi, rsi
je 0x14002b295
mov r15, rbx
xor ecx, ecx
shr r15, 6
mov r11d, 1
xor r14d, r14d
test r15, r15
jbe 0x14002b25d
nop
movdqu xmm0, xmmword [r14 + rax + 0x1000000]
inc rcx
movdqu xmm1, xmmword [r14 + rax + 0x1000010]
movdqu xmmword [r14 + r13], xmm0
movdqu xmmword [r14 + r13 + 0x10], xmm1
movdqu xmm2, xmmword [r14 + rax + 0x1000020]
movdqu xmm3, xmmword [r14 + rax + 0x1000030]
movdqu xmmword [r14 + r13 + 0x20], xmm2
movdqu xmmword [r14 + r13 + 0x30], xmm3
add r14, 0x40
cmp rcx, r15
jb 0x14002b200
lea r11, [rcx + rcx + 1]
shl rcx, 6
lea r10, [r13 + rcx]
lea r14, [r11 - 1]
cmp r14, rsi
jae 0x14002b295
shl r14, 5
shl r11, 5
movdqu xmm0, xmmword [r14 + rax + 0x1000000]
movdqu xmm1, xmmword [r14 + rax + 0x1000010]
lea r10, [r13 + r11]
movdqu xmmword [r13 + r14], xmm0
movdqu xmmword [r13 + r14 + 0x10], xmm1
and rbx, 0x1f
je 0x14002a69e
mov sil, byte [r10 + r12 + 0x1000000]
mov byte [r10], sil
cmp rbx, 1
je 0x14002a69e
mov sil, byte [r10 + r12 + 0x1000001]
mov byte [r10 + 1], sil
add r10, 2
add rbx, 0xfffffffffffffffe
jne 0x14002b29f
jmp 0x14002a69e
not rax
add rax, rbx
mov r12, rax
mov r8, rax
sar r12, 0x18
and r8, 0xffffff
add r12, qword [rsp + 0x150]
jl 0x14002b2f4
xor edx, edx
jmp 0x14002b2fa
mov edx, dword [rdi + 0x8b8]
add r12, rdx
lea rdx, [r11 + rbx]
add r11, r8
cmp r11, 0x1000000
ja 0x14002b34f
sub r8, rbx
add r8, qword [rdi + r12*8 + 0x4b0]
mov r10, qword [rsp + 0x1b8]
movzx ebp, byte [r8 + rbx]
mov byte [r10 + rbx], bpl
inc rbx
cmp rbx, rdx
jae 0x14002b342
movzx ebp, byte [r8 + rbx]
mov byte [r10 + rbx], bpl
inc rbx
cmp rbx, rdx
jb 0x14002b320
mov qword [rsp + 0x1b8], r10
jmp 0x14002a620
mov rbp, qword [rsp + 0x1b8]
or rax, 0xffffffffff000000
lea r10, [rbx + rbp]
mov rbp, qword [rdi + r12*8 + 0x4b0]
add r8, rbp
add rbp, 0x1000000
sub rbx, rax
movdqu xmm0, xmmword [r8]
movdqu xmmword [r10], xmm0
lea rax, [r8 + 0x10]
cmp rax, rbp
jae 0x14002b3a2
movdqu xmm0, xmmword [r8 + 0x10]
add r8, 0x20
movdqu xmmword [r10 + 0x10], xmm0
add r10, 0x20
cmp r8, rbp
jb 0x14002b376
cmp rbx, rdx
jae 0x14002b3e7
mov rax, qword [rdi + r12*8 + 0x4b8]
mov r8, qword [rsp + 0x1b8]
sub rax, rbx
movzx ebp, byte [rax + rbx]
mov byte [r8 + rbx], bpl
inc rbx
cmp rbx, rdx
jae 0x14002b3da
movzx ebp, byte [rax + rbx]
mov byte [r8 + rbx], bpl
inc rbx
cmp rbx, rdx
jb 0x14002b3ba
mov qword [rsp + 0x1b8], r8
jmp 0x14002a620
mov rax, qword [rsp + 0x1b8]
movzx ebp, byte [rax + rbx - 1]
jmp 0x14002a620
test rax, rax
jl 0x14002b77a
cmp rax, rbx
jae 0x14002b4f6
not rax
add rax, rbx
mov r8, rax
sar r8, 0x18
add r8, qword [rsp + 0x150]
jl 0x14002b426
xor edx, edx
jmp 0x14002b42c
mov edx, dword [rdi + 0x8b8]
add r8, rdx
and rax, 0xffffff
sub rax, rbx
add r11, rbx
mov rdx, qword [rsp + 0x148]
mov r12d, ebp
mov r10, qword [rsp + 0x1b8]
add rax, qword [rdi + r8*8 + 0x4b0]
xor r8d, r8d
movzx r14d, r12b
lea rbp, [rbx + rdx]
mov r12, qword [rdi + r14*8 + 0xc90]
mov r13d, dword [rdi + r14*4 + 0x88]
mov dword [r12 + r13*4], ebp
inc r13d
cmp r13d, dword [rdi + 0xc28]
cmovae r13d, r8d
mov dword [rdi + r14*4 + 0x88], r13d
movzx ebp, byte [rax + rbx]
mov byte [r10 + rbx], bpl
inc rbx
cmp rbx, r11
jae 0x14002b4e1
mov r13, qword [rdi + rbp*8 + 0xc90]
lea r12, [rbx + rdx]
mov r14d, dword [rdi + rbp*4 + 0x88]
mov dword [r13 + r14*4], r12d
inc r14d
cmp r14d, dword [rdi + 0xc28]
cmovae r14d, r8d
mov dword [rdi + rbp*4 + 0x88], r14d
movzx ebp, byte [rax + rbx]
mov r12d, ebp
mov byte [r10 + rbx], r12b
inc rbx
cmp rbx, r11
jb 0x14002b459
mov qword [rsp + 0x148], rdx
mov qword [rsp + 0x1b8], r10
jmp 0x14002a620
not rax
add rax, rbx
mov r8, rax
sar rax, 0x18
and r8, 0xffffff
add rax, qword [rsp + 0x150]
jl 0x14002b518
xor edx, edx
jmp 0x14002b51e
mov edx, dword [rdi + 0x8b8]
mov r13, r8
add rax, rdx
sub r13, rbx
lea rdx, [r11 + rbx]
add r11, r8
cmp r11, 0x1000000
ja 0x14002b5fc
mov r8, qword [rdi + rax*8 + 0x4b0]
add r13, r8
mov rax, qword [rsp + 0x148]
mov r11d, ebp
mov r10, qword [rsp + 0x1b8]
xor r8d, r8d
movzx r14d, r11b
lea rbp, [rbx + rax]
mov r11, qword [rdi + r14*8 + 0xc90]
mov r12d, dword [rdi + r14*4 + 0x88]
mov dword [r11 + r12*4], ebp
inc r12d
cmp r12d, dword [rdi + 0xc28]
cmovae r12d, r8d
mov dword [rdi + r14*4 + 0x88], r12d
movzx ebp, byte [r13 + rbx]
mov byte [r10 + rbx], bpl
inc rbx
cmp rbx, rdx
jae 0x14002b5e7
mov r12, qword [rdi + rbp*8 + 0xc90]
lea r11, [rbx + rax]
mov r14d, dword [rdi + rbp*4 + 0x88]
mov dword [r12 + r14*4], r11d
inc r14d
cmp r14d, dword [rdi + 0xc28]
cmovae r14d, r8d
mov dword [rdi + rbp*4 + 0x88], r14d
movzx ebp, byte [r13 + rbx]
mov r11d, ebp
mov byte [r10 + rbx], r11b
inc rbx
cmp rbx, rdx
jb 0x14002b55c
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x1b8], r10
jmp 0x14002a620
mov r11, qword [rdi + rax*8 + 0x4b0]
mov r14d, ebp
add r11, r13
neg r13
mov r8, qword [rsp + 0x148]
add r13, 0x1000000
mov r10, qword [rsp + 0x1b8]
xor r12d, r12d
movzx ecx, r14b
lea rbp, [rbx + r8]
mov r14, qword [rdi + rcx*8 + 0xc90]
mov r15d, dword [rdi + rcx*4 + 0x88]
mov dword [r14 + r15*4], ebp
inc r15d
cmp r15d, dword [rdi + 0xc28]
cmovae r15d, r12d
mov dword [rdi + rcx*4 + 0x88], r15d
movzx ebp, byte [r11 + rbx]
mov r14d, ebp
mov byte [r10 + rbx], r14b
inc rbx
cmp rbx, r13
jae 0x14002b6af
mov r15, qword [rdi + rbp*8 + 0xc90]
lea r14, [rbx + r8]
mov ecx, dword [rdi + rbp*4 + 0x88]
mov dword [r15 + rcx*4], r14d
inc ecx
cmp ecx, dword [rdi + 0xc28]
cmovae ecx, r12d
mov dword [rdi + rbp*4 + 0x88], ecx
movzx ebp, byte [r11 + rbx]
mov r14d, ebp
mov byte [r10 + rbx], r14b
inc rbx
cmp rbx, r13
jb 0x14002b627
mov qword [rsp + 0x148], r8
mov qword [rsp + 0x1b8], r10
cmp rbx, rdx
jae 0x14002a620
mov r8, qword [rdi + rax*8 + 0x4b8]
mov rax, qword [rsp + 0x148]
sub r8, rbx
lea rbp, [rbx + rax]
mov r11, qword [rdi + r14*8 + 0xc90]
mov r13d, dword [rdi + r14*4 + 0x88]
mov dword [r11 + r13*4], ebp
inc r13d
cmp r13d, dword [rdi + 0xc28]
cmovae r13d, r12d
mov dword [rdi + r14*4 + 0x88], r13d
movzx ebp, byte [r8 + rbx]
mov byte [r10 + rbx], bpl
inc rbx
cmp rbx, rdx
jae 0x14002b5e7
mov r13, qword [rdi + rbp*8 + 0xc90]
lea r11, [rbx + rax]
mov r14d, dword [rdi + rbp*4 + 0x88]
mov dword [r13 + r14*4], r11d
inc r14d
cmp r14d, dword [rdi + 0xc28]
cmovae r14d, r12d
mov dword [rdi + rbp*4 + 0x88], r14d
movzx ebp, byte [r8 + rbx]
mov r14d, ebp
mov byte [r10 + rbx], r14b
inc rbx
cmp rbx, rdx
jb 0x14002b6db
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x1b8], r10
jmp 0x14002a620
mov rdx, qword [rsp + 0x148]
lea r8, [rbx + rdx]
add rax, r8
js 0x14002b78f
xor edx, edx
jmp 0x14002b795
mov edx, dword [rdi + 0xc20]
movdqu xmm0, xmmword [rdi + 0x44]
add rax, rdx
mov qword [rsp + 0xf8], rax
movdqu xmmword [rdi + 0x48], xmm0
mov dword [rdi + 0x44], eax
jmp 0x14002b402
mov r8, r10
sar r8, 0x18
add r8, qword [rsp + 0x150]
jl 0x14002b7c7
xor edx, edx
jmp 0x14002b7cd
mov edx, dword [rdi + 0x8b8]
add r8, rdx
and r10, 0xffffff
mov rdx, qword [rdi + r8*8 + 0x4b0]
movzx edx, byte [rdx + r10]
jmp 0x14002a558
mov r10d, dword [rdi]
not r10
add r10, rbx
js 0x14002bd99
mov rdx, qword [rsp + 0x1b8]
movzx r13d, byte [r10 + rdx]
movzx ecx, byte [rdi + 0xc3d]
mov r11, r9
mov qword [rsp + 0x108], r13
mov r14, r9
shr r13, cl
mov qword [rsp + 0x190], rbx
mov rbx, r13
shl r11, 4
pxor xmm6, xmm6
shl rbx, 5
add r11, r9
mov rdx, r11
mov rax, qword [rdi + 0xb58]
shl rdx, 7
add rdx, rax
lea r8, [rbx + r13*2]
add rdx, r8
mov r8, rbp
movzx ecx, byte [rdi + 0xc3c]
mov r13, rbp
shr r8, cl
mov r15, r8
shl r11, 9
shl r15, 5
movzx ecx, byte [rdi + 0xc3f]
mov qword [rsp + 0x110], r11
shr r13, cl
lea rbx, [rax + r11]
shl r14, 5
lea r11, [r15 + r8*2]
add rbx, r11
mov r15d, 0x8000
imul r11, r13, 0x920
movdqu xmm0, xmmword [rdx]
mov word [rsp + 0xc0], r15w
lea r10, [r14 + rsi*2]
add rax, r10
mov qword [rsp + 0x100], r10
mov r10d, r12d
and r10d, 0x7fff
shr r12d, 0xf
movzx ecx, word [r11 + rax + 0xc1e80]
movd xmm1, ecx
pshuflw xmm2, xmm1, 0
pshufd xmm4, xmm2, 0
movdqu xmm1, xmmword [rbx + 0x26c80]
movdqu xmm2, xmmword [rdx + 0x10]
psubw xmm6, xmm4
movdqa xmm5, xmm4
movdqa xmm3, xmm6
pmulhuw xmm5, xmm0
pmulhuw xmm3, xmm1
pmulhuw xmm4, xmm2
paddw xmm5, xmm3
movdqu xmm3, xmmword [rbx + 0x26c90]
movdqu xmmword [rsp + 0xa0], xmm5
pmulhuw xmm6, xmm3
paddw xmm4, xmm6
movd xmm6, r10d
punpcklwd xmm6, xmm6
pshufd xmm6, xmm6, 0
movdqu xmmword [rsp + 0xb0], xmm4
pcmpgtw xmm5, xmm6
pcmpgtw xmm4, xmm6
packsswb xmm5, xmm4
pmovmskb r8d, xmm5
add r8d, 0x10000
bsf r14d, r8d
lea r8d, [r14 - 1]
movzx r15d, word [rsp + r14*2 + 0xa0]
movzx r13d, word [rsp + r8*2 + 0xa0]
sub r15d, r13d
imul r12d, r15d
sub r12d, r13d
add r12d, r10d
mov r10d, ecx
shr r10d, 4
sub ecx, r10d
movzx r10d, word [rdx + r14*2]
movzx r13d, word [rdx + r8*2]
sub r10d, r13d
movzx r14d, word [rbx + r14*2 + 0x26c80]
movzx r15d, word [rbx + r8*2 + 0x26c80]
sub r14d, r15d
cmp r10w, r14w
lea r13d, [rcx + 0xfff]
lea r10, [0x140000000]
cmovae ecx, r13d
mov word [r11 + rax + 0xc1e80], cx
movsxd rax, r8d
shl rax, 5
mov r13, qword [rsp + 0x108]
movdqu xmm5, xmmword [r10 + rax + 0x1f00]
movdqu xmm4, xmmword [r10 + rax + 0x1f10]
movdqa xmm6, xmm5
psubw xmm5, xmm1
psubw xmm6, xmm0
psraw xmm5, 6
psraw xmm6, 6
paddw xmm1, xmm5
paddw xmm0, xmm6
movdqu xmmword [rdx], xmm0
movdqa xmm0, xmm4
psubw xmm4, xmm3
psubw xmm0, xmm2
psraw xmm4, 6
psraw xmm0, 6
paddw xmm3, xmm4
paddw xmm2, xmm0
movdqu xmmword [rdx + 0x10], xmm2
movdqu xmmword [rbx + 0x26c80], xmm1
movdqu xmmword [rbx + 0x26c90], xmm3
mov rdx, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x190]
cmp r12d, 0x800000
jb 0x14002bd54
mov r14, r13
mov r10, r9
shr r13, 4
and r14, 0xf
add r14, 0x10
cmp r8, r13
mov r15, rbp
cmovne r14, r8
pxor xmm6, xmm6
mov r13, r14
shl r13, 5
shl r10, 4
add r10, r9
movzx ecx, byte [rdi + 0xc3e]
shl r10, 6
lea r13, [r13 + r14*2]
shr r15, cl
add r10, r13
mov r13, r15
shl r13, 5
mov r11, qword [rdi + 0xb58]
add rdx, r11
movzx ecx, byte [rdi + 0xc3f]
add r10, r11
add r11, qword [rsp + 0x100]
mov qword [rsp + 0x118], r8
lea r13, [r13 + r15*2]
add rdx, r13
mov r13, rbp
shr r13, cl
mov r8d, r12d
imul r13, r13, 0x920
movdqu xmm0, xmmword [r10 + 0xe6680]
movzx ecx, word [r13 + r11 + 0x194ec0]
and r8d, 0x7fff
mov r15d, 0x8000
mov word [rsp + 0xe2], r15w
movd xmm1, ecx
pshuflw xmm2, xmm1, 0
pshufd xmm4, xmm2, 0
movdqu xmm1, xmmword [rdx + 0xf9cc0]
movdqu xmm2, xmmword [r10 + 0xe6690]
psubw xmm6, xmm4
movdqa xmm5, xmm4
movdqa xmm3, xmm6
pmulhuw xmm5, xmm0
pmulhuw xmm3, xmm1
pmulhuw xmm4, xmm2
paddw xmm5, xmm3
movdqu xmm3, xmmword [rdx + 0xf9cd0]
movdqu xmmword [rsp + 0xc2], xmm5
pmulhuw xmm6, xmm3
paddw xmm4, xmm6
movd xmm6, r8d
punpcklwd xmm6, xmm6
pshufd xmm6, xmm6, 0
movdqu xmmword [rsp + 0xd2], xmm4
pcmpgtw xmm5, xmm6
pcmpgtw xmm4, xmm6
packsswb xmm5, xmm4
pmovmskb r15d, xmm5
add r15d, 0x10000
bsf r15d, r15d
mov dword [rsp + 0xe4], r12d
lea eax, [r15 - 1]
movzx r14d, word [rsp + rax*2 + 0xc2]
movzx r9d, word [rsp + r15*2 + 0xc2]
shr r12d, 0xf
sub r9d, r14d
imul r12d, r9d
sub r12d, r14d
add r12d, r8d
mov r8d, ecx
shr r8d, 4
sub ecx, r8d
movzx r8d, word [r10 + r15*2 + 0xe6680]
movzx r14d, word [r10 + rax*2 + 0xe6680]
sub r8d, r14d
movzx r15d, word [rdx + r15*2 + 0xf9cc0]
movzx r14d, word [rdx + rax*2 + 0xf9cc0]
sub r15d, r14d
cmp r8w, r15w
lea r14d, [rcx + 0xfff]
mov r8, qword [rsp + 0x118]
cmovae ecx, r14d
mov word [r13 + r11 + 0x194ec0], cx
lea r11, [0x140000000]
movsxd rcx, eax
shl rcx, 5
movdqu xmm5, xmmword [r11 + rcx + 0x1c00]
movdqu xmm4, xmmword [r11 + rcx + 0x1c10]
movdqa xmm6, xmm5
psubw xmm5, xmm1
psubw xmm6, xmm0
psraw xmm5, 7
psraw xmm6, 7
paddw xmm1, xmm5
paddw xmm0, xmm6
movdqu xmmword [r10 + 0xe6680], xmm0
movdqa xmm0, xmm4
psubw xmm4, xmm3
psubw xmm0, xmm2
psraw xmm4, 7
psraw xmm0, 7
paddw xmm3, xmm4
paddw xmm2, xmm0
movdqu xmmword [r10 + 0xe6690], xmm2
movdqu xmmword [rdx + 0xf9cc0], xmm1
movdqu xmmword [rdx + 0xf9cd0], xmm3
cmp r12d, 0x800000
jb 0x14002bd0f
shl r8, 4
add r8, rax
mov dword [rsp + 0xe4], r12d
cmp byte [rdi + 0xc34], 0
je 0x14002bce8
movzx r13d, bpl
xor r12d, r12d
mov rdx, qword [rsp + 0x148]
mov r10, qword [rdi + r13*8 + 0xc90]
lea rbp, [rbx + rdx]
mov r11d, dword [rdi + r13*4 + 0x88]
mov dword [r10 + r11*4], ebp
inc r11d
cmp r11d, dword [rdi + 0xc28]
cmovb r12d, r11d
mov dword [rdi + r13*4 + 0x88], r12d
lea rbp, [0x140000000]
mov rdx, qword [rsp + 0x1b8]
mov byte [rdx + rbx], r8b
inc rbx
movzx esi, byte [rbp + rsi + 0xa260]
movzx ebp, r8b
jmp 0x14002a620
mov rdx, qword [rsp + 0x168]
shl r12d, 8
movzx r10d, byte [rdx]
or r12d, r10d
inc rdx
cmp r12d, 0x800000
jb 0x14002bd3b
mov qword [rsp + 0x168], rdx
jmp 0x14002bc93
shl r12d, 8
movzx r10d, byte [rdx]
or r12d, r10d
inc rdx
cmp r12d, 0x800000
jb 0x14002bd3b
jmp 0x14002bd2e
mov rax, qword [rsp + 0x168]
shl r12d, 8
movzx r10d, byte [rax]
or r12d, r10d
inc rax
cmp r12d, 0x800000
jb 0x14002bd80
mov qword [rsp + 0x168], rax
jmp 0x14002ba51
shl r12d, 8
movzx r10d, byte [rax]
or r12d, r10d
inc rax
cmp r12d, 0x800000
jb 0x14002bd80
jmp 0x14002bd73
mov r8, r10
sar r8, 0x18
add r8, qword [rsp + 0x150]
jl 0x14002bdae
xor edx, edx
jmp 0x14002bdb4
mov edx, dword [rdi + 0x8b8]
add r8, rdx
and r10, 0xffffff
mov rdx, qword [rdi + r8*8 + 0x4b0]
movzx r13d, byte [rdx + r10]
jmp 0x14002b805
movzx ebp, byte [r14 - 1]
jmp 0x1400297f4