Function at 0x140104290
Capabilities:
Inspect section memory permissions

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rbx, qword [r9 + 0x18]
mov r15, qword [r9 + 0x20]
cmp rbx, r15
jbe 0x1401042b9
mov qword [rcx], 0
jmp 0x1401053e5
mov r13, r9
mov rdi, r8
mov r14, rdx
mov qword [rsp + 0x28], rcx
cmp byte [r9 + 0x28], 0
je 0x140104375
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x40], rax
cmp r15, rax
jae 0x140104407
mov rax, qword [r13 + 8]
movzx r12d, byte [rax + r15]
mov edx, dword [r13]
mov r8d, dword [r13 + 4]
mov rax, qword [r14 + 0x290]
or rax, qword [r14 + 0x2a0]
mov rcx, qword [r14 + 0x288]
or rcx, qword [r14 + 0x298]
or rcx, rax
je 0x14010435b
lea rax, [r14 + 0x288]
mov r9d, r12d
shr r9d, 7
shl r9, 4
mov r10d, 1
xor r11d, r11d
mov ecx, r12d
shld r11, r10, cl
shl r10, cl
xor ecx, ecx
test r12b, 0x40
cmovne r11, r10
cmovne r10, rcx
and r11, qword [rax + r9 + 8]
and r10, qword [rax + r9]
or r10, r11
jne 0x1401043fd
movzx eax, byte [r14 + r12 + 0x78]
movzx r9d, al
mov rax, r9
test edx, edx
jne 0x14010441c
jmp 0x140104429
mov rsi, qword [r13 + 0x10]
cmp r15, rsi
jae 0x14010470b
mov rax, qword [r13 + 8]
movzx r12d, byte [rax + r15]
mov edx, dword [r13]
mov r8d, dword [r13 + 4]
mov rax, qword [r14 + 0x290]
or rax, qword [r14 + 0x2a0]
mov rcx, qword [r14 + 0x288]
or rcx, qword [r14 + 0x298]
or rcx, rax
je 0x140104826
lea rax, [r14 + 0x288]
mov r9d, r12d
shr r9d, 7
shl r9, 4
mov r10d, 1
xor r11d, r11d
mov ecx, r12d
shld r11, r10, cl
shl r10, cl
xor ecx, ecx
test r12b, 0x40
cmovne r11, r10
cmovne r10, rcx
and r11, qword [rax + r9 + 8]
and r10, qword [rax + r9]
or r10, r11
je 0x140104826
mov ebp, 4
jmp 0x140104ce9
mov edx, dword [r13]
mov r8d, dword [r13 + 4]
mov al, 2
movzx r9d, al
mov rax, r9
test edx, edx
je 0x140104429
cmp edx, 1
jne 0x140104729
lea rax, [r9 + 6]
cmp rax, qword [rdi + 0x58]
jae 0x140105499
mov rcx, qword [rdi + 0x48]
mov r12d, dword [rcx + rax*4]
test r12d, r12d
js 0x140105190
cmp rbx, r15
jne 0x140104466
test rbx, rbx
je 0x140104c65
lea r15, [rbx - 1]
cmp r15, qword [rsp + 0x40]
jb 0x14010487a
jmp 0x140105499
dec r15
cmp qword [rdi], 1
jne 0x14010448e
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 8]
mov rdx, rax
sub rdx, rcx
neg rdx
sub rax, rcx
cmovb rax, rdx
add qword [rdi + 0x158], rax
mov qword [rdi], 1
mov qword [rdi + 8], r15
mov qword [rdi + 0x10], r15
mov r13, qword [r13 + 8]
mov rax, rbx
add rax, 3
mov rbp, 0xffffffffffffffff
cmovae rbp, rax
mov r10, qword [r14 + 0x178]
lea rcx, [rsp + 0x30]
jmp 0x1401044e3
mov r12d, edx
lea rax, [r15 - 1]
cmp r15, rbx
mov r15, rax
je 0x14010476b
cmp r12d, 0x7ffffff
jbe 0x140104560
cmp qword [rdi], 0
je 0x140105499
mov qword [rdi + 0x10], r15
cmp r15, qword [rsp + 0x40]
jae 0x140105499
movzx r8d, byte [r13 + r15]
movzx edx, byte [r14 + r8 + 0x188]
mov eax, r12d
and eax, 0x7ffffff
add rax, rdx
cmp rax, qword [rdi + 0x40]
jae 0x140105499
mov rdx, qword [rdi + 0x30]
mov edx, dword [rdx + rax*4]
test edx, edx
js 0x1401046d8
cmp edx, 0x8000000
jb 0x1401044d0
mov eax, edx
mov r8d, eax
and r8d, 0x10000000
jne 0x1401044d0
jmp 0x140104ec2
cmp r15, rbx
jb 0x1401044d3
mov r11, qword [rdi + 0x30]
dec r15
mov rax, r15
nop word cs:[rax + rax]
lea r15, [rax + 1]
movzx edx, byte [r13 + rax + 1]
movzx edx, byte [r14 + rdx + 0x188]
mov r8d, r12d
add r8, rdx
mov edx, dword [r11 + r8*4]
cmp r15, rbp
jbe 0x140104627
cmp edx, 0x8000000
jae 0x140104627
movzx r8d, byte [r13 + rax]
movzx r8d, byte [r14 + r8 + 0x188]
add r8, rdx
mov r8d, dword [r11 + r8*4]
cmp r8, 0x7ffffff
ja 0x140104634
movzx edx, byte [r13 + rax - 1]
movzx edx, byte [r14 + rdx + 0x188]
add rdx, r8
mov edx, dword [r11 + rdx*4]
cmp rdx, 0x7ffffff
ja 0x140104646
movzx r8d, byte [r13 + rax - 2]
movzx r8d, byte [r14 + r8 + 0x188]
add r8, rdx
mov r12d, dword [r11 + r8*4]
cmp r12d, 0x7ffffff
ja 0x140104659
lea r15, [rax - 4]
add rax, 0xfffffffffffffffd
cmp rax, rbx
mov rax, r15
jae 0x140104580
inc r15
jmp 0x1401044d3
mov eax, r12d
test edx, edx
jns 0x140104538
jmp 0x14010466d
mov r15, rax
mov eax, edx
mov edx, r8d
test edx, edx
jns 0x140104538
jmp 0x14010466d
dec rax
mov r15, rax
mov eax, r8d
test edx, edx
jns 0x140104538
jmp 0x14010466d
add rax, 0xfffffffffffffffe
mov r15, rax
mov eax, edx
mov edx, r12d
test edx, edx
jns 0x140104538
cmp qword [rdi], 0
je 0x140105499
mov qword [rdi + 0x10], r15
cmp r15, qword [rsp + 0x40]
jae 0x140105499
movzx r8d, byte [r13 + r15]
movzx r9d, byte [r14 + r8 + 0x188]
mov edx, eax
add rdx, r9
cmp rdx, qword [rdi + 0x40]
jae 0x140105499
mov edx, dword [r11 + rdx*4]
test edx, edx
jns 0x140104538
mov r12, r10
shl r8d, 8
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
mov rsi, rcx
mov edx, eax
call fcn.1400cc830
test eax, eax
jne 0x1401052dc
mov r10, r12
jmp 0x140104703
mov qword [rsp + 0x50], r10
shl r8d, 8
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
mov rsi, rcx
mov edx, r12d
call fcn.1400cc830
test eax, eax
jne 0x1401052dc
mov r10, qword [rsp + 0x50]
mov rcx, rsi
jmp 0x140104538
mov edx, dword [r13]
mov r8d, dword [r13 + 4]
mov al, 2
movzx r9d, al
mov rax, r9
test edx, edx
jne 0x140104837
jmp 0x140104844
test byte [r14 + 0x71], 1
mov r12d, r8d
mov ebp, 2
je 0x140104ce9
mov rax, qword [r14 + 0x178]
cmp qword [rax + 0x160], r12
jbe 0x140104fc9
lea rax, [r12 + r12*2]
lea rax, [r9 + rax*2]
add rax, 0xc
cmp rax, qword [rdi + 0x58]
jb 0x140104433
jmp 0x140105499
mov rax, qword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 0
je 0x140105499
mov rcx, rbx
sub rcx, rax
neg rcx
mov rdx, rbx
sub rdx, rax
cmovb rdx, rcx
add qword [rdi + 0x158], rdx
test rbx, rbx
je 0x140104f72
lea r15, [rbx - 1]
cmp r15, qword [rsp + 0x40]
jae 0x140105499
movzx r13d, byte [r13 + r15]
movzx ecx, byte [r14 + r13 + 0x188]
mov eax, r12d
and eax, 0x7ffffff
add rax, rcx
cmp rax, qword [rdi + 0x40]
mov rsi, qword [rsp + 0x28]
jae 0x140105499
mov rcx, qword [rdi + 0x30]
mov edx, dword [rcx + rax*4]
test edx, edx
js 0x1401052e9
mov edx, edx
test edx, 0x8000000
je 0x1401048c3
cmp qword [r10 + 0x160], 1
je 0x140104e11
and edx, 0x7ffffff
movzx ecx, byte [r14 + 0x180]
shr rdx, cl
cmp rdx, qword [rdi + 0x70]
jb 0x1401053bd
jmp 0x140105499
movzx eax, byte [r14 + r12 + 0x78]
movzx r9d, al
mov rax, r9
test edx, edx
je 0x140104844
cmp edx, 1
jne 0x140104cd6
lea rax, [r9 + 6]
cmp rax, qword [rdi + 0x58]
jae 0x140105499
mov rcx, qword [rdi + 0x48]
mov r12d, dword [rcx + rax*4]
test r12d, r12d
js 0x140105244
cmp rbx, r15
jne 0x1401048d6
test rbx, rbx
je 0x140104c65
lea r15, [rbx - 1]
cmp r15, rsi
jae 0x140105499
mov rax, qword [r13 + 8]
movzx r13d, byte [rax + r15]
movzx ecx, byte [r14 + r13 + 0x188]
mov eax, r12d
and eax, 0x7ffffff
add rax, rcx
cmp rax, qword [rdi + 0x40]
mov rsi, qword [rsp + 0x28]
jae 0x140105499
mov rcx, qword [rdi + 0x30]
mov edx, dword [rcx + rax*4]
test edx, edx
js 0x140105270
mov edx, edx
test edx, 0x8000000
jne 0x140104dfc
test edx, 0x20000000
jne 0x140104f28
xor ecx, ecx
jmp 0x1401053db
dec r15
cmp qword [rdi], 1
jne 0x1401048fe
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 8]
mov rdx, rax
sub rdx, rcx
neg rdx
sub rax, rcx
cmovb rax, rdx
add qword [rdi + 0x158], rax
mov qword [rdi], 1
mov qword [rdi + 8], r15
mov qword [rdi + 0x10], r15
mov rbp, qword [r13 + 8]
mov rax, rbx
add rax, 3
mov r13, 0xffffffffffffffff
cmovae r13, rax
mov rax, qword [r14 + 0x178]
mov qword [rsp + 0x50], rax
mov r11, qword [r14 + 0x180]
and r11d, 0x3f
xor eax, eax
mov qword [rsp + 0x40], rax
jmp 0x14010496a
mov r10d, dword [rax + 0x1d]
lea rax, [r15 + 1]
mov qword [rsp + 0x60], rax
mov eax, 1
mov qword [rsp + 0x40], rax
lea rax, [r15 - 1]
cmp r15, rbx
mov r15, rax
je 0x140104e1d
cmp r12d, 0x7ffffff
jbe 0x1401049d0
cmp qword [rdi], 0
je 0x140105499
mov qword [rdi + 0x10], r15
cmp r15, rsi
jae 0x140105499
movzx r8d, byte [rbp + r15]
movzx ecx, byte [r14 + r8 + 0x188]
mov eax, r12d
and eax, 0x7ffffff
add rax, rcx
cmp rax, qword [rdi + 0x40]
jae 0x140105499
mov rcx, qword [rdi + 0x30]
mov eax, dword [rcx + rax*4]
test eax, eax
js 0x140104bca
mov r12d, eax
cmp r12d, 0x8000000
jae 0x140104b0d
jmp 0x14010495a
cmp r15, rbx
jb 0x14010495a
mov rax, qword [rdi + 0x30]
dec r15
mov rcx, r15
nop
lea r15, [rcx + 1]
movzx edx, byte [rbp + rcx + 1]
movzx edx, byte [r14 + rdx + 0x188]
mov r8d, r12d
add r8, rdx
mov r8d, dword [rax + r8*4]
cmp r15, r13
jbe 0x140104a8c
cmp r8d, 0x8000000
jae 0x140104a8c
movzx edx, byte [rbp + rcx]
movzx edx, byte [r14 + rdx + 0x188]
add rdx, r8
mov r9d, dword [rax + rdx*4]
cmp r9, 0x7ffffff
ja 0x140104aa5
movzx edx, byte [rbp + rcx - 1]
movzx edx, byte [r14 + rdx + 0x188]
add rdx, r9
mov r8d, dword [rax + rdx*4]
cmp r8, 0x7ffffff
ja 0x140104b98
movzx edx, byte [rbp + rcx - 2]
movzx edx, byte [r14 + rdx + 0x188]
add rdx, r8
mov r12d, dword [rax + rdx*4]
cmp r12d, 0x7ffffff
ja 0x140104baf
lea r15, [rcx - 4]
add rcx, 0xfffffffffffffffd
cmp rcx, rbx
mov rcx, r15
jae 0x1401049e0
inc r15
jmp 0x14010495a
mov edx, r12d
test r8d, r8d
js 0x140104ab3
mov r12d, r8d
cmp r12d, 0x8000000
jae 0x140104b0d
jmp 0x14010495a
mov r15, rcx
mov edx, r8d
mov r8d, r9d
test r8d, r8d
jns 0x140104a94
cmp qword [rdi], 0
je 0x140105499
mov qword [rdi + 0x10], r15
cmp r15, rsi
jae 0x140105499
movzx r8d, byte [rbp + r15]
movzx r9d, byte [r14 + r8 + 0x188]
mov ecx, edx
add rcx, r9
cmp rcx, qword [rdi + 0x40]
jae 0x140105499
mov r12d, dword [rax + rcx*4]
test r12d, r12d
js 0x140104c1c
nop word cs:[rax + rax]
cmp r12d, 0x8000000
jb 0x14010495a
mov eax, r12d
mov ecx, eax
and ecx, 0x10000000
jne 0x14010495a
test eax, 0x8000000
je 0x1401050f6
xor r10d, r10d
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x160], 1
je 0x140104947
mov eax, r12d
and eax, 0x7ffffff
mov ecx, r11d
shr rax, cl
cmp rax, qword [rdi + 0x70]
jae 0x140105499
mov rdx, qword [rdi + 0x60]
shl rax, 4
mov rcx, qword [rdx + rax + 8]
test rcx, rcx
je 0x140105499
mov rax, qword [rdx + rax]
test byte [rax + 0x10], 2
je 0x140104947
cmp rcx, 0xd
jb 0x140105499
add rcx, 0xfffffffffffffff3
cmp rcx, 3
ja 0x140104943
jmp 0x140105499
dec rcx
mov r15, rcx
mov edx, r9d
test r8d, r8d
jns 0x140104a94
jmp 0x140104ab3
add rcx, 0xfffffffffffffffe
mov r15, rcx
mov edx, r8d
mov r8d, r12d
test r8d, r8d
jns 0x140104a94
jmp 0x140104ab3
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x58], rsi
mov rsi, r10
shl r8d, 8
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x30]
mov edx, r12d
call fcn.1400cc830
test eax, eax
jne 0x1401052dc
mov r12d, edx
mov r10, rsi
mov rsi, qword [rsp + 0x58]
mov r11, qword [rsp + 0x48]
cmp r12d, 0x8000000
jae 0x140104b0d
jmp 0x14010495a
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x58], r10
shl r8d, 8
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x30]
call fcn.1400cc830
test eax, eax
jne 0x1401052dc
mov r12d, edx
mov r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x48]
cmp r12d, 0x8000000
jae 0x140104b0d
jmp 0x14010495a
movzx r8d, byte [r14 + 0x287]
shl r8d, 0x10
add r8d, 0x10001
mov ecx, r8d
shr ecx, 0x10
mov eax, r12d
and eax, 0x7ffffff
add rax, rcx
cmp qword [rdi + 0x40], rax
jbe 0x140105499
mov rcx, qword [rdi + 0x30]
mov edx, dword [rcx + rax*4]
test edx, edx
mov rsi, qword [rsp + 0x28]
js 0x1401052b8
xor eax, eax
test edx, 0x8000000
je 0x140104fc2
mov rcx, qword [r14 + 0x178]
cmp qword [rcx + 0x160], 1
jne 0x1401053a0
mov ecx, 1
xor ebx, ebx
jmp 0x1401053db
test byte [r14 + 0x71], 1
mov r12d, r8d
mov ebp, 2
jne 0x140104f43
lea ecx, [rbp - 3]
cmp ecx, 2
mov eax, 2
cmovb eax, ecx
test eax, eax
je 0x140104d5a
cmp eax, 1
mov rsi, qword [rsp + 0x28]
jne 0x140104dac
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140104d34
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140105499
mov rcx, rax
mov qword [0x1402d9150], rax
mov r8d, 0x10
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x140105499
mov byte [rax], 0
mov byte [rax + 1], r12b
mov qword [rax + 8], r15
jmp 0x140104f33
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
mov rsi, qword [rsp + 0x28]
jne 0x140104d8a
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140105499
mov rcx, rax
mov qword [0x1402d9150], rax
mov r8d, 0x10
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x140105499
mov byte [rax], 1
mov qword [rax + 8], r15
jmp 0x140104f33
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140104dd7
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140105499
mov rcx, rax
mov qword [0x1402d9150], rax
mov r8d, 0x10
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x140105499
mov byte [rax], 3
mov dword [rax + 4], ebp
mov dword [rax + 8], r12d
jmp 0x140104f33
mov rax, qword [r14 + 0x178]
cmp qword [rax + 0x160], 1
jne 0x140104806
mov ecx, 1
xor eax, eax
jmp 0x1401053db
mov rax, qword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 0
je 0x140105499
mov rcx, rbx
sub rcx, rax
neg rcx
mov rdx, rbx
sub rdx, rax
cmovb rdx, rcx
add qword [rdi + 0x158], rdx
test rbx, rbx
je 0x14010507c
lea r15, [rbx - 1]
cmp r15, rsi
jae 0x140105499
movzx ebp, byte [rbp + r15]
movzx edx, byte [r14 + rbp + 0x188]
mov eax, r12d
and eax, 0x7ffffff
add rax, rdx
cmp rax, qword [rdi + 0x40]
mov rsi, qword [rsp + 0x28]
jae 0x140105499
mov rdx, qword [rdi + 0x30]
mov edx, dword [rdx + rax*4]
test edx, edx
js 0x140105324
mov edx, edx
test edx, 0x8000000
jne 0x14010543d
test edx, 0x20000000
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x60]
je 0x140105489
mov ecx, ebp
jmp 0x140104f2b
test eax, 0x8000000
jne 0x140104ff2
test eax, 0x40000000
jne 0x1401051bc
test eax, 0x20000000
je 0x140105499
mov rax, qword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 0
je 0x140105499
mov rcx, r15
sub rcx, rax
neg rcx
mov rdx, r15
sub rdx, rax
cmovb rdx, rcx
add qword [rdi + 0x158], rdx
cmp r15, qword [rsp + 0x40]
jae 0x140105499
movzx ecx, byte [r13 + r15]
jmp 0x14010514a
mov ecx, r13d
mov rdx, r15
call fcn.1400e5250
mov qword [rsi + 8], rax
mov qword [rsi], 2
jmp 0x1401053e5
mov rax, qword [r14 + 0x178]
cmp qword [rax + 0x160], r12
jbe 0x140105167
lea rax, [r12 + r12*2]
lea rax, [r9 + rax*2]
add rax, 0xc
cmp rax, qword [rdi + 0x58]
jb 0x14010484e
jmp 0x140105499
movzx r8d, byte [r14 + 0x287]
shl r8d, 0x10
add r8d, 0x10001
mov ecx, r8d
shr ecx, 0x10
mov eax, r12d
and eax, 0x7ffffff
add rax, rcx
cmp qword [rdi + 0x40], rax
jbe 0x140105499
mov rcx, qword [rdi + 0x30]
mov edx, dword [rcx + rax*4]
test edx, edx
mov rsi, qword [rsp + 0x28]
js 0x14010535f
xor eax, eax
test edx, 0x8000000
jne 0x140105392
xor ecx, ecx
jmp 0x1401053db
mov rcx, qword [r14 + 0x180]
and ecx, 0x3f
cmp rcx, 0x1b
jae 0x140105499
mov r12d, 1
shl r12, cl
or r12d, 0x40000000
jmp 0x140104444
xor eax, eax
cmp qword [r10 + 0x160], 1
mov rsi, qword [rsp + 0x28]
je 0x140105037
and edx, 0x7ffffff
movzx ecx, byte [r14 + 0x180]
shr rdx, cl
cmp rdx, qword [rdi + 0x70]
jae 0x140105499
mov rax, qword [rdi + 0x60]
shl rdx, 4
mov rcx, qword [rax + rdx]
mov rdx, qword [rax + rdx + 8]
xor r8d, r8d
call fcn.1400f1ef0
mov rcx, qword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 0
je 0x140105499
mov rdx, r15
sub rdx, rcx
neg rdx
mov r8, r15
sub r8, rcx
cmovb r8, rdx
add qword [rdi + 0x158], r8
inc r15
mov qword [rsi], 1
mov qword [rsi + 8], r15
mov dword [rsi + 0x10], eax
jmp 0x1401053e5
movzx r8d, byte [r14 + 0x287]
shl r8d, 0x10
add r8d, 0x10001
mov ecx, r8d
shr ecx, 0x10
mov eax, r12d
and eax, 0x7ffffff
add rax, rcx
cmp qword [rdi + 0x40], rax
jbe 0x140105499
mov rcx, qword [rdi + 0x30]
mov edx, dword [rcx + rax*4]
test edx, edx
mov rsi, qword [rsp + 0x28]
js 0x1401053f6
test edx, 0x8000000
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x60]
je 0x140105489
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x160], 1
jne 0x14010529b
mov eax, 1
xor r10d, r10d
xor ebx, ebx
jmp 0x140105489
test eax, 0x40000000
jne 0x1401051f9
test eax, 0x20000000
je 0x140105499
mov rax, qword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 0
je 0x140105499
mov rcx, r15
sub rcx, rax
neg rcx
mov rdx, r15
sub rdx, rax
cmovb rdx, rcx
add qword [rdi + 0x158], rdx
cmp r15, rsi
jae 0x140105499
movzx ecx, byte [rbp + r15]
mov rdx, r15
call fcn.1400e5250
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 8], rax
mov qword [rcx], 2
jmp 0x1401053e5
mov rcx, qword [r14 + 0x180]
and ecx, 0x3f
cmp rcx, 0x1b
jae 0x140105499
mov r12d, 1
shl r12, cl
or r12d, 0x40000000
jmp 0x14010485f
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x30]
call fcn.1400cdb30
mov rbp, rax
mov r12, rax
shr r12, 0x20
cmp ebp, 5
je 0x140104444
jmp 0x140104ce9
mov rax, qword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 0
je 0x140105499
mov rcx, r15
sub rcx, rax
neg rcx
sub r15, rax
cmovb r15, rcx
add qword [rdi + 0x158], r15
mov rax, qword [rsp + 0x28]
mov qword [rax], 0
jmp 0x1401053e5
mov rax, qword [rdi + 8]
cmp qword [rdi], 0
mov qword [rdi], 0
je 0x140105499
mov rcx, r15
sub rcx, rax
neg rcx
sub r15, rax
cmovb r15, rcx
add qword [rdi + 0x158], r15
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x40]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rax + 8], rcx
mov dword [rax + 0x10], r10d
jmp 0x1401053e5
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x30]
call fcn.1400cdb30
mov rbp, rax
mov r12, rax
shr r12, 0x20
cmp ebp, 5
je 0x14010485f
jmp 0x140104ce9
mov r8d, r13d
shl r8d, 8
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x30]
mov edx, r12d
call fcn.1400cc830
test eax, eax
jne 0x140105352
jmp 0x1401048b5
and edx, 0x7ffffff
mov ecx, r11d
shr rdx, cl
cmp rdx, qword [rdi + 0x70]
jae 0x140105499
xor ebx, ebx
jmp 0x140105468
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x30]
mov edx, r12d
call fcn.1400cc830
test eax, eax
jne 0x14010541b
jmp 0x140104ca7
mov rcx, r15
call fcn.1400e52b0
jmp 0x140105152
mov rbp, r10
mov r8d, r13d
shl r8d, 8
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x30]
mov edx, r12d
call fcn.1400cc830
test eax, eax
jne 0x140105352
mov r10, rbp
mov edx, edx
test edx, 0x8000000
jne 0x1401047f8
jmp 0x1401048c3
mov qword [rsp + 0x48], r11
mov r13, r10
mov r8d, ebp
shl r8d, 8
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x30]
mov edx, r12d
call fcn.1400cc830
test eax, eax
je 0x140105427
mov rcx, rbx
call fcn.1400e52b0
jmp 0x140104f33
mov rbx, r10
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x30]
mov edx, r12d
call fcn.1400cc830
test eax, eax
jne 0x14010541b
mov r10, rbx
xor eax, eax
test edx, 0x8000000
je 0x140104fc2
cmp qword [r10 + 0x160], 1
je 0x140104cca
and edx, 0x7ffffff
movzx ecx, byte [r14 + 0x180]
shr rdx, cl
cmp rdx, qword [rdi + 0x70]
jae 0x140105499
xor ebx, ebx
mov rax, qword [rdi + 0x60]
shl rdx, 4
mov rcx, qword [rax + rdx]
mov rdx, qword [rax + rdx + 8]
xor r8d, r8d
call fcn.1400f1ef0
mov ecx, 1
mov qword [rsi], rcx
mov qword [rsi + 8], rbx
mov dword [rsi + 0x10], eax
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r15, r11
mov rbx, r10
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x30]
mov edx, r12d
call fcn.1400cc830
test eax, eax
je 0x14010549d
xor ecx, ecx
call fcn.1400e52b0
jmp 0x140104f33
mov r10, r13
mov r11, qword [rsp + 0x48]
mov edx, edx
test edx, 0x8000000
je 0x140104ea8
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x160], 1
jne 0x140105456
mov eax, 1
xor r10d, r10d
jmp 0x140105489
and edx, 0x7ffffff
mov ecx, r11d
shr rdx, cl
cmp rdx, qword [rdi + 0x70]
jae 0x140105499
mov rax, qword [rdi + 0x60]
shl rdx, 4
mov rcx, qword [rax + rdx]
mov rdx, qword [rax + rdx + 8]
xor r8d, r8d
call fcn.1400f1ef0
mov r10d, eax
mov eax, 1
mov qword [rsi], rax
mov qword [rsi + 8], rbx
mov dword [rsi + 0x10], r10d
jmp 0x1401053e5
ud2
mov r10, rbx
mov r11, r15
test edx, 0x8000000
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x60]
jne 0x1401050d4
jmp 0x140105489