Function at 0x14012cba0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3c0]
sub rsp, 0x4c0
mov rax, qword [0x1401f12d8]
xor rax, rsp
mov qword [rbp + 0x3b0], rax
mov byte [rsp + 0x3c], r8b
movsxd r9, edx
mov dword [rsp + 0x4c], r9d
mov rsi, rcx
mov qword [rsp + 0x40], rcx
xor r13d, r13d
mov dword [rsp + 0x38], r13d
mov r15, r9
mov qword [rsp + 0x60], r9
lea rcx, [r9 + r9*2]
mov rax, qword [rsi + 0x348]
mov r8, qword [rax + rcx*8 + 8]
sub r8, qword [rax + rcx*8]
movabs rax, 0x8888888888888889
imul r8
add rdx, r8
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [rsp + 0x70], r13
mov eax, dword [rsi + 0x98]
btr eax, 0xa
mov dword [rsi + 0x98], eax
xorps xmm0, xmm0
xor eax, eax
movsxd rdi, edx
mov qword [rsp + 0x50], rdi
movdqu xmmword [rbp + 0x280], xmm0
mov qword [rbp - 0x70], rax
mov qword [rbp + 0x290], rax
mov ecx, r13d
mov ebx, r13d
test edx, edx
je 0x14012cd09
movabs rax, 0x3fffffffffffffff
cmp rdi, rax
ja 0x14012e5b7
lea rdi, [rdi*4]
cmp rdi, 0x1000
jb 0x14012ccb7
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x14012e5bd
call fcn.140157760
test rax, rax
je 0x14012e5c3
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x14012ccc7
test rdi, rdi
je 0x14012ccc7
mov rcx, rdi
call fcn.140157760
mov rbx, rax
mov r14, rbx
mov qword [rsp + 0x68], rbx
mov qword [rbp + 0x280], rbx
lea r12, [rdi + rbx]
mov qword [rbp - 0x70], r12
mov qword [rbp + 0x290], r12
mov r8, rdi
xor edx, edx
mov rcx, rbx
call fcn.1401810c0
mov rdx, r12
mov qword [rbp + 0x288], rdx
mov rcx, r12
mov rdi, qword [rsp + 0x50]
mov r9d, r15d
jmp 0x14012cd1c
mov r14, qword [rbp + 0x280]
mov qword [rsp + 0x68], r14
mov rdx, qword [rbp + 0x288]
mov eax, r13d
sub rcx, rbx
sar rcx, 2
test ecx, ecx
jle 0x14012cd4f
mov rcx, rdx
sub rcx, r14
sar rcx, 2
xor r14d, r14d
nop word [rax + rax]
mov dword [rbx], r14d
inc eax
lea rbx, [rbx + 4]
cmp eax, ecx
jl 0x14012cd40
jmp 0x14012cd52
xor r14d, r14d
mov ebx, dword [rsp + 0x38]
mov dword [rsp + 0x34], ebx
nop word [rax + rax]
xor r8d, r8d
mov edx, r9d
mov rcx, rsi
call fcn.140130660
mov r13d, r14d
mov r12, r14
test rdi, rdi
jle 0x14012cf66
lea rax, [r15 + r15*2]
lea rcx, [rax*8]
mov qword [rsp + 0x78], rcx
mov r15, r14
mov rax, qword [rsi + 0x348]
mov rbx, qword [rcx + rax]
add rbx, r15
lea rdi, [rbx + 0xb0]
mov eax, dword [rbx + 0xc]
and eax, 0x17
cmp al, 5
jne 0x14012cf06
mov eax, 1
mov dword [rbx + 0xc], eax
nop dword [rax]
mov eax, dword [rbx + 0x20]
mov dword [rsp + 0x20], eax
mov r9d, dword [rbx + 0x1c]
mov r8, rdi
mov rdx, rbx
mov rcx, qword [rdi]
call fcn.14012f550
cmp dword [rdi + 8], 0
jne 0x14012ce07
cmp qword [rdi + 8], 0
jne 0x14012ce07
test eax, eax
je 0x14012ce07
mov dword [rbx + 0xd8], eax
xor sil, sil
test r14d, r14d
jne 0x14012ce50
mov dword [rbx + 0xc], 2
mov r14d, 1
jmp 0x14012cdc0
mov sil, 1
test r14d, r14d
je 0x14012ce50
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 4
je 0x14012ce50
mov eax, dword [rbx + 8]
and eax, 0xf00
cmp eax, 0x100
je 0x14012ce43
add eax, 0xfffffe00
test eax, 0xfffffdff
jne 0x14012ce4d
mov dword [rbx + 0xd8], 0xc8
jmp 0x14012ce4d
mov dword [rbx + 0xd8], 0x11
xor sil, sil
mov dword [rbx + 0xc], 5
xor r14d, r14d
test sil, sil
mov rsi, qword [rsp + 0x40]
je 0x14012cf42
mov rax, qword [rsi + 0x390]
mov rcx, qword [rsp + 0x60]
mov dword [rax + rcx*4], r13d
mov rax, qword [rsi]
mov qword [rsp + 0x20], r14
mov r9, rbx
mov r8d, 0x24
lea rdx, [rbp + 0x100]
mov rcx, rsi
call qword [rax + 0x10]
cmp dword [rax], 0
jne 0x14012e543
mov rax, qword [rsi]
lea r9, [rsi + 0x3b8]
mov qword [rsp + 0x20], r14
mov r8d, 6
lea rdx, [rbp + 0x108]
mov rcx, rsi
call qword [rax + 0x10]
mov rax, qword [rsi]
lea r9, [rsi + 0x3bc]
mov qword [rsp + 0x20], r14
mov r8d, 7
lea rdx, [rbp + 0x110]
mov rcx, rsi
call qword [rax + 0x10]
mov rax, qword [rsi]
mov qword [rsp + 0x20], r14
mov r9, rbx
mov r8d, 0x25
lea rdx, [rbp + 0x118]
mov rcx, rsi
call qword [rax + 0x10]
jmp 0x14012e543
mov eax, dword [rbx + 0x20]
mov dword [rsp + 0x20], eax
mov r9d, dword [rbx + 0x1c]
mov r8, rdi
mov rdx, rbx
mov rcx, qword [rdi]
call fcn.14012f550
cmp dword [rdi + 8], 0
jne 0x14012ce68
cmp qword [rdi + 8], 0
jne 0x14012ce68
test eax, eax
je 0x14012ce68
mov dword [rbx + 0xd8], eax
inc r13d
inc r12
add r15, 0xf0
mov rdi, qword [rsp + 0x50]
cmp r12, rdi
mov rcx, qword [rsp + 0x78]
jl 0x14012cd91
mov ebx, dword [rsp + 0x34]
xor r13b, r13b
mov dword [rsp + 0x58], r13d
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp + 0x180]
call fcn.1401810c0
lea rcx, [0x140070000]
lea rax, [rcx + 0x4450]
mov qword [rbp + 0x180], rax
lea rax, [rcx + 0x4458]
mov qword [rbp + 0x190], rax
mov qword [rbp + 0x220], r14
mov qword [rbp + 0x248], r14
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x250], xmm0
or ebx, 1
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x38], ebx
lea rax, [0x140074428]
mov qword [rbp + 0x218], rax
mov dword [rbp + 0x214], 0x80
mov qword [rbp + 0x188], r14
xor r8d, r8d
lea rdx, [rbp + 0x198]
lea rcx, [rbp + 0x218]
call fcn.1400a5d90
nop
mov rax, qword [rbp + 0x190]
movsxd rcx, dword [rax + 4]
lea rax, [0x1400741d0]
mov qword [rbp + rcx + 0x190], rax
mov rax, qword [rbp + 0x190]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx + 0x18c], edx
mov rax, qword [rbp + 0x180]
movsxd rcx, dword [rax + 4]
lea rax, [0x140074438]
mov qword [rbp + rcx + 0x180], rax
mov rax, qword [rbp + 0x180]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x20]
mov dword [rbp + rcx + 0x17c], edx
mov rax, qword [rbp + 0x180]
movsxd rcx, dword [rax + 4]
lea r12, [0x140074448]
mov qword [rbp + rcx + 0x180], r12
mov rax, qword [rbp + 0x180]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx + 0x17c], edx
lea rax, [0x1400741e0]
mov qword [rbp + 0x198], rax
mov ecx, 0x10
call fcn.140157760
mov rbx, rax
test rax, rax
je 0x14012d0c2
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov cl, 1
call fcn.1401593f0
mov qword [rbx + 8], rax
jmp 0x14012d0c5
mov rbx, r14
mov qword [rbp + 0x1f8], rbx
lea rax, [rbp + 0x1a0]
mov qword [rbp + 0x1b0], rax
lea rax, [rbp + 0x1a8]
mov qword [rbp + 0x1b8], rax
lea rax, [rbp + 0x1c0]
mov qword [rbp + 0x1d0], rax
lea rax, [rbp + 0x1c8]
mov qword [rbp + 0x1d8], rax
lea rax, [rbp + 0x1e0]
mov qword [rbp + 0x1e8], rax
lea rax, [rbp + 0x1e4]
mov qword [rbp + 0x1f0], rax
mov qword [rbp + 0x1a8], r14
mov qword [rbp + 0x1c8], r14
mov qword [rbp + 0x1e0], 0
mov qword [rbp + 0x1a0], r14
mov qword [rbp + 0x1c0], r14
lea rax, [0x140074260]
mov qword [rbp + 0x198], rax
mov qword [rbp + 0x200], r14
mov dword [rbp + 0x208], r14d
mov dword [rsp + 0x48], r14d
xorps xmm0, xmm0
movups xmmword [rbp + 0x2a0], xmm0
movups xmmword [rbp + 0x2b0], xmm0
movups xmmword [rbp + 0x2c0], xmm0
lea rax, [0x140082e48]
mov qword [rbp + 0x2a0], rax
mov qword [rbp + 0x2a8], r14
mov r11, r14
mov qword [rbp + 0x2b0], r14
mov qword [rbp + 0x2b8], r14
mov byte [rbp + 0x2c0], 1
mov dword [rbp + 0x2c4], r14d
mov qword [rbp + 0x2c8], r14
movdqa xmmword [rbp + 0x2d0], xmm0
test rdi, rdi
je 0x14012d1f9
mov eax, 0x28
mul rdi
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1401577b0
mov r15, rax
mov qword [rbp + 0x2b8], rdi
mov r11, rdi
mov qword [rbp + 0x2b0], rdi
jmp 0x14012d1fc
mov r15, r14
mov qword [rbp - 0x78], r15
mov qword [rbp + 0x2a8], r15
mov r9d, r14d
test rdi, rdi
jle 0x14012d281
mov rcx, qword [rsp + 0x60]
lea rax, [rcx + rcx*2]
lea rbx, [rax*8]
mov r8, r14
mov r10, rdi
nop word [rax + rax]
mov rax, qword [rsi + 0x348]
mov rdx, qword [rbx + rax]
movsxd rax, r9d
mov rcx, r14
cmp rax, r11
cmovb rcx, rax
lea rax, [rcx + rcx*4]
movups xmm0, xmmword [rdx + r8 + 8]
movups xmmword [r15 + rax*8], xmm0
movups xmm1, xmmword [rdx + r8 + 0x18]
movups xmmword [r15 + rax*8 + 0x10], xmm1
movsd xmm0, qword [rdx + r8 + 0x28]
movsd qword [r15 + rax*8 + 0x20], xmm0
inc r9d
lea r8, [r8 + 0xf0]
sub r10, 1
jne 0x14012d230
mov r9, r15
test r11, r11
cmove r9, r14
mov rax, qword [rsi]
mov qword [rsp + 0x20], rdi
mov r8d, 0x20
lea rdx, [rbp + 0x148]
mov rcx, rsi
call qword [rax + 0x10]
mov ecx, dword [rax]
cmp qword [rsp + 0x70], 0
seta r15b
mov byte [rsp + 0x30], r15b
cmp ecx, 4
je 0x14012e494
cmp ecx, 8
je 0x14012e4f1
mov rax, qword [rsi]
mov qword [rsp + 0x20], r14
xor r9d, r9d
lea r8d, [r9 + 9]
lea rdx, [rbp + 0x140]
mov rcx, rsi
call qword [rax + 0x10]
cmp dword [rax], 4
jne 0x14012d323
mov r15b, 1
mov byte [rsp + 0x30], r15b
mov rax, qword [rsi]
mov qword [rsp + 0x20], r14
xor r9d, r9d
lea r8d, [r9 + 8]
lea rdx, [rbp + 0x138]
mov rcx, rsi
call qword [rax + 0x10]
movzx r13d, r13b
cmp dword [rax], 4
mov eax, 1
cmove r13d, eax
mov dword [rsp + 0x58], r13d
mov rax, qword [rsi]
lea r9, [rsi + 0x3b8]
mov qword [rsp + 0x20], r14
mov r8d, 6
lea rdx, [rbp + 0x130]
mov rcx, rsi
call qword [rax + 0x10]
lea r12, [rsi + 0x3bc]
mov qword [rbp + 0x80], r12
mov rax, qword [rsi]
mov qword [rsp + 0x20], r14
mov r9, r12
mov r8d, 7
lea rdx, [rbp + 0x150]
mov rcx, rsi
call qword [rax + 0x10]
mov sil, 1
mov dword [rsp + 0x5c], esi
mov qword [rbp + 0x170], r14
lea rdx, [0x140082e50]
lea rcx, [rbp + 0x190]
call fcn.1400a68a0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rcx, qword [rcx + rax + 0x40]
mov rcx, qword [rcx + 8]
mov qword [rbp + 0x90], rcx
mov rdx, qword [rcx]
call qword [rdx + 8]
nop
lea rcx, [rbp + 0x88]
call fcn.14009b130
mov r8, qword [rax]
mov dl, 0xa
mov rcx, rax
call qword [r8 + 0x40]
movzx edi, al
mov rcx, qword [rbp + 0x90]
test rcx, rcx
je 0x14012d3f3
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test rax, rax
je 0x14012d3f3
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
movzx edx, dil
mov rcx, rbx
call fcn.1400fe080
mov rcx, rbx
call fcn.1400a5c70
mov qword [rsp + 0x78], r14
cmp qword [rsp + 0x50], 0
jle 0x14012dbe5
mov rax, qword [rsp + 0x60]
lea rax, [rax + rax*2]
lea rcx, [rax*8]
mov qword [rbp - 0x68], rcx
xor r8d, r8d
mov edi, r8d
mov qword [rbp - 0x80], r8
nop word [rax + rax]
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x348]
mov rbx, qword [rcx + rax]
add rbx, rdi
lea rdx, [0x140082e7c]
cmp dword [r12], 0x4e4
lea rax, [0x140082e80]
cmovne rdx, rax
lea rcx, [rbp + 0x190]
call fcn.1400a68a0
mov eax, dword [rsp + 0x48]
or eax, dword [rbx + 8]
mov dword [rsp + 0x48], eax
lea rdx, [rbp + 0xb8]
mov rcx, rbx
call fcn.1400e7960
nop
lea rdx, [rax + 8]
cmp qword [rax + 0x20], 0x10
jb 0x14012d4a3
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x18]
lea rcx, [rbp + 0x190]
call fcn.1400f94f0
nop
lea r8, [0x140073e28]
mov qword [rbp + 0xb8], r8
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x14012d50b
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012d4fe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e5c9
call fcn.1401577a0
nop
lea r8, [0x140073e28]
xor ecx, ecx
mov qword [rbp + 0xd0], rcx
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], cl
test r15b, r15b
je 0x14012db3a
mov edi, dword [rbx + 0xd8]
mov rax, qword [rsp + 0x68]
mov dword [rax + r14*4], edi
test edi, edi
jns 0x14012d55b
mov word [rbp + 0x174], cx
mov byte [rbp + 0x176], cl
mov byte [rbp + 0x177], sil
mov dword [rbp + 0x170], edi
test r13b, r13b
je 0x14012daf4
mov qword [rbp + 0x2f8], rcx
mov qword [rbp + 0x300], 0xf
mov byte [rbp + 0x2e8], cl
mov qword [rbp + 0x2e0], r8
test edi, edi
js 0x14012d5aa
lea rax, [rbp + 0x170]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x2e0]
mov r8d, edi
mov rdx, rbx
mov rcx, qword [rsp + 0x40]
call fcn.1401307b0
mov rax, qword [rbp + 0x190]
movsxd rcx, dword [rax + 4]
mov rax, qword [rbp + rcx + 0x1d0]
mov rcx, qword [rax + 8]
mov qword [rbp + 0xa0], rcx
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rbp + 0x98]
call fcn.14009b130
mov r8, qword [rax]
mov dl, 0xa
mov rcx, rax
call qword [r8 + 0x40]
movzx ebx, al
mov rcx, qword [rbp + 0xa0]
test rcx, rcx
je 0x14012d60f
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test rax, rax
je 0x14012d60f
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
movzx edx, bl
lea rcx, [rbp + 0x190]
call fcn.1400fe080
lea rcx, [rbp + 0x190]
call fcn.1400a5c70
lea rdx, [0x140082e88]
lea rcx, [rbp + 0x190]
call fcn.1400a68a0
xor ebx, ebx
mov qword [rbp + 0x158], rbx
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
lea rdx, [rbp + 0x158]
mov qword [rsp + 0x20], rdx
lea r9, [rbp + 0x170]
lea r8d, [rbx + 0xa]
lea rdx, [rbp + 0x120]
call qword [rax + 0x10]
cmp dword [rax], 4
jne 0x14012da4d
test edi, edi
js 0x14012da38
mov qword [rbp + 0x10], rbx
mov r12d, 0xf
mov qword [rbp + 0x18], r12
mov byte [rbp], bl
mov edi, dword [rsp + 0x34]
or edi, 0x20
mov dword [rsp + 0x38], edi
mov ecx, dword [rbp + 0x208]
test cl, 2
jne 0x14012d6d4
mov rax, qword [rbp + 0x1d8]
mov r8, qword [rax]
test r8, r8
je 0x14012d6d4
mov rax, qword [rbp + 0x1b8]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x200]
cmovb r8, qword [rbp + 0x200]
sub r8, rdx
jmp 0x14012d702
test cl, 4
jne 0x14012d719
mov rax, qword [rbp + 0x1d0]
mov r9, qword [rax]
test r9, r9
je 0x14012d719
mov rax, qword [rbp + 0x1b0]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x1e8]
movsxd r8, dword [rax]
sub r8, rdx
add r8, r9
lea rcx, [rbp]
call fcn.1400a44e0
mov rbx, qword [rbp + 0x10]
mov r12, qword [rbp + 0x18]
mov ecx, dword [rbp + 0x208]
and edi, 0xffffffdf
or edi, 0x10
xor esi, esi
mov edx, esi
mov qword [rbp - 0x50], rdx
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], dl
bts edi, 7
mov dword [rsp + 0x38], edi
test cl, 2
jne 0x14012d76c
mov rax, qword [rbp + 0x1d8]
mov r8, qword [rax]
test r8, r8
je 0x14012d76c
mov rax, qword [rbp + 0x1b8]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x200]
cmovb r8, qword [rbp + 0x200]
sub r8, rdx
jmp 0x14012d79a
test cl, 4
jne 0x14012d7a7
mov rax, qword [rbp + 0x1d0]
mov rcx, qword [rax]
test rcx, rcx
je 0x14012d7a7
mov rax, qword [rbp + 0x1b0]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x1e8]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
lea rcx, [rbp - 0x60]
call fcn.1400a44e0
mov rdx, qword [rbp - 0x50]
btr edi, 7
or edi, 0x40
mov qword [rbp + 0x70], rsi
mov qword [rbp + 0x78], 0xf
mov byte [rbp + 0x60], 0
cmp rdx, rbx
jb 0x14012e5f3
sub rdx, rbx
mov r8, 0xffffffffffffffff
cmp rdx, r8
cmovb r8, rdx
lea rdx, [rbp - 0x60]
cmp qword [rbp - 0x48], 0x10
cmovae rdx, qword [rbp - 0x60]
add rdx, rbx
lea rcx, [rbp + 0x60]
call fcn.1400a44e0
bts edi, 8
mov dword [rsp + 0x34], edi
lea rcx, [rbp + 0x198]
call fcn.1400a4050
lea r14, [rbp + 0x60]
mov r15, qword [rbp + 0x60]
mov r13, qword [rbp + 0x78]
cmp r13, 0x10
cmovae r14, r15
mov esi, dword [rbp + 0x208]
mov rdi, qword [rbp + 0x70]
cmp rdi, 0x7fffffff
ja 0x14012e5ed
test rdi, rdi
je 0x14012d930
mov eax, esi
and eax, 6
cmp al, 6
je 0x14012d930
cmp rdi, 0x1000
jb 0x14012d879
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x14012e5d5
call fcn.140157760
test rax, rax
je 0x14012e5cf
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x14012d884
mov rcx, rdi
call fcn.140157760
mov rbx, rax
mov r8, rdi
mov rdx, r14
mov rcx, rbx
call fcn.140180a10
lea rdx, [rdi + rbx]
mov qword [rbp + 0x200], rdx
mov r9d, esi
and r9d, 4
mov r8d, ebx
jne 0x14012d8cf
mov rax, qword [rbp + 0x1b0]
mov qword [rax], rbx
mov rax, qword [rbp + 0x1d0]
mov qword [rax], rbx
sub edx, ebx
mov rax, qword [rbp + 0x1e8]
mov dword [rax], edx
mov rdx, qword [rbp + 0x200]
test sil, 2
jne 0x14012d929
test sil, 0x18
mov rcx, rbx
cmovne rcx, rdx
mov rax, qword [rbp + 0x1b8]
mov qword [rax], rbx
mov rax, qword [rbp + 0x1d8]
mov qword [rax], rcx
sub edx, ecx
mov rax, qword [rbp + 0x1f0]
mov dword [rax], edx
test r9d, r9d
je 0x14012d929
mov rax, qword [rbp + 0x1b0]
mov qword [rax], rbx
mov rax, qword [rbp + 0x1d0]
xor ebx, ebx
mov qword [rax], rbx
mov rax, qword [rbp + 0x1e8]
mov dword [rax], r8d
or esi, 1
jmp 0x14012d939
xor ebx, ebx
or esi, 1
jmp 0x14012d939
xor ebx, ebx
mov qword [rbp + 0x200], rbx
mov dword [rbp + 0x208], esi
cmp r13, 0x10
jb 0x14012d977
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x14012d96e
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e5db
mov rcx, r15
call fcn.1401577a0
nop
mov qword [rbp + 0x70], rbx
mov qword [rbp + 0x78], 0xf
mov byte [rbp + 0x60], 0
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x14012d9c3
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012d9bd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e5e1
call fcn.1401577a0
nop
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], 0
cmp r12, 0x10
jb 0x14012da0d
lea rdx, [r12 + 1]
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012da07
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e5e7
call fcn.1401577a0
nop
mov qword [rbp + 0x10], rbx
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
mov esi, dword [rsp + 0x5c]
mov r14, qword [rsp + 0x78]
movzx r15d, byte [rsp + 0x30]
mov r12, qword [rbp + 0x80]
mov r13d, dword [rsp + 0x58]
mov rdx, qword [rbp + 0x158]
lea rcx, [rbp + 0x190]
call fcn.1400a68a0
jmp 0x14012da77
lea rdx, [rbp + 0x2e8]
cmp qword [rbp + 0x300], 0x10
cmovae rdx, qword [rbp + 0x2e8]
mov r8, qword [rbp + 0x2f8]
lea rcx, [rbp + 0x190]
call fcn.1400f94f0
movzx esi, sil
cmp byte [rbp + 0x177], 0
cmove esi, ebx
mov dword [rsp + 0x5c], esi
lea rax, [0x140073e28]
mov qword [rbp + 0x2e0], rax
mov rdx, qword [rbp + 0x300]
cmp rdx, 0x10
jb 0x14012dad9
inc rdx
mov rcx, qword [rbp + 0x2e8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012dad3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e5f9
call fcn.1401577a0
nop
mov qword [rbp + 0x2f8], rbx
mov qword [rbp + 0x300], 0xf
mov byte [rbp + 0x2e8], 0
jmp 0x14012db36
mov rcx, rbx
call fcn.1400e78c0
mov rbx, rax
lea rdx, [0x140082ea0]
lea rcx, [rbp + 0x190]
call fcn.1400a68a0
mov rcx, rax
mov rdx, rbx
call fcn.1400a68a0
mov rcx, rax
mov edx, edi
call fcn.14009edc0
mov rcx, rax
lea rdx, [0x1400760f0]
call fcn.1400a68a0
mov rdi, qword [rbp - 0x80]
mov rax, qword [rbp + 0x190]
movsxd rcx, dword [rax + 4]
mov rax, qword [rbp + rcx + 0x1d0]
mov rcx, qword [rax + 8]
mov qword [rbp + 0xb0], rcx
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rbp + 0xa8]
call fcn.14009b130
mov r8, qword [rax]
mov dl, 0xa
mov rcx, rax
call qword [r8 + 0x40]
movzx ebx, al
mov rcx, qword [rbp + 0xb0]
test rcx, rcx
je 0x14012db9f
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test rax, rax
je 0x14012db9f
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
movzx edx, bl
lea rcx, [rbp + 0x190]
call fcn.1400fe080
lea rcx, [rbp + 0x190]
call fcn.1400a5c70
inc r14
mov qword [rsp + 0x78], r14
add rdi, 0xf0
mov qword [rbp - 0x80], rdi
cmp r14, qword [rsp + 0x50]
mov rcx, qword [rbp - 0x68]
jl 0x14012d440
test sil, sil
je 0x14012dfda
xor r14d, r14d
mov qword [rbp + 0x168], r14
mov rsi, qword [rsp + 0x40]
mov rax, qword [rsi]
lea rcx, [rbp + 0x168]
mov qword [rsp + 0x20], rcx
lea r9, [rbp + 0x170]
lea r8d, [r14 + 0xb]
lea rdx, [rbp + 0x128]
mov rcx, rsi
call qword [rax + 0x10]
cmp dword [rax], 4
jne 0x14012dfe2
mov ebx, r14d
mov qword [rbp - 0x10], rbx
mov r12d, 0xf
mov qword [rbp - 8], r12
mov byte [rbp - 0x20], bl
mov edi, dword [rsp + 0x34]
bts edi, 0xa
mov dword [rsp + 0x38], edi
mov ecx, dword [rbp + 0x208]
test cl, 2
jne 0x14012dc7c
mov rax, qword [rbp + 0x1d8]
mov r8, qword [rax]
test r8, r8
je 0x14012dc7c
mov rax, qword [rbp + 0x1b8]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x200]
cmovb r8, qword [rbp + 0x200]
sub r8, rdx
jmp 0x14012dcaa
test cl, 4
jne 0x14012dcc1
mov rax, qword [rbp + 0x1d0]
mov r9, qword [rax]
test r9, r9
je 0x14012dcc1
mov rax, qword [rbp + 0x1b0]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x1e8]
movsxd r8, dword [rax]
sub r8, rdx
add r8, r9
lea rcx, [rbp - 0x20]
call fcn.1400a44e0
mov rbx, qword [rbp - 0x10]
mov r12, qword [rbp - 8]
mov ecx, dword [rbp + 0x208]
btr edi, 0xa
bts edi, 9
mov rdx, r14
mov qword [rbp - 0x30], rdx
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], dl
bts edi, 0xc
mov dword [rsp + 0x38], edi
test cl, 2
jne 0x14012dd15
mov rax, qword [rbp + 0x1d8]
mov r8, qword [rax]
test r8, r8
je 0x14012dd15
mov rax, qword [rbp + 0x1b8]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x200]
cmovb r8, qword [rbp + 0x200]
sub r8, rdx
jmp 0x14012dd43
test cl, 4
jne 0x14012dd50
mov rax, qword [rbp + 0x1d0]
mov rcx, qword [rax]
test rcx, rcx
je 0x14012dd50
mov rax, qword [rbp + 0x1b0]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x1e8]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
lea rcx, [rbp - 0x40]
call fcn.1400a44e0
mov rdx, qword [rbp - 0x30]
btr edi, 0xc
bts edi, 0xb
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], 0
cmp rdx, rbx
jb 0x14012e623
sub rdx, rbx
mov r8, 0xffffffffffffffff
cmp rdx, r8
cmovb r8, rdx
lea rdx, [rbp - 0x40]
cmp qword [rbp - 0x28], 0x10
cmovae rdx, qword [rbp - 0x40]
add rdx, rbx
lea rcx, [rbp + 0x20]
call fcn.1400a44e0
bts edi, 0xd
mov dword [rsp + 0x34], edi
lea rcx, [rbp + 0x198]
call fcn.1400a4050
lea r15, [rbp + 0x20]
mov r14, qword [rbp + 0x20]
mov r13, qword [rbp + 0x38]
cmp r13, 0x10
cmovae r15, r14
mov esi, dword [rbp + 0x208]
mov rdi, qword [rbp + 0x30]
cmp rdi, 0x7fffffff
ja 0x14012e61d
test rdi, rdi
je 0x14012ded4
mov eax, esi
and eax, 6
cmp al, 6
je 0x14012ded4
cmp rdi, 0x1000
jb 0x14012de23
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x14012e605
call fcn.140157760
test rax, rax
je 0x14012e5ff
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x14012de2e
mov rcx, rdi
call fcn.140157760
mov rbx, rax
mov r8, rdi
mov rdx, r15
mov rcx, rbx
call fcn.140180a10
lea rdx, [rbx + rdi]
mov qword [rbp + 0x200], rdx
mov r8d, esi
and r8d, 4
mov r9d, ebx
jne 0x14012de79
mov rax, qword [rbp + 0x1b0]
mov qword [rax], rbx
mov rax, qword [rbp + 0x1d0]
mov qword [rax], rbx
sub edx, ebx
mov rax, qword [rbp + 0x1e8]
mov dword [rax], edx
mov rdx, qword [rbp + 0x200]
test sil, 2
jne 0x14012decf
test sil, 0x18
mov rcx, rbx
cmovne rcx, rdx
mov rax, qword [rbp + 0x1b8]
mov qword [rax], rbx
mov rax, qword [rbp + 0x1d8]
mov qword [rax], rcx
sub edx, ecx
mov rax, qword [rbp + 0x1f0]
mov dword [rax], edx
test r8d, r8d
je 0x14012decf
mov rax, qword [rbp + 0x1b0]
mov qword [rax], rbx
mov rax, qword [rbp + 0x1d0]
xor r8d, r8d
mov qword [rax], r8
mov rax, qword [rbp + 0x1e8]
mov dword [rax], r9d
or esi, 1
jmp 0x14012dede
xor r8d, r8d
mov qword [rbp + 0x200], r8
mov dword [rbp + 0x208], esi
cmp r13, 0x10
jb 0x14012df1c
lea rdx, [r13 + 1]
mov rax, r14
cmp rdx, 0x1000
jb 0x14012df13
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e60b
mov rcx, r14
call fcn.1401577a0
nop
xor r14d, r14d
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], r14b
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x14012df6b
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012df65
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e611
call fcn.1401577a0
nop
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], 0
cmp r12, 0x10
jb 0x14012dfb5
lea rdx, [r12 + 1]
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012dfaf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e617
call fcn.1401577a0
nop
mov qword [rbp - 0x10], r14
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
mov rdx, qword [rbp + 0x168]
lea rcx, [rbp + 0x190]
call fcn.1400a68a0
jmp 0x14012dfdd
xor r14d, r14d
mov rsi, qword [rsp + 0x40]
mov qword [rbp + 0x50], r14
mov qword [rbp + 0x58], 0xf
mov byte [rbp + 0x40], 0
mov ebx, dword [rsp + 0x34]
bts ebx, 0xf
mov dword [rsp + 0x38], ebx
mov ecx, dword [rbp + 0x208]
test cl, 2
jne 0x14012e036
mov rax, qword [rbp + 0x1d8]
mov r8, qword [rax]
test r8, r8
je 0x14012e036
mov rax, qword [rbp + 0x1b8]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x200]
cmovb r8, qword [rbp + 0x200]
sub r8, rdx
jmp 0x14012e064
test cl, 4
jne 0x14012e06d
mov rax, qword [rbp + 0x1d0]
mov rcx, qword [rax]
test rcx, rcx
je 0x14012e06d
mov rax, qword [rbp + 0x1b0]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x1e8]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
lea rcx, [rbp + 0x40]
call fcn.1400a44e0
btr ebx, 0xf
bts ebx, 0xe
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x38], ebx
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x310]
call fcn.14009b630
lea r15, [0x140073e28]
mov qword [rbp + 0x308], r15
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x14012e0d7
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012e0d1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e629
call fcn.1401577a0
nop
mov qword [rbp + 0x50], r14
mov qword [rbp + 0x58], 0xf
mov byte [rbp + 0x40], 0
lea rdi, [rbp + 0x310]
cmp qword [rbp + 0x328], 0x10
cmovae rdi, qword [rbp + 0x310]
mov rax, qword [rsi]
mov qword [rsp + 0x20], r14
mov r9, rdi
mov r8d, 0x21
lea rdx, [rbp + 0xe0]
mov rcx, rsi
call qword [rax + 0x10]
mov ecx, dword [rax]
cmp ecx, 4
jne 0x14012e232
mov qword [rbp + 0x308], r15
mov rdx, qword [rbp + 0x328]
cmp rdx, 0x10
jb 0x14012e170
inc rdx
mov rcx, qword [rbp + 0x310]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012e16a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e62f
call fcn.1401577a0
nop
mov rdi, qword [rsp + 0x50]
lea r12, [0x140074448]
inc qword [rsp + 0x70]
lea rax, [0x140082e48]
mov qword [rbp + 0x2a0], rax
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x14012e19d
call fcn.1401577a0
mov qword [rbp + 0x2a8], r14
mov qword [rbp + 0x2b8], r14
mov qword [rbp + 0x2b0], r14
mov byte [rbp + 0x2c0], 1
lea rcx, [rbp + 0x2c8]
call fcn.14009d940
nop
mov rax, qword [rbp + 0x180]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x180], r12
mov rax, qword [rbp + 0x180]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx + 0x17c], edx
lea rcx, [rbp + 0x198]
call fcn.14009d600
lea rcx, [rbp + 0x1a0]
call fcn.1400a70d0
nop
lea rax, [0x140073db8]
mov qword [rbp + 0x218], rax
lea rcx, [rbp + 0x218]
call fcn.140159be0
nop
mov r15, qword [rsp + 0x60]
mov r9d, r15d
jmp 0x14012cd60
cmp ecx, 8
je 0x14012e4e4
lea rax, [0x140082eb0]
mov qword [rbp + 0x160], rax
mov rax, qword [rsi]
mov qword [rsp + 0x20], r14
lea r9, [rbp + 0x160]
mov r8d, 4
lea rdx, [rbp + 0xe8]
mov rcx, rsi
call qword [rax + 0x10]
mov rax, qword [rsi]
mov rbx, qword [rsp + 0x70]
mov qword [rsp + 0x20], rbx
lea r9, [rbp + 0x170]
mov r8d, 2
lea rdx, [rbp + 0xf0]
mov rcx, rsi
call qword [rax + 0x10]
mov ecx, dword [rax]
cmp rbx, qword [rsi + 0x3c0]
setb bl
cmp ecx, 4
je 0x14012e2ac
cmp ecx, 8
jne 0x14012e2ae
xor bl, bl
jmp 0x14012e2ae
mov bl, 1
xor cl, cl
cmp byte [rsp + 0x3c], cl
je 0x14012e2dc
test bl, bl
je 0x14012e2dc
mov rax, qword [rsi]
mov qword [rsp + 0x20], r14
xor r9d, r9d
lea r8d, [r9 + 3]
lea rdx, [rbp + 0xf8]
mov rcx, rsi
call qword [rax + 0x10]
cmp dword [rax], 4
sete cl
mov qword [rbp + 0x370], r14
mov qword [rbp + 0x378], 0xf
mov byte [rbp + 0x360], 0
mov qword [rbp + 0x358], r15
mov qword [rbp + 0x398], r14
mov qword [rbp + 0x3a0], 0xf
mov byte [rbp + 0x388], 0
mov qword [rbp + 0x380], r15
mov eax, dword [rsp + 0x4c]
mov dword [rbp + 0x340], eax
mov eax, 1
mov dword [rbp + 0x344], eax
mov dword [rbp + 0x348], 4
test bl, bl
je 0x14012e354
mov eax, 0x22
test cl, cl
mov ecx, 0xb0
cmovne eax, ecx
mov dword [rbp + 0x344], eax
mov edx, r14d
mov r10d, r14d
mov r9d, r14d
mov r11, qword [rbp + 0x288]
mov r14, qword [rsp + 0x68]
sub r11, r14
sar r11, 2
test r11d, r11d
jle 0x14012e3f1
mov rax, qword [rsp + 0x60]
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x348]
mov rbx, qword [rax + rcx*8]
xor r8d, r8d
mov rcx, r14
nop
mov eax, dword [rbx + r8 + 8]
cmp eax, 0x100
je 0x14012e3d6
add eax, 0xfffffe00
test eax, 0xfffffdff
jne 0x14012e3de
mov eax, dword [rcx]
test edx, edx
jne 0x14012e3b2
mov edx, eax
jmp 0x14012e3de
cmp eax, 0x65
je 0x14012e3de
cmp edx, 0x65
je 0x14012e3ae
cmp edx, 0xc8
je 0x14012e3ae
cmp eax, 0xc8
je 0x14012e3de
cmp eax, edx
je 0x14012e3de
mov edx, 0xe6
jmp 0x14012e3de
test r10d, r10d
jne 0x14012e3de
mov r10d, dword [rcx]
inc r9d
add r8, 0xf0
add rcx, 4
cmp r9d, r11d
jl 0x14012e390
test edx, edx
cmovne r10d, edx
mov dword [rbp + 0x34c], r10d
mov eax, dword [rsp + 0x48]
mov dword [rbp + 0x350], eax
mov rdx, qword [rbp + 0x160]
lea rcx, [rbp + 0x358]
call fcn.1400f63f0
mov rdx, rdi
lea rcx, [rbp + 0x380]
call fcn.1400f63f0
mov byte [rbp + 0x3a8], 1
mov rax, qword [rsi]
xor r14d, r14d
mov qword [rsp + 0x20], r14
lea r9, [rbp + 0x340]
xor r8d, r8d
lea rdx, [rbp + 0x330]
mov rcx, rsi
call qword [rax + 8]
mov rax, qword [rbp + 0x330]
cmp eax, 0x20
jne 0x14012e49d
lea rcx, [rbp + 0x380]
call fcn.14009d190
lea rcx, [rbp + 0x358]
call fcn.14009d190
nop
mov qword [rbp + 0x308], r15
lea rcx, [rbp + 0x310]
call fcn.14009d5a0
mov ebx, dword [rsp + 0x34]
jmp 0x14012e170
mov ebx, dword [rsp + 0x34]
jmp 0x14012e17c
cmp eax, 0x80
jne 0x14012e4cb
mov eax, dword [rsi + 0x98]
bts eax, 9
mov dword [rsi + 0x98], eax
mov rax, qword [rbp + 0x290]
mov qword [rbp - 0x70], rax
mov rax, qword [rbp + 0x280]
mov qword [rsp + 0x68], rax
lea rcx, [rbp + 0x380]
call fcn.14009d190
lea rcx, [rbp + 0x358]
call fcn.14009d190
nop
lea rcx, [rbp + 0x308]
call fcn.14009d190
nop
lea rax, [0x140082e48]
mov qword [rbp + 0x2a0], rax
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x14012e50d
call fcn.1401577a0
mov qword [rbp + 0x2a8], r14
mov qword [rbp + 0x2b8], r14
mov qword [rbp + 0x2b0], r14
mov byte [rbp + 0x2c0], 1
lea rcx, [rbp + 0x2c8]
call fcn.14009d940
nop
lea rcx, [rbp + 0x180]
call fcn.1400a75f0
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14012e587
mov rax, qword [rbp - 0x70]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012e581
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012e5b1
call fcn.1401577a0
nop
mov rcx, qword [rbp + 0x3b0]
xor rcx, rsp
call fcn.140157e90
mov rbx, qword [rsp + 0x510]
add rsp, 0x4c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14010cda0
nop
call fcn.1400a41a0
int3
call fcn.1400a3ff0
int3
call fcn.14010cda0
nop
call fcn.14010cda0
nop
call fcn.14010cda0
int3
call fcn.1400a3ff0
nop
call fcn.14010cda0
nop
call fcn.14010cda0
nop
call fcn.14010cda0
nop
call fcn.140158850
nop
call fcn.1400a41c0
nop
call fcn.14010cda0
nop
call fcn.14010cda0
int3
call fcn.1400a3ff0
nop
call fcn.14010cda0
nop
call fcn.14010cda0
nop
call fcn.14010cda0
nop
call fcn.140158850
nop
call fcn.1400a41c0
nop
call fcn.14010cda0
nop
call fcn.14010cda0
int3