Function at 0x1401a158c
Capabilities:
Inspect section memory permissions

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x638]
sub rsp, 0x738
mov r15, r8
mov rdi, rdx
mov r14, rcx
xor esi, esi
mov qword [rcx + 0x78], rsi
mov qword [rcx + 0x80], rsi
mov qword [rcx + 0x88], rsi
lea rbx, [rcx + 0x90]
mov qword [rbx], rsi
mov word [rcx + 0x60], si
mov dword [rcx + 8], esi
add rcx, 0x10
call fcn.1401a13d8
lea rcx, [r14 + 0x20]
call fcn.140134e20
lea r13, [r14 + 0x30]
cmp qword [r13], rsi
je 0x1401a1608
mov rcx, qword [r13]
call fcn.140202c34
mov qword [r13], rsi
mov qword [r13 + 8], rsi
mov r8d, 0x600
lea rdx, [rbp + 0x30]
mov rcx, rdi
call fcn.14013e908
test eax, eax
jne 0x1401a2106
mov ecx, esi
lea rax, [rbp + 0x30]
mov r8d, 1
cmp byte [rax], sil
jne 0x1401a2101
add ecx, r8d
add rax, r8
cmp ecx, 0x400
jb 0x1401a1632
mov cl, byte [rbp + 0x430]
mov byte [r14 + 0x40], cl
mov rax, qword [rbp + 0x431]
mov byte [r14 + 0x41], al
mov r12d, 9
mov dword [rbp + 0x698], r12d
cmp cl, 0x42
jne 0x1401a177f
cmp al, 0x44
jne 0x1401a2101
cmp byte [rbp + 0x4ac], 0x48
jne 0x1401a2101
cmp byte [rbp + 0x4ad], 0x2b
jne 0x1401a2101
mov edx, dword [rbp + 0x444]
bswap edx
mov ecx, r12d
cmp edx, 0x200
je 0x1401a16be
cmp ecx, 0x1f
je 0x1401a2101
add ecx, r8d
mov eax, r8d
shl eax, cl
cmp eax, edx
jne 0x1401a16a9
mov dword [r14 + 0x54], ecx
movzx r9d, byte [rbp + 0x442]
shl r9d, 8
movzx eax, byte [rbp + 0x443]
or r9d, eax
mov dword [r14 + 0x58], r9d
add r9, 2
shl r9, cl
mov qword [r14 + 0x88], r9
movzx edx, byte [rbp + 0x4ae]
shl rdx, 8
movzx eax, byte [rbp + 0x4af]
or rdx, rax
add rdx, r8
mov ecx, dword [r14 + 0x54]
shl rdx, cl
mov qword [r14 + 0x78], rdx
movzx r8d, byte [rbp + 0x4b0]
shl r8, 8
movzx eax, byte [rbp + 0x4b1]
or r8, rax
mov ecx, dword [r14 + 0x54]
shl r8, cl
add r8, rdx
cmp r9, r8
cmovb r9, r8
mov qword [r14 + 0x88], r9
mov rax, qword [rdi]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call qword [rax + 0x20]
test eax, eax
jne 0x1401a2106
mov r8d, 0x600
lea rdx, [rbp + 0x30]
mov rcx, rdi
call fcn.14013e908
test eax, eax
jne 0x1401a2106
mov rax, qword [rbp + 0x431]
mov cl, byte [rbp + 0x430]
mov r8d, 1
cmp cl, 0x48
jne 0x1401a2101
cmp al, 0x2b
je 0x1401a1794
cmp al, 0x58
jne 0x1401a2101
movzx ecx, byte [rbp + 0x432]
shl cx, 8
movzx eax, byte [rbp + 0x433]
or cx, ax
mov word [r14 + 0x42], cx
sub cx, 4
cmp cx, r8w
ja 0x1401a2101
mov eax, dword [rbp + 0x440]
bswap eax
mov dword [r14 + 0x44], eax
mov eax, dword [rbp + 0x444]
bswap eax
mov dword [r14 + 0x48], eax
mov ecx, dword [rbp + 0x450]
bswap ecx
mov dword [r14 + 0x4c], ecx
mov eax, dword [rbp + 0x454]
bswap eax
mov dword [r14 + 0x50], eax
cmp eax, 0x20000000
ja 0x1401a2101
cmp ecx, 0x40000000
ja 0x1401a2101
mov rax, qword [rdi]
mov r9, rbx
xor edx, edx
lea r8d, [rdx + 2]
mov rcx, rdi
call qword [rax + 0x20]
test eax, eax
jne 0x1401a2106
test r15, r15
je 0x1401a1852
mov ecx, dword [r14 + 0x50]
mov eax, dword [r14 + 0x4c]
inc rax
add rcx, rax
mov qword [rbp + 0x680], rcx
mov rax, qword [r15]
xor r8d, r8d
lea rdx, [rbp + 0x680]
mov rcx, r15
call qword [rax + 0x18]
test eax, eax
jne 0x1401a2106
mov edx, dword [rbp + 0x458]
bswap edx
mov ecx, r12d
mov ebx, 0x200
cmp edx, ebx
je 0x1401a187c
cmp ecx, 0x1f
je 0x1401a2101
inc ecx
mov eax, 1
shl eax, cl
cmp eax, edx
jne 0x1401a1866
mov dword [r14 + 0x54], ecx
mov eax, dword [rbp + 0x45c]
bswap eax
mov dword [r14 + 0x58], eax
mov eax, dword [rbp + 0x460]
bswap eax
mov dword [r14 + 0x5c], eax
lea rcx, [r14 + 0x68]
lea rdx, str.rsrc
call fcn.140177be4
mov qword [rbp - 0x18], rsi
mov dword [rbp - 0x10], esi
mov qword [rbp - 8], rsi
mov qword [rbp], rsi
mov qword [rbp - 0x38], rsi
mov dword [rbp - 0x30], esi
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x78], rsi
mov dword [rbp - 0x70], esi
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], rsi
lea rdx, [rbp + 0x4f0]
lea rcx, [rbp - 0x18]
call fcn.1401a039c
lea rdx, [rbp + 0x540]
lea rcx, [rbp - 0x38]
call fcn.1401a039c
lea rdx, [rbp + 0x590]
lea rcx, [rbp - 0x78]
call fcn.1401a039c
lea rax, [fcn.1400f7a9c]
mov qword [rsp + 0x20], rax
lea r9, [0x1401a0660]
mov edx, 0x10
lea r8d, [rdx - 0xe]
lea rcx, [rbp + 8]
call fcn.140202c68
nop
lea rcx, [rbp - 0x18]
call fcn.1401a0424
test al, al
je 0x1401a1b6f
mov eax, dword [rbp - 0x10]
mov ecx, dword [r14 + 0x54]
shl rax, cl
cmp qword [rbp - 0x18], rax
ja 0x1401a1b6f
cmp dword [rbp - 0x10], esi
je 0x1401a1b7e
mov qword [rbp - 0x58], rsi
mov qword [rbp - 0x50], rsi
mov r9, rdi
lea r8, [rbp - 0x58]
lea rdx, [rbp - 0x18]
mov rcx, r14
call fcn.1401a0670
mov edi, eax
test eax, eax
je 0x1401a1991
mov rcx, qword [rbp - 0x58]
call fcn.140202c34
cmp edi, 1
je 0x1401a1b6f
jmp 0x1401a206d
mov r15, qword [rbp - 0x58]
mov r8, qword [rbp - 0x50]
cmp r8, 0x78
jb 0x1401a1b67
mov edi, dword [r15 + 0x18]
bswap edi
movzx edx, byte [r15 + 0x20]
shl edx, 8
movzx eax, byte [r15 + 0x21]
or edx, eax
cmp edx, ebx
jmp 0x1401a19d5
cmp r12d, 0x10
je 0x1401a1b67
inc r12d
mov ecx, r12d
mov eax, 1
shl eax, cl
cmp eax, edx
mov dword [rsp + 0x50], r12d
jne 0x1401a19bc
mov eax, dword [r15 + 0x24]
bswap eax
mov r13d, eax
mov qword [rbp - 0x80], r13
mov ecx, r12d
shr r8, cl
cmp r8, r13
jb 0x1401a1b67
test edi, edi
jne 0x1401a1a09
mov rcx, r15
call fcn.140202c34
jmp 0x1401a1b74
mov rbx, rsi
mov qword [rsp + 0x68], rbx
test eax, eax
je 0x1401a1a25
mov rcx, r13
call fcn.140202da8
mov rbx, rax
mov qword [rsp + 0x68], rax
mov r8, r13
xor edx, edx
mov rcx, rbx
call fcn.140202180
cmp edi, r13d
jae 0x1401a1b5e
mov edi, edi
cmp byte [rdi + rbx], sil
jne 0x1401a1b5e
mov byte [rdi + rbx], 1
mov ecx, r12d
shl rdi, cl
mov qword [rsp + 0x70], rdi
lea rdx, [r15 + rdi]
mov r8d, r12d
lea rcx, [rsp + 0x40]
call fcn.1401a211c
test al, al
je 0x1401a1b5e
cmp byte [rsp + 0x44], 0xff
jne 0x1401a1b5e
mov r10d, esi
mov dword [rbp + 0x680], esi
mov edx, esi
mov dword [rsp + 0x60], edx
cmp dword [rsp + 0x48], esi
jbe 0x1401a1f60
mov ecx, r12d
mov r8d, 1
shl r8d, cl
mov qword [rsp + 0x78], r8
lea ecx, [rdx + rdx]
mov rdx, r8
sub rdx, rcx
add rdx, r15
add rdx, rdi
movzx r8d, byte [rdx - 2]
shl r8d, 8
movzx eax, byte [rdx - 1]
or r8d, eax
movzx ecx, byte [rdx - 4]
shl ecx, 8
movzx eax, byte [rdx - 3]
or ecx, eax
sub ecx, r8d
cmp ecx, 0x4c
jne 0x1401a1b5e
mov r12d, r8d
add r12, r15
add r12, rdi
movzx ecx, byte [r12]
shl cx, 8
movzx eax, byte [r12 + 1]
or cx, ax
cmp cx, 0xa
jne 0x1401a1b5e
cmp byte [r12 + 2], sil
jne 0x1401a1b0a
lea r13, [rbp + 8]
jmp 0x1401a1b1a
cmp byte [r12 + 2], 0xff
jne 0x1401a1f3e
lea r13, [rbp + 0x18]
mov r9d, dword [r12 + 4]
bswap r9d
mov dword [rsp + 0x30], r9d
mov edx, dword [r12 + 8]
bswap edx
mov dword [rsp + 0x38], edx
add r12, 0xc
mov r8d, dword [r13 + 8]
test r8d, r8d
je 0x1401a1e68
mov rax, qword [r13]
mov rcx, qword [rax + r8*8 - 8]
cmp dword [rcx], r9d
jne 0x1401a1e68
cmp r10d, edx
je 0x1401a1ec0
mov rcx, rbx
call fcn.140202c34
nop
mov rcx, r15
call fcn.140202c34
mov byte [r14 + 0x60], 1
mov r12d, 9
lea r13, [r14 + 0x30]
mov ebx, dword [r14 + 0x54]
mov r8d, 4
lea rdx, [rbp + 8]
lea rcx, [rbp - 0x38]
call fcn.1401a045c
test al, al
je 0x1401a2068
lea rcx, [rbp - 0x38]
call fcn.1401a0424
test al, al
je 0x1401a2068
mov eax, dword [rbp - 0x30]
mov ecx, ebx
shl rax, cl
cmp qword [rbp - 0x38], rax
ja 0x1401a2068
mov ebx, dword [r14 + 0x54]
mov r8d, 8
lea rdx, [rbp + 8]
lea rcx, [rbp - 0x78]
call fcn.1401a045c
test al, al
je 0x1401a20bc
lea rcx, [rbp - 0x78]
call fcn.1401a0424
test al, al
je 0x1401a20bc
mov eax, dword [rbp - 0x70]
mov ecx, ebx
shl rax, cl
cmp qword [rbp - 0x78], rax
ja 0x1401a20bc
cmp qword [rbp - 0x78], rsi
je 0x1401a20c1
cmp dword [rbp - 0x70], esi
je 0x1401a20c1
mov r9, qword [rbp + 0x688]
mov r8, r13
lea rdx, [rbp - 0x78]
mov rcx, r14
call fcn.1401a0670
mov edi, eax
test eax, eax
jne 0x1401a206d
mov r13, qword [r13]
mov qword [rsp + 0x68], r13
mov r8, qword [r14 + 0x38]
cmp r8, 0x78
jb 0x1401a2068
mov edi, dword [r13 + 0x18]
bswap edi
movzx edx, byte [r13 + 0x20]
shl edx, 8
movzx eax, byte [r13 + 0x21]
or edx, eax
cmp edx, 0x200
je 0x1401a1c8b
cmp r12d, 0x10
je 0x1401a2068
inc r12d
mov dword [rbp + 0x698], r12d
mov ecx, r12d
mov eax, 1
shl eax, cl
cmp eax, edx
jne 0x1401a1c69
mov eax, dword [r13 + 0x24]
bswap eax
mov r15d, eax
mov qword [rsp + 0x50], r15
mov ecx, r12d
shr r8, cl
cmp r8, r15
jb 0x1401a2068
test edi, edi
je 0x1401a20c1
mov rbx, rsi
mov qword [rbp - 0x80], rbx
test eax, eax
je 0x1401a1cca
mov ecx, r15d
call fcn.140202da8
mov rbx, rax
mov qword [rbp - 0x80], rax
mov r8, r15
xor edx, edx
mov rcx, rbx
call fcn.140202180
mov qword [rbp - 0x58], rsi
mov dword [rbp - 0x50], esi
mov qword [rbp - 0x48], rsi
mov qword [rbp - 0x40], rsi
cmp edi, r15d
jae 0x1401a2058
mov r15d, edi
cmp byte [rbx + r15], sil
jne 0x1401a2058
mov byte [rbx + r15], 1
mov ecx, r12d
shl r15, cl
lea rdx, [r15 + r13]
mov r8d, r12d
lea rcx, [rsp + 0x40]
call fcn.1401a211c
test al, al
je 0x1401a2058
cmp byte [rsp + 0x44], 0xff
jne 0x1401a2058
mov r12d, esi
mov dword [rbp + 0x680], esi
cmp dword [rsp + 0x48], esi
jbe 0x1401a203f
mov ecx, dword [rbp + 0x698]
mov r8d, 1
shl r8d, cl
mov qword [rsp + 0x58], r8
lea ecx, [r12 + r12]
mov rdx, r15
sub rdx, rcx
add rdx, r13
add rdx, r8
movzx ecx, byte [rdx - 2]
shl ecx, 8
movzx eax, byte [rdx - 1]
or ecx, eax
movzx r8d, byte [rdx - 4]
shl r8d, 8
movzx eax, byte [rdx - 3]
or r8d, eax
sub r8d, ecx
cmp r8d, 0xe
jb 0x1401a2058
mov eax, ecx
mov qword [rsp + 0x78], rax
lea rdx, [r15 + r13]
add rdx, rax
movzx r13d, byte [rdx]
shl r13d, 8
movzx eax, byte [rdx + 1]
or r13d, eax
mov eax, dword [rdx + 4]
bswap eax
mov dword [rsp + 0x38], eax
mov eax, dword [rdx + 8]
bswap eax
test eax, eax
jne 0x1401a201b
movzx r12d, byte [rdx + 0xc]
shl r12d, 8
movzx eax, byte [rdx + 0xd]
or r12d, eax
lea eax, [r13 + 2]
cmp eax, r8d
ja 0x1401a2058
lea eax, [r12*2 + 0xc]
cmp r13d, eax
jne 0x1401a2058
add rdx, 0xe
mov qword [rsp + 0x70], rdx
lea ecx, [r12 + r12]
mov eax, ecx
add rdx, rax
mov eax, 0xfffffff2
sub eax, ecx
add r8d, eax
cmp r8d, 4
jb 0x1401a2058
mov eax, dword [rdx]
bswap eax
cmp eax, 0x10
jne 0x1401a2014
cmp r8d, eax
jb 0x1401a2058
mov eax, dword [rdx + 0xc]
bswap eax
mov dword [rsp + 0x30], eax
add r8d, 0xfffffff0
cmp r8d, eax
jb 0x1401a2058
mov ecx, 0x20
call fcn.140202bf8
mov rdi, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1401a1f79
lea rcx, [rax + 0x10]
call fcn.1401777e8
jmp 0x1401a1f7c
mov ecx, 0x18
call fcn.140202bf8
mov rdi, rax
mov qword [rbp + 0x680], rax
test rax, rax
je 0x1401a1e8b
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rsi
jmp 0x1401a1e8e
mov rdi, rsi
mov rcx, r13
call fcn.1400f6ac0
mov ecx, dword [r13 + 8]
mov rax, qword [r13]
mov qword [rax + rcx*8], rdi
inc dword [r13 + 8]
mov eax, dword [rsp + 0x30]
mov dword [rdi], eax
mov eax, dword [rsp + 0x38]
mov dword [rdi + 4], eax
mov r10d, eax
mov dword [rbp + 0x680], eax
mov r8d, dword [r13 + 8]
mov ecx, r8d
mov rax, qword [r13]
mov r15, qword [rax + rcx*8 - 8]
mov ecx, 8
mov qword [rsp + 0x38], rcx
mov eax, dword [r12]
bswap eax
mov dword [rsp + 0x58], eax
mov r13d, dword [r12 + 4]
bswap r13d
mov dword [rsp + 0x5c], r13d
test r13d, r13d
je 0x1401a1f26
lea rcx, [r15 + 8]
call fcn.1400f6ac0
mov edx, dword [r15 + 0x10]
mov rcx, qword [r15 + 8]
mov rax, qword [rsp + 0x58]
mov qword [rcx + rdx*8], rax
inc dword [r15 + 0x10]
mov r10d, dword [rbp + 0x680]
add r10d, r13d
mov dword [rbp + 0x680], r10d
mov rcx, qword [rsp + 0x38]
add r12, 8
sub rcx, 1
mov qword [rsp + 0x38], rcx
jne 0x1401a1ed6
mov r15, qword [rbp - 0x58]
mov rdi, qword [rsp + 0x70]
mov edx, dword [rsp + 0x60]
inc edx
mov dword [rsp + 0x60], edx
cmp edx, dword [rsp + 0x48]
mov r8, qword [rsp + 0x78]
jb 0x1401a1aa4
mov r12d, dword [rsp + 0x50]
mov r13, qword [rbp - 0x80]
mov edi, dword [rsp + 0x40]
test edi, edi
jne 0x1401a1a32
mov rcx, rbx
call fcn.140202c34
jmp 0x1401a19fc
mov rdi, rsi
lea rcx, [r14 + 0x20]
call fcn.1400f6ac0
mov r8d, dword [r14 + 0x28]
mov rax, qword [r14 + 0x20]
mov qword [rax + r8*8], rdi
inc dword [r14 + 0x28]
mov eax, dword [rsp + 0x38]
mov dword [rdi], eax
mov eax, r13d
add rax, r15
mov rdx, qword [rsp + 0x78]
add rdx, 0x12
add rax, rdx
mov qword [rdi + 8], rax
mov eax, dword [rsp + 0x30]
mov dword [rdi + 4], eax
lea r8, [rdi + 0x10]
mov edx, r12d
mov rcx, qword [rsp + 0x70]
call fcn.1401a21c0
mov rcx, qword [rbp + 0x690]
mov r12d, dword [rbp + 0x680]
test rcx, rcx
je 0x1401a2020
test r12d, 0xfff
jne 0x1401a2020
mov qword [rbp + 0x680], rsi
mov rax, qword [rcx]
xor r8d, r8d
lea rdx, [rbp + 0x680]
call qword [rax + 0x20]
mov edi, eax
test eax, eax
je 0x1401a2020
xor ecx, ecx
call fcn.140202c34
nop
mov rcx, rbx
call fcn.140202c34
jmp 0x1401a206d
mov r12d, dword [rbp + 0x680]
mov byte [r14 + 0x60], 1
inc r12d
mov dword [rbp + 0x680], r12d
cmp r12d, dword [rsp + 0x48]
mov r13, qword [rsp + 0x68]
mov r8, qword [rsp + 0x58]
jb 0x1401a1d52
mov edi, dword [rsp + 0x40]
test edi, edi
je 0x1401a20aa
mov r15, qword [rsp + 0x50]
mov r12d, dword [rbp + 0x698]
jmp 0x1401a1ce6
xor ecx, ecx
call fcn.140202c34
nop
mov rcx, rbx
call fcn.140202c34
mov edi, 1
mov esi, edi
lea r9, [fcn.1400f7a9c]
mov edx, 0x10
lea r8d, [rdx - 0xe]
lea rcx, [rbp + 8]
call fcn.140202cd8
nop
mov rcx, qword [rbp - 0x68]
call fcn.140202c34
nop
mov rcx, qword [rbp - 0x28]
call fcn.140202c34
nop
mov rcx, qword [rbp - 8]
call fcn.140202c34
mov eax, esi
jmp 0x1401a2106
xor ecx, ecx
call fcn.140202c34
nop
mov rcx, rbx
call fcn.140202c34
jmp 0x1401a20c1
mov byte [r14 + 0x60], 1
mov rax, qword [rbp + 0x690]
mov qword [rsp + 0x20], rax
mov r9, qword [rbp + 0x688]
lea r8, [rbp + 8]
lea rdx, [rbp - 0x38]
mov rcx, r14
call fcn.1401a07b0
mov edi, eax
test eax, eax
jne 0x1401a206d
mov eax, dword [r14 + 0x58]
mov ecx, dword [r14 + 0x54]
shl rax, cl
mov qword [r14 + 0x80], rax
jmp 0x1401a206f
mov eax, 1
add rsp, 0x738
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret