Function at 0x140030990
Capabilities:
Check if file exists
Get storage device properties

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xda0]
sub rsp, 0xea0
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0xef8], rbx
mov rax, qword [0x14035c8c0]
xor rax, rsp
mov qword [rbp + 0xd98], rax
mov r12, r8
mov esi, edx
mov dword [rsp + 0x50], edx
mov rbx, rcx
xor r14d, r14d
mov dword [rsp + 0x40], r14d
lea rcx, [rbp + 0x7c8]
call fcn.140009e28
nop
mov byte [rbp + 0x7c0], r14b
lea r8d, [r14 + 0x15]
lea rdx, str.GetPhysicalDeviceInfo
lea rcx, [rbp + 0x7c8]
call fcn.140009a80
nop
call fcn.1400224d0
cmp dword [rax + 8], 4
jl 0x140030a2a
mov byte [rbp + 0x7c0], 1
lea rcx, [rbp + 0x7c0]
call fcn.140018570
lea rcx, [r12 + 8]
call fcn.1400028b4
mov rcx, r12
call fcn.1400028b4
mov word [r12 + 0x20], 0
mov byte [r12 + 0x22], 0
mov dword [r12 + 0x1c], esi
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 3]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
mov qword [rsp + 0x58], rax
cmp rax, 0xffffffffffffffff
jne 0x140030fb6
call fcn.1400224d0
cmp dword [rax + 8], 3
jl 0x140030fae
call fcn.1400224d0
mov r12, rax
lea rcx, [rbp + 0x230]
call fcn.14001b770
nop
lea rcx, [rbp + 0x620]
call fcn.140009e28
nop
lea r8d, [rdi + 6]
lea rdx, str.TRACE
lea rcx, [rbp + 0x620]
call fcn.140009a80
lea rcx, [rbp + 0x540]
call fcn.140009e28
nop
mov esi, r14d
lea r15d, [rdi + 3]
cmp dword [r12 + 0x10], r14d
jle 0x140030b65
cmp esi, 0xa
jge 0x140030b65
mov rcx, qword [rbp + 0x550]
mov rdx, qword [rbp + 0x558]
mov rax, rdx
sub rax, rcx
cmp rax, r15
jb 0x140030b41
lea rdi, [rcx + 2]
mov qword [rbp + 0x550], rdi
lea rbx, [rbp + 0x540]
cmp rdx, 8
cmovae rbx, qword [rbp + 0x540]
lea rcx, [rbx + rcx*2]
mov r8d, 4
lea rdx, [0x1402f1358]
call fcn.14022e750
mov word [rbx + rdi*2], r14w
jmp 0x140030b5c
mov qword [rsp + 0x20], r15
lea r9, [0x1402f1358]
mov rdx, r15
lea rcx, [rbp + 0x540]
call fcn.140023320
inc esi
cmp esi, dword [r12 + 0x10]
jl 0x140030ae8
lea rcx, [rbp + 0x780]
call fcn.140009e28
nop
lea rcx, [rbp + 0x760]
call fcn.140009e28
nop
lea r8, [rbp + 0x760]
lea rdx, [rbp + 0x780]
mov rcx, r12
call fcn.140022600
lea rsi, [rbp + 0x540]
cmp qword [rbp + 0x558], 8
cmovae rsi, qword [rbp + 0x540]
mov edx, 0x2040
lea rcx, [rbp - 0x38]
call fcn.14022c844
mov rcx, qword [rbp + 0x240]
movsxd rdx, dword [rcx + 4]
lea rcx, [rbp + 0x240]
add rcx, rdx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x780]
cmp qword [rbp + 0x798], 8
cmovae rdx, qword [rbp + 0x780]
mov r8, qword [rbp + 0x790]
lea rcx, [rbp + 0x240]
call fcn.140018ee0
mov rbx, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp - 0x28]
call fcn.14022c844
mov rdi, rax
lea rdx, [0x1402f0eb0]
mov rcx, rbx
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov edx, dword [rdi + 8]
call qword [rdi]
mov edx, 6
lea rcx, [rbp - 0x18]
call fcn.14022c86c
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov eax, 0x30
mov word [rcx + rbx + 0x58], ax
lea edx, [rax - 0x2d]
lea rcx, [rbp - 8]
call fcn.14022c858
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x760]
cmp qword [rbp + 0x778], 8
cmovae rdx, qword [rbp + 0x760]
mov r8, qword [rbp + 0x770]
mov rcx, rbx
call fcn.140018ee0
mov rbx, rax
mov edx, 5
lea rcx, [rbp + 8]
call fcn.14022c86c
mov rdi, rax
lea rdx, [0x1402f0eb0]
mov rcx, rbx
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov rdx, qword [rdi + 8]
call qword [rdi]
mov rcx, qword [rbx]
movsxd rdx, dword [rcx + 4]
mov eax, 0x20
mov word [rdx + rbx + 0x58], ax
lea edx, [rax + 0x20]
lea rcx, [rbp + 0x18]
call fcn.14022c844
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x620]
cmp qword [rbp + 0x638], 8
cmovae rdx, qword [rbp + 0x620]
mov r8, qword [rbp + 0x630]
mov rcx, rbx
call fcn.140018ee0
lea rdx, [0x1402f13a8]
mov rcx, rax
call fcn.140018b00
mov rcx, rax
mov rdx, rsi
call fcn.140018b00
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
lea rdi, [0x14036bfc8]
mov eax, dword [rdx + rcx]
cmp dword [0x14036bfc0], eax
jle 0x140030d9f
lea rcx, [0x14036bfc0]
call fcn.14022a558
cmp dword [0x14036bfc0], 0xffffffff
jne 0x140030d9f
mov rcx, rdi
call fcn.140009e28
lea rcx, [0x14027d390]
call fcn.14022a060
lea rcx, [0x14036bfc0]
call fcn.14022a4f8
nop
lea rcx, [rbp + 0x5c0]
call fcn.140009a0c
movdqa xmm0, xmmword [0x1402f81e0]
movdqu xmmword [rbp + 0x5d0], xmm0
mov word [rbp + 0x5c0], r14w
mov dword [rsp + 0x40], r15d
mov rcx, qword [rbp + 0x2b8]
test cl, 2
jne 0x140030e01
mov rax, qword [rbp + 0x288]
mov r8, qword [rax]
test r8, r8
je 0x140030e01
mov rax, qword [rbp + 0x268]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x2b0]
cmovb r8, qword [rbp + 0x2b0]
sub r8, rdx
jmp 0x140030e32
test cl, 4
jne 0x140030e41
mov rax, qword [rbp + 0x280]
mov rcx, qword [rax]
test rcx, rcx
je 0x140030e41
mov rax, qword [rbp + 0x260]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x298]
movsxd r8, dword [rax]
add r8, r8
sub r8, rdx
add r8, rcx
sar r8, 1
lea rcx, [rbp + 0x5c0]
call fcn.140009a80
and r15d, 0xfffffffd
mov dword [rsp + 0x40], r15d
mov ebx, 1
mov dword [rsp + 0x40], ebx
mov rdx, qword [0x14036bfe0]
cmp rdx, 8
jb 0x140030e99
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14036bfc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140030e94
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003333c
call fcn.140004518
movups xmm0, xmmword [rbp + 0x5c0]
movups xmmword [0x14036bfc8], xmm0
movups xmm1, xmmword [rbp + 0x5d0]
movups xmmword [0x14036bfd8], xmm1
movdqa xmm0, xmmword [0x1402f81e0]
movdqu xmmword [rbp + 0x5d0], xmm0
mov word [rbp + 0x5c0], r14w
and ebx, 0xfffffffe
mov dword [rsp + 0x40], ebx
lea rcx, [rbp + 0x5c0]
call fcn.140009824
nop
lea rcx, [rbp + 0x760]
call fcn.140009824
nop
lea rcx, [rbp + 0x780]
call fcn.140009824
nop
lea rcx, [rbp + 0x540]
call fcn.140009824
nop
lea rcx, [rbp + 0x620]
call fcn.140009824
nop
lea rcx, [rbp + 0x230]
call fcn.14001b430
call fcn.1400224d0
cmp qword [0x14036bfe0], 8
cmovae rdi, qword [0x14036bfc8]
mov r8, qword [0x14036bfd8]
mov rdx, rdi
mov rcx, rax
call fcn.140018ee0
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
lea rdx, str.Failed_to_open_drive:
mov rcx, rbx
call fcn.140018b00
mov rcx, rax
mov edx, dword [rsp + 0x50]
call fcn.14001b900
mov rcx, rax
lea rdx, str._with_error:
call fcn.140018b00
mov rcx, rax
mov edx, edi
call fcn.14001b900
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400193d0
movzx edx, ax
mov rcx, rbx
call fcn.140019210
mov rcx, rbx
call fcn.140019e90
xor r14b, r14b
jmp 0x1400332fc
mov edx, 0x21
xor ecx, ecx
lea r9d, [rdx - 0x1d]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rsp + 0x70], rax
mov edx, 0x211
xor ecx, ecx
lea r9d, [rcx + 4]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x1400332dc
test rax, rax
je 0x1400332c9
xor eax, eax
mov qword [rdx], rax
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], rax
mov byte [rdx + 0x20], al
mov dword [rdx], 0x200
mov byte [rdx + 0xc], sil
mov word [rdx + 5], 0x101
movzx eax, sil
and al, 1
or al, 0xfa
shl al, 4
mov byte [rdx + 9], al
mov byte [rdx + 0xa], 0xec
lea rcx, [rbx + 4]
xor edx, edx
mov r8d, 0x20d
call fcn.14022ebc0
mov dword [rbx], 0x211
call fcn.1400224d0
mov r15d, 2
cmp dword [rax + 8], 3
jl 0x14003157f
call fcn.1400224d0
mov r13, rax
lea rcx, [rbp + 0x130]
call fcn.14001b770
nop
lea rcx, [rbp + 0x680]
call fcn.140009e28
nop
lea r8d, [r15 + 3]
lea rdx, str.TRACE
lea rcx, [rbp + 0x680]
call fcn.140009a80
lea rcx, [rbp + 0x560]
call fcn.140009e28
nop
mov esi, r14d
cmp dword [r13 + 0x10], r14d
jle 0x14003113d
nop dword [rax]
cmp esi, 0xa
jge 0x14003113d
mov rcx, qword [rbp + 0x570]
mov rdx, qword [rbp + 0x578]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x14003111a
lea rdi, [rcx + 2]
mov qword [rbp + 0x570], rdi
lea rbx, [rbp + 0x560]
cmp rdx, 8
cmovae rbx, qword [rbp + 0x560]
lea rcx, [rbx + rcx*2]
mov r8d, 4
lea rdx, [0x1402f1358]
call fcn.14022e750
mov word [rbx + rdi*2], r14w
jmp 0x140031135
mov qword [rsp + 0x20], r15
lea r9, [0x1402f1358]
mov rdx, r15
lea rcx, [rbp + 0x560]
call fcn.140023320
inc esi
cmp esi, dword [r13 + 0x10]
jl 0x1400310c0
lea rcx, [rbp + 0x660]
call fcn.140009e28
nop
lea rcx, [rbp + 0x640]
call fcn.140009e28
nop
lea r8, [rbp + 0x640]
lea rdx, [rbp + 0x660]
mov rcx, r13
call fcn.140022600
lea rsi, [rbp + 0x560]
cmp qword [rbp + 0x578], 8
cmovae rsi, qword [rbp + 0x560]
mov edx, 0x2040
lea rcx, [rbp + 0x28]
call fcn.14022c844
mov rcx, qword [rbp + 0x140]
movsxd rdx, dword [rcx + 4]
lea rcx, [rbp + 0x140]
add rcx, rdx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x660]
cmp qword [rbp + 0x678], 8
cmovae rdx, qword [rbp + 0x660]
mov r8, qword [rbp + 0x670]
lea rcx, [rbp + 0x140]
call fcn.140018ee0
mov rbx, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp + 0x38]
call fcn.14022c844
mov rdi, rax
lea rdx, [0x1402f0eb0]
mov rcx, rbx
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov edx, dword [rdi + 8]
call qword [rdi]
mov edx, 6
lea rcx, [rbp + 0x48]
call fcn.14022c86c
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov eax, 0x30
mov word [rcx + rbx + 0x58], ax
lea edx, [rax - 0x2d]
lea rcx, [rbp + 0x58]
call fcn.14022c858
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x640]
cmp qword [rbp + 0x658], 8
cmovae rdx, qword [rbp + 0x640]
mov r8, qword [rbp + 0x650]
mov rcx, rbx
call fcn.140018ee0
mov rbx, rax
mov edx, 5
lea rcx, [rbp + 0x68]
call fcn.14022c86c
mov rdi, rax
lea rdx, [0x1402f0eb0]
mov rcx, rbx
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov rdx, qword [rdi + 8]
call qword [rdi]
mov rcx, qword [rbx]
movsxd rdx, dword [rcx + 4]
mov edi, 0x20
mov word [rdx + rbx + 0x58], di
lea edx, [rdi + 0x20]
lea rcx, [rbp + 0x78]
call fcn.14022c844
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x680]
cmp qword [rbp + 0x698], 8
cmovae rdx, qword [rbp + 0x680]
mov r8, qword [rbp + 0x690]
mov rcx, rbx
call fcn.140018ee0
lea rdx, [0x1402f13a8]
mov rcx, rax
call fcn.140018b00
mov rcx, rax
mov rdx, rsi
call fcn.140018b00
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14036bfc0], eax
jle 0x140031378
lea rcx, [0x14036bfc0]
call fcn.14022a558
lea rdi, [0x14036bfc8]
cmp dword [0x14036bfc0], 0xffffffff
jne 0x14003137f
mov rcx, rdi
call fcn.140009e28
lea rcx, [0x14027d390]
call fcn.14022a060
lea rcx, [0x14036bfc0]
call fcn.14022a4f8
jmp 0x14003137f
lea rdi, [0x14036bfc8]
lea rcx, [rbp + 0x5e0]
call fcn.140009a0c
movdqa xmm0, xmmword [0x1402f81e0]
movdqu xmmword [rbp + 0x5f0], xmm0
mov word [rbp + 0x5e0], r14w
mov dword [rsp + 0x40], 8
mov rcx, qword [rbp + 0x1b8]
test cl, 2
jne 0x1400313e8
mov rax, qword [rbp + 0x188]
mov r8, qword [rax]
test r8, r8
je 0x1400313e8
mov rax, qword [rbp + 0x168]
mov rdx, qword [rax]
mov qword [rbp - 0x70], r8
cmp r8, qword [rbp + 0x1b0]
cmovb r8, qword [rbp + 0x1b0]
sub r8, rdx
jmp 0x140031419
test cl, 4
jne 0x140031428
mov rax, qword [rbp + 0x180]
mov rcx, qword [rax]
test rcx, rcx
je 0x140031428
mov rax, qword [rbp + 0x160]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x198]
movsxd r8, dword [rax]
add r8, r8
sub r8, rdx
add r8, rcx
sar r8, 1
lea rcx, [rbp + 0x5e0]
call fcn.140009a80
mov eax, 8
and eax, 0xfffffff7
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x40], 4
mov rdx, qword [0x14036bfe0]
cmp rdx, 8
jb 0x140031482
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14036bfc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003147d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140033342
call fcn.140004518
movups xmm0, xmmword [rbp + 0x5e0]
movups xmmword [0x14036bfc8], xmm0
movups xmm1, xmmword [rbp + 0x5f0]
movups xmmword [0x14036bfd8], xmm1
movdqa xmm0, xmmword [0x1402f81e0]
movdqu xmmword [rbp + 0x5f0], xmm0
mov word [rbp + 0x5e0], r14w
mov eax, 4
and eax, 0xfffffffb
mov dword [rsp + 0x40], eax
lea rcx, [rbp + 0x5e0]
call fcn.140009824
nop
lea rcx, [rbp + 0x640]
call fcn.140009824
nop
lea rcx, [rbp + 0x660]
call fcn.140009824
nop
lea rcx, [rbp + 0x560]
call fcn.140009824
nop
lea rcx, [rbp + 0x680]
call fcn.140009824
nop
lea rcx, [rbp + 0x130]
call fcn.14001b430
call fcn.1400224d0
mov rdx, rdi
cmp qword [0x14036bfe0], 8
cmovae rdx, qword [0x14036bfc8]
mov r8, qword [0x14036bfd8]
mov rcx, rax
call fcn.140018ee0
lea rdx, str.Looking_for_Drive:
mov rcx, rax
call fcn.140018b00
mov rcx, rax
mov esi, dword [rsp + 0x50]
mov edx, esi
call fcn.14001b900
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400193d0
movzx edx, ax
mov rcx, rbx
call fcn.140019210
mov rcx, rbx
call fcn.140019e90
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x210
mov qword [rsp + 0x20], rbx
mov r9d, 0x20
mov r8, qword [rsp + 0x70]
mov edx, 0x7c088
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov r13, 0xffffffffffffffff
test eax, eax
je 0x140032706
call fcn.1400224d0
cmp dword [rax + 8], 3
jl 0x140031aff
call fcn.1400224d0
mov rbx, rax
mov qword [rsp + 0x48], rax
lea rcx, [rbp + 0x330]
call fcn.14001b770
nop
lea rcx, [rbp + 0x6e0]
call fcn.140009e28
nop
lea r8d, [r13 + 6]
lea rdx, str.TRACE
lea rcx, [rbp + 0x6e0]
call fcn.140009a80
lea rcx, [rbp + 0x580]
call fcn.140009e28
nop
mov esi, r14d
cmp dword [rbx + 0x10], r14d
jle 0x1400316b9
nop dword [rax]
cmp esi, 0xa
jge 0x1400316b9
mov rcx, qword [rbp + 0x590]
mov rdx, qword [rbp + 0x598]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x140031693
lea rdi, [rcx + 2]
mov qword [rbp + 0x590], rdi
lea rbx, [rbp + 0x580]
cmp rdx, 8
cmovae rbx, qword [rbp + 0x580]
lea rcx, [rbx + rcx*2]
mov r8d, 4
lea rdx, [0x1402f1358]
call fcn.14022e750
mov word [rbx + rdi*2], r14w
mov rbx, qword [rsp + 0x48]
jmp 0x1400316ae
mov qword [rsp + 0x20], r15
lea r9, [0x1402f1358]
mov rdx, r15
lea rcx, [rbp + 0x580]
call fcn.140023320
inc esi
cmp esi, dword [rbx + 0x10]
jl 0x140031630
lea rcx, [rbp + 0x6c0]
call fcn.140009e28
nop
lea rcx, [rbp + 0x6a0]
call fcn.140009e28
nop
lea r8, [rbp + 0x6a0]
lea rdx, [rbp + 0x6c0]
mov rcx, rbx
call fcn.140022600
lea rsi, [rbp + 0x580]
cmp qword [rbp + 0x598], 8
cmovae rsi, qword [rbp + 0x580]
mov edx, 0x2040
lea rcx, [rbp + 0x88]
call fcn.14022c844
mov rcx, qword [rbp + 0x340]
movsxd rdx, dword [rcx + 4]
lea rcx, [rbp + 0x340]
add rcx, rdx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x6c0]
cmp qword [rbp + 0x6d8], 8
cmovae rdx, qword [rbp + 0x6c0]
mov r8, qword [rbp + 0x6d0]
lea rcx, [rbp + 0x340]
call fcn.140018ee0
mov rbx, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp + 0x98]
call fcn.14022c844
mov rdi, rax
lea rdx, [0x1402f0eb0]
mov rcx, rbx
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov edx, dword [rdi + 8]
call qword [rdi]
mov edx, 6
lea rcx, [rbp + 0xa8]
call fcn.14022c86c
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov eax, 0x30
mov word [rcx + rbx + 0x58], ax
lea edx, [rax - 0x2d]
lea rcx, [rbp + 0xb8]
call fcn.14022c858
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x6a0]
cmp qword [rbp + 0x6b8], 8
cmovae rdx, qword [rbp + 0x6a0]
mov r8, qword [rbp + 0x6b0]
mov rcx, rbx
call fcn.140018ee0
mov rbx, rax
mov edx, 5
lea rcx, [rbp + 0xc8]
call fcn.14022c86c
mov rdi, rax
lea rdx, [0x1402f0eb0]
mov rcx, rbx
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov rdx, qword [rdi + 8]
call qword [rdi]
mov rcx, qword [rbx]
movsxd rdx, dword [rcx + 4]
mov edi, 0x20
mov word [rdx + rbx + 0x58], di
lea edx, [rdi + 0x20]
lea rcx, [rbp + 0xd8]
call fcn.14022c844
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x6e0]
cmp qword [rbp + 0x6f8], 8
cmovae rdx, qword [rbp + 0x6e0]
mov r8, qword [rbp + 0x6f0]
mov rcx, rbx
call fcn.140018ee0
lea rdx, [0x1402f13a8]
mov rcx, rax
call fcn.140018b00
mov rcx, rax
mov rdx, rsi
call fcn.140018b00
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14036bfc0], eax
jle 0x140031902
lea rcx, [0x14036bfc0]
call fcn.14022a558
cmp dword [0x14036bfc0], 0xffffffff
jne 0x140031902
lea rcx, [0x14036bfc8]
call fcn.140009e28
lea rcx, [0x14027d390]
call fcn.14022a060
lea rcx, [0x14036bfc0]
call fcn.14022a4f8
nop
lea rcx, [rbp + 0x600]
call fcn.140009a0c
movdqa xmm0, xmmword [0x1402f81e0]
movdqu xmmword [rbp + 0x610], xmm0
mov word [rbp + 0x600], r14w
mov dword [rsp + 0x40], edi
mov rcx, qword [rbp + 0x3b8]
test cl, 2
jne 0x140031967
mov rax, qword [rbp + 0x388]
mov r8, qword [rax]
test r8, r8
je 0x140031967
mov rax, qword [rbp + 0x368]
mov rdx, qword [rax]
mov qword [rbp - 0x68], r8
cmp r8, qword [rbp + 0x3b0]
cmovb r8, qword [rbp + 0x3b0]
sub r8, rdx
jmp 0x140031998
test cl, 4
jne 0x1400319a7
mov rax, qword [rbp + 0x380]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400319a7
mov rax, qword [rbp + 0x360]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x398]
movsxd r8, dword [rax]
add r8, r8
sub r8, rdx
add r8, rcx
sar r8, 1
lea rcx, [rbp + 0x600]
call fcn.140009a80
mov eax, edi
and eax, 0xffffffdf
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x40], reloc.OLEAUT32.dll_SafeArrayGetDim
mov rdx, qword [0x14036bfe0]
cmp rdx, 8
jb 0x1400319fe
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14036bfc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400319f9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140033348
call fcn.140004518
movups xmm0, xmmword [rbp + 0x600]
movups xmmword [0x14036bfc8], xmm0
movups xmm1, xmmword [rbp + 0x610]
movups xmmword [0x14036bfd8], xmm1
movdqa xmm0, xmmword [0x1402f81e0]
movdqu xmmword [rbp + 0x610], xmm0
mov word [rbp + 0x600], r14w
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
and eax, 0xffffffef
mov dword [rsp + 0x40], eax
lea rcx, [rbp + 0x600]
call fcn.140009824
nop
lea rcx, [rbp + 0x6a0]
call fcn.140009824
nop
lea rcx, [rbp + 0x6c0]
call fcn.140009824
nop
lea rcx, [rbp + 0x580]
call fcn.140009824
nop
lea rcx, [rbp + 0x6e0]
call fcn.140009824
nop
lea rcx, [rbp + 0x330]
call fcn.14001b430
call fcn.1400224d0
lea rdx, [0x14036bfc8]
cmp qword [0x14036bfe0], 8
cmovae rdx, qword [0x14036bfc8]
mov r8, qword [0x14036bfd8]
mov rcx, rax
call fcn.140018ee0
lea rdx, str.Got_Drive:
mov rcx, rax
call fcn.140018b00
mov rcx, rax
mov esi, dword [rsp + 0x50]
mov edx, esi
call fcn.14001b900
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400193d0
movzx edx, ax
mov rcx, rbx
call fcn.140019210
mov rcx, rbx
call fcn.140019e90
mov rbx, qword [rsp + 0x60]
movzx eax, word [rbx + 0x46]
movzx edx, ax
shr dx, 8
mov byte [rbp + 0xd68], dl
mov byte [rbp + 0xd69], al
movzx ecx, word [rbx + 0x48]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd6a], al
mov byte [rbp + 0xd6b], cl
movzx ecx, word [rbx + 0x4a]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd6c], al
mov byte [rbp + 0xd6d], cl
movzx ecx, word [rbx + 0x4c]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd6e], al
mov byte [rbp + 0xd6f], cl
movzx ecx, word [rbx + 0x4e]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd70], al
mov byte [rbp + 0xd71], cl
movzx ecx, word [rbx + 0x50]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd72], al
mov byte [rbp + 0xd73], cl
movzx ecx, word [rbx + 0x52]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd74], al
mov byte [rbp + 0xd75], cl
movzx ecx, word [rbx + 0x54]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd76], al
mov byte [rbp + 0xd77], cl
movzx ecx, word [rbx + 0x56]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd78], al
mov byte [rbp + 0xd79], cl
movzx ecx, word [rbx + 0x58]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd7a], al
mov byte [rbp + 0xd7b], cl
movzx ecx, word [rbx + 0x5a]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd7c], al
mov byte [rbp + 0xd7d], cl
movzx ecx, word [rbx + 0x5c]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd7e], al
mov byte [rbp + 0xd7f], cl
movzx ecx, word [rbx + 0x5e]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd80], al
mov byte [rbp + 0xd81], cl
movzx ecx, word [rbx + 0x60]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd82], al
mov byte [rbp + 0xd83], cl
movzx ecx, word [rbx + 0x62]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd84], al
mov byte [rbp + 0xd85], cl
movzx ecx, word [rbx + 0x64]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd86], al
mov byte [rbp + 0xd87], cl
movzx ecx, word [rbx + 0x66]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd88], al
mov byte [rbp + 0xd89], cl
movzx ecx, word [rbx + 0x68]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd8a], al
mov byte [rbp + 0xd8b], cl
movzx ecx, word [rbx + 0x6a]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd8c], al
mov byte [rbp + 0xd8d], cl
movzx ecx, word [rbx + 0x6c]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd8e], al
mov byte [rbp + 0xd8f], cl
mov byte [rbp + 0xd90], 0
cmp dl, 0x20
jne 0x140031d16
nop word [rax + rax]
lea rax, [rbp + 0xd68]
mov r8, r13
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140031cf0
lea rdx, [rbp + 0xd69]
lea rcx, [rbp + 0xd68]
call fcn.14022e750
cmp byte [rbp + 0xd68], 0x20
je 0x140031ce0
lea rcx, [rbp + 0xd68]
mov rax, r13
inc rax
cmp byte [rcx + rax], 0
jne 0x140031d20
test eax, eax
je 0x140031d4d
nop dword [rax]
lea ecx, [rax - 1]
mov eax, ecx
lea rdx, [rbp + 0xd68]
add rdx, rax
cmp byte [rdx], 0x20
jne 0x140031d4d
mov eax, ecx
mov byte [rdx], 0
test ecx, ecx
jne 0x140031d30
movzx eax, word [rbx + 0x3e]
movzx edx, ax
shr dx, 8
mov byte [rbp + 0xd40], dl
mov byte [rbp + 0xd41], al
movzx ecx, word [rbx + 0x40]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd42], al
mov byte [rbp + 0xd43], cl
movzx ecx, word [rbx + 0x42]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd44], al
mov byte [rbp + 0xd45], cl
movzx ecx, word [rbx + 0x44]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd46], al
mov byte [rbp + 0xd47], cl
movzx eax, word [rbx + 0x46]
shr ax, 8
mov byte [rbp + 0xd48], al
cmp dl, 0x20
jne 0x140031df6
nop dword [rax]
lea rax, [rbp + 0xd40]
mov r8, r13
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140031dd0
lea rdx, [rbp + 0xd41]
lea rcx, [rbp + 0xd40]
call fcn.14022e750
cmp byte [rbp + 0xd40], 0x20
je 0x140031dc0
lea rcx, [rbp + 0xd40]
mov rax, r13
inc rax
cmp byte [rcx + rax], 0
jne 0x140031e00
test eax, eax
je 0x140031e2d
nop dword [rax]
lea ecx, [rax - 1]
mov eax, ecx
lea rdx, [rbp + 0xd40]
add rdx, rax
cmp byte [rdx], 0x20
jne 0x140031e2d
mov eax, ecx
mov byte [rdx], 0
test ecx, ecx
jne 0x140031e10
movzx eax, word [rbx + 0x24]
movzx edx, ax
shr dx, 8
mov byte [rbp + 0xd50], dl
mov byte [rbp + 0xd51], al
movzx ecx, word [rbx + 0x26]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd52], al
mov byte [rbp + 0xd53], cl
movzx ecx, word [rbx + 0x28]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd54], al
mov byte [rbp + 0xd55], cl
movzx ecx, word [rbx + 0x2a]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd56], al
mov byte [rbp + 0xd57], cl
movzx ecx, word [rbx + 0x2c]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd58], al
mov byte [rbp + 0xd59], cl
movzx ecx, word [rbx + 0x2e]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd5a], al
mov byte [rbp + 0xd5b], cl
movzx ecx, word [rbx + 0x30]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd5c], al
mov byte [rbp + 0xd5d], cl
movzx ecx, word [rbx + 0x32]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd5e], al
mov byte [rbp + 0xd5f], cl
movzx ecx, word [rbx + 0x34]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd60], al
mov byte [rbp + 0xd61], cl
movzx ecx, word [rbx + 0x36]
movzx eax, cx
shr ax, 8
mov byte [rbp + 0xd62], al
mov byte [rbp + 0xd63], cl
mov byte [rbp + 0xd64], 0
cmp dl, 0x20
jne 0x140031f56
nop
lea rax, [rbp + 0xd50]
mov r8, r13
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140031f30
lea rdx, [rbp + 0xd51]
lea rcx, [rbp + 0xd50]
call fcn.14022e750
cmp byte [rbp + 0xd50], 0x20
je 0x140031f20
lea rcx, [rbp + 0xd50]
mov rax, r13
inc rax
cmp byte [rcx + rax], 0
jne 0x140031f60
test eax, eax
je 0x140031f8d
nop dword [rax]
lea ecx, [rax - 1]
mov eax, ecx
lea rdx, [rbp + 0xd50]
add rdx, rax
cmp byte [rdx], 0x20
jne 0x140031f8d
mov eax, ecx
mov byte [rdx], 0
test ecx, ecx
jne 0x140031f70
mov dword [r12 + 0x1c], esi
lea rax, [rbp + 0x7f8]
mov qword [rbp + 0x7f0], rax
lea rax, [rbp + 0xd40]
mov rdi, r13
nop word [rax + rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x140031fb0
inc edi
mov r9d, 0x80
lea r8, [rbp + 0x7f8]
mov edx, edi
lea rcx, [rbp + 0x7f0]
call fcn.140018340
mov dword [rsp + 0x28], edi
mov rax, qword [rbp + 0x7f0]
mov qword [rsp + 0x20], rax
mov r9d, edi
lea r8, [rbp + 0xd40]
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, r14d
test eax, eax
sete bl
test eax, eax
jne 0x14003207b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14003207b
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
mov r9d, edi
lea r8, [rbp + 0xd40]
xor edx, edx
lea ecx, [rax - 0x77]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
mov r9d, 0x80
lea r8, [rbp + 0x7f8]
mov edx, eax
lea rcx, [rbp + 0x7f0]
call fcn.140018340
mov dword [rsp + 0x28], ebx
mov rax, qword [rbp + 0x7f0]
mov qword [rsp + 0x20], rax
mov r9d, edi
lea r8, [rbp + 0xd40]
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, r14d
test eax, eax
sete bl
test ebx, ebx
jne 0x14003334e
mov rdx, qword [rbp + 0x7f0]
test rdx, rdx
jne 0x140032094
mov eax, r14d
jmp 0x1400320aa
mov rax, r13
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400320a0
mov r8d, eax
lea rcx, [r12 + 8]
call fcn.140002a7c
nop
lea rax, [rbp + 0x7f8]
mov rcx, qword [rbp + 0x7f0]
cmp rcx, rax
je 0x1400320d0
call fcn.140234520
lea rax, [rbp + 0x908]
mov qword [rbp + 0x900], rax
lea rax, [rbp + 0xd68]
mov rdi, r13
nop dword [rax + rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x1400320f0
inc edi
mov r9d, 0x80
lea r8, [rbp + 0x908]
mov edx, edi
lea rcx, [rbp + 0x900]
call fcn.140018340
mov dword [rsp + 0x28], edi
mov rax, qword [rbp + 0x900]
mov qword [rsp + 0x20], rax
mov r9d, edi
lea r8, [rbp + 0xd68]
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, r14d
test eax, eax
sete bl
test eax, eax
jne 0x1400321bb
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1400321bb
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
mov r9d, edi
lea r8, [rbp + 0xd68]
xor edx, edx
lea ecx, [rax - 0x77]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
mov r9d, 0x80
lea r8, [rbp + 0x908]
mov edx, eax
lea rcx, [rbp + 0x900]
call fcn.140018340
mov dword [rsp + 0x28], ebx
mov rax, qword [rbp + 0x900]
mov qword [rsp + 0x20], rax
mov r9d, edi
lea r8, [rbp + 0xd68]
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, r14d
test eax, eax
sete bl
test ebx, ebx
jne 0x14003336d
mov rdx, qword [rbp + 0x900]
test rdx, rdx
jne 0x1400321d4
mov eax, r14d
jmp 0x1400321ea
mov rax, r13
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400321e0
mov r8d, eax
mov rcx, r12
call fcn.140002a7c
nop
lea rax, [rbp + 0x908]
mov rcx, qword [rbp + 0x900]
cmp rcx, rax
je 0x14003220e
call fcn.140234520
call fcn.1400224d0
cmp dword [rax + 8], 3
jl 0x14003269a
call fcn.1400224d0
mov rbx, rax
mov qword [rsp + 0x48], rax
lea rcx, [rbp + 0x430]
call fcn.14001b770
nop
lea rcx, [rbp + 0x740]
call fcn.140009e28
nop
mov r8d, 5
lea rdx, str.TRACE
lea rcx, [rbp + 0x740]
call fcn.140009a80
lea rcx, [rbp + 0x5a0]
call fcn.140009e28
nop
mov esi, r14d
cmp dword [rbx + 0x10], r14d
jle 0x140032300
cmp esi, 0xa
jge 0x140032300
mov rcx, qword [rbp + 0x5b0]
mov rdx, qword [rbp + 0x5b8]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x1400322da
lea rdi, [rcx + 2]
mov qword [rbp + 0x5b0], rdi
lea rbx, [rbp + 0x5a0]
cmp rdx, 8
cmovae rbx, qword [rbp + 0x5a0]
lea rcx, [rbx + rcx*2]
mov r8d, 4
lea rdx, [0x1402f1358]
call fcn.14022e750
mov word [rbx + rdi*2], r14w
mov rbx, qword [rsp + 0x48]
jmp 0x1400322f5
mov qword [rsp + 0x20], r15
lea r9, [0x1402f1358]
mov rdx, r15
lea rcx, [rbp + 0x5a0]
call fcn.140023320
inc esi
cmp esi, dword [rbx + 0x10]
jl 0x140032277
lea rcx, [rbp + 0x720]
call fcn.140009e28
nop
lea rcx, [rbp + 0x700]
call fcn.140009e28
nop
lea r8, [rbp + 0x700]
lea rdx, [rbp + 0x720]
mov rcx, rbx
call fcn.140022600
lea rsi, [rbp + 0x5a0]
cmp qword [rbp + 0x5b8], 8
cmovae rsi, qword [rbp + 0x5a0]
mov edx, 0x2040
lea rcx, [rbp + 0xe8]
call fcn.14022c844
mov rcx, qword [rbp + 0x440]
movsxd rdx, dword [rcx + 4]
lea rcx, [rbp + 0x440]
add rcx, rdx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x720]
cmp qword [rbp + 0x738], 8
cmovae rdx, qword [rbp + 0x720]
mov r8, qword [rbp + 0x730]
lea rcx, [rbp + 0x440]
call fcn.140018ee0
mov rbx, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp + 0xf8]
call fcn.14022c844
mov rdi, rax
lea rdx, [0x1402f0eb0]
mov rcx, rbx
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov edx, dword [rdi + 8]
call qword [rdi]
mov edx, 6
lea rcx, [rbp + 0x108]
call fcn.14022c86c
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
mov eax, 0x30
mov word [rcx + rbx + 0x58], ax
lea edx, [rax - 0x2d]
lea rcx, [rbp + 0x118]
call fcn.14022c858
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x700]
cmp qword [rbp + 0x718], 8
cmovae rdx, qword [rbp + 0x700]
mov r8, qword [rbp + 0x710]
mov rcx, rbx
call fcn.140018ee0
mov rbx, rax
mov edx, 5
lea rcx, [rbp - 0x58]
call fcn.14022c86c
mov rdi, rax
lea rdx, [0x1402f0eb0]
mov rcx, rbx
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov rdx, qword [rdi + 8]
call qword [rdi]
mov rcx, qword [rbx]
movsxd rdx, dword [rcx + 4]
mov eax, 0x20
mov word [rdx + rbx + 0x58], ax
lea edx, [rax + 0x20]
lea rcx, [rbp - 0x48]
call fcn.14022c844
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov edx, dword [rax + 8]
call qword [rax]
lea rdx, [rbp + 0x740]
cmp qword [rbp + 0x758], 8
cmovae rdx, qword [rbp + 0x740]
mov r8, qword [rbp + 0x750]
mov rcx, rbx
call fcn.140018ee0
lea rdx, [0x1402f13a8]
mov rcx, rax
call fcn.140018b00
mov rcx, rax
mov rdx, rsi
call fcn.140018b00
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14036bfc0], eax
jle 0x140032547
lea rcx, [0x14036bfc0]
call fcn.14022a558
lea rbx, [0x14036bfc8]
cmp dword [0x14036bfc0], 0xffffffff
jne 0x14003254e
mov rcx, rbx
call fcn.140009e28
lea rcx, [0x14027d390]
call fcn.14022a060
lea rcx, [0x14036bfc0]
call fcn.14022a4f8
jmp 0x14003254e
lea rbx, [0x14036bfc8]
lea rdx, [rbp + 0x7a0]
lea rcx, [rbp + 0x448]
call fcn.14001c1e0
mov dword [rsp + MsiGetPropertyW], 0x40
mov rdx, qword [0x14036bfe0]
cmp rdx, 8
jb 0x1400325af
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14036bfc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400325aa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003338c
call fcn.140004518
movups xmm0, xmmword [rbp + 0x7a0]
movups xmmword [0x14036bfc8], xmm0
movups xmm1, xmmword [rbp + 0x7b0]
movups xmmword [0x14036bfd8], xmm1
movdqa xmm0, xmmword [0x1402f81e0]
movdqu xmmword [rbp + 0x7b0], xmm0
mov word [rbp + 0x7a0], r14w
lea rcx, [rbp + 0x7a0]
call fcn.140009824
nop
lea rcx, [rbp + 0x700]
call fcn.140009824
nop
lea rcx, [rbp + 0x720]
call fcn.140009824
nop
lea rcx, [rbp + 0x5a0]
call fcn.140009824
nop
lea rcx, [rbp + 0x740]
call fcn.140009824
nop
lea rcx, [rbp + 0x430]
call fcn.14001b430
call fcn.1400224d0
cmp qword [0x14036bfe0], 8
cmovae rbx, qword [0x14036bfc8]
mov r8, qword [0x14036bfd8]
mov rdx, rbx
mov rcx, rax
call fcn.140018ee0
lea rdx, str.firmwareVersion:
mov rcx, rax
call fcn.140018b00
mov rbx, rax
mov rdx, qword [r12 + 8]
mov rcx, rax
call fcn.140018b00
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov dl, 0xa
call fcn.1400193d0
movzx edx, ax
mov rcx, rbx
call fcn.140019210
mov rcx, rbx
call fcn.140019e90
call fcn.1400224d0
cmp dword [rax + 8], 3
jl 0x14003278a
call fcn.1400224d0
mov rcx, rax
mov edx, 3
call fcn.1400227c0
mov rbx, rax
call fcn.1400224d0
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x1400326d1
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140018ee0
lea rdx, str.model:
mov rcx, rax
call fcn.140018b00
mov rbx, rax
mov rdx, qword [r12]
mov rcx, rax
call fcn.140018b00
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
jmp 0x140032770
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call fcn.1400224d0
cmp dword [rax + 8], 2
jl 0x14003278a
call fcn.1400224d0
mov rcx, rax
mov edx, r15d
call fcn.1400227c0
mov rbx, rax
call fcn.1400224d0
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x14003273f
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140018ee0
lea rdx, str.Error_with_DeviceIoControl:
mov rcx, rax
call fcn.140018b00
mov rcx, rax
mov edx, edi
call fcn.14001b900
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400193d0
movzx edx, ax
mov rcx, rbx
call fcn.140019210
mov rcx, rbx
call fcn.140019e90
mov edx, 0x410
xor ecx, ecx
lea r9d, [rcx + 4]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
mov dword [rsp + 0x44], r14d
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x410
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x2d0c04
mov rsi, qword [rsp + 0x58]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x1400327ed
cmp dword [rbx], 7
jne 0x1400327ed
mov byte [r12 + 0x21], 1
mov qword [rbp + 0x530], r14
mov dword [rsp + 0x68], 8
mov dword [rsp + 0x6c], 8
mov dword [rsp + 0x44], r14d
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 8
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
lea r8, [rbp + 0x530]
mov edx, 0x2d1400
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov edi, 0x28
test eax, eax
cmovne edi, dword [rsp + 0x6c]
mov ecx, edi
call fcn.14008ae18
mov r15, rax
mov r8d, edi
xor edx, edx
mov rcx, rax
call fcn.14022ebc0
mov dword [r15], 0x28
mov dword [r15 + 4], edi
mov dword [rsp + 0x44], r14d
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], r15
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
lea r8, [rbp + 0x530]
mov edx, 0x2d1400
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov esi, 1
test eax, eax
je 0x140032ceb
movzx eax, byte [r15 + 0x1c]
mov byte [r12 + 0x18], al
mov eax, dword [r15 + 0xc]
test eax, eax
je 0x140032a36
lea rdx, [r15 + rax]
lea rcx, [rbp + 0xb20]
call fcn.140015530
nop
mov rdx, qword [rax]
test rdx, rdx
jne 0x1400328ec
mov eax, r14d
jmp 0x1400328fa
mov rax, r13
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400328f0
mov r8d, eax
lea rcx, [r12 + 0x10]
call fcn.140002a7c
nop
lea rax, [rbp + 0xb28]
mov rcx, qword [rbp + 0xb20]
cmp rcx, rax
je 0x140032920
call fcn.140234520
mov rbx, qword [r12 + 0x10]
mov rdi, r14
movzx eax, word [rbx]
test ax, ax
je 0x14003295f
movzx ecx, ax
call fcn.140234aa4
test eax, eax
je 0x14003294b
mov rax, rbx
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x14003294e
mov rdi, r14
add rbx, 2
movzx eax, word [rbx]
test ax, ax
jne 0x140032930
mov rbx, qword [r12 + 0x10]
test rdi, rdi
je 0x14003297b
sub rdi, rbx
sar rdi, 1
mov edx, edi
lea rcx, [r12 + 0x10]
call fcn.14001c440
mov rbx, qword [r12 + 0x10]
movzx ecx, word [rbx]
call fcn.140234aa4
test eax, eax
je 0x1400329a0
nop word [rax + rax]
add rbx, 2
movzx ecx, word [rbx]
call fcn.140234aa4
test eax, eax
jne 0x140032990
mov r10, qword [r12 + 0x10]
cmp rbx, r10
je 0x140032a31
sub rbx, r10
sar rbx, 1
mov edx, dword [r10 - 0x10]
test edx, edx
js 0x140033392
mov ecx, 1
sub ecx, dword [r10 - 8]
mov eax, dword [r10 - 0xc]
sub eax, edx
or eax, ecx
jge 0x1400329e2
lea rcx, [r12 + 0x10]
call fcn.140002a1c
mov r10, qword [r12 + 0x10]
movsxd rax, ebx
lea r8, [r10 + rax*2]
mov edx, dword [r10 - 0x10]
mov edi, edx
sub edi, ebx
lea eax, [rdi + 1]
movsxd r9, eax
add r9, r9
lea eax, [rdx + 1]
movsxd rdx, eax
add rdx, rdx
mov rcx, r10
call fcn.140003d3c
test edi, edi
js 0x14003339d
mov rax, qword [r12 + 0x10]
cmp edi, dword [rax - 0xc]
jg 0x14003339d
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [r12 + 0x10]
mov word [rax + rcx*2], r14w
mov esi, 1
mov eax, dword [r15 + 0x10]
test eax, eax
je 0x140032b87
lea rdx, [r15 + rax]
lea rcx, [rbp + 0xc30]
call fcn.140015530
nop
mov rdx, qword [rax]
test rdx, rdx
jne 0x140032a60
mov eax, r14d
jmp 0x140032a6d
mov rax, r13
inc rax
cmp word [rdx + rax*2], 0
jne 0x140032a63
mov r8d, eax
mov rcx, r12
call fcn.140002a7c
nop
lea rax, [rbp + 0xc38]
mov rcx, qword [rbp + 0xc30]
cmp rcx, rax
je 0x140032a91
call fcn.140234520
mov rbx, qword [r12]
mov rdi, r14
movzx eax, word [rbx]
test ax, ax
je 0x140032ace
movzx ecx, ax
call fcn.140234aa4
test eax, eax
je 0x140032abb
mov rax, rbx
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x140032abe
mov rdi, r14
add rbx, 2
movzx eax, word [rbx]
test ax, ax
jne 0x140032aa0
mov rbx, qword [r12]
test rdi, rdi
je 0x140032ae7
sub rdi, rbx
sar rdi, 1
mov edx, edi
mov rcx, r12
call fcn.14001c440
mov rbx, qword [r12]
movzx ecx, word [rbx]
call fcn.140234aa4
test eax, eax
je 0x140032b03
add rbx, 2
movzx ecx, word [rbx]
call fcn.140234aa4
test eax, eax
jne 0x140032af3
mov r10, qword [r12]
cmp rbx, r10
je 0x140032b87
sub rbx, r10
sar rbx, 1
mov edx, dword [r10 - 0x10]
test edx, edx
js 0x1400333a8
mov ecx, esi
sub ecx, dword [r10 - 8]
mov eax, dword [r10 - 0xc]
sub eax, edx
or eax, ecx
jge 0x140032b3a
mov rcx, r12
call fcn.140002a1c
mov r10, qword [r12]
movsxd rax, ebx
lea r8, [r10 + rax*2]
mov edx, dword [r10 - 0x10]
mov edi, edx
sub edi, ebx
lea eax, [rdi + 1]
movsxd r9, eax
add r9, r9
lea eax, [rdx + 1]
movsxd rdx, eax
add rdx, rdx
mov rcx, r10
call fcn.140003d3c
test edi, edi
js 0x1400333b3
mov rax, qword [r12]
cmp edi, dword [rax - 0xc]
jg 0x1400333b3
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [r12]
mov word [rax + rcx*2], r14w
mov eax, dword [r15 + 0x14]
test eax, eax
je 0x140032ceb
lea rdx, [r15 + rax]
lea rcx, [rbp + 0xa10]
call fcn.140015530
nop
mov rdx, qword [rax]
test rdx, rdx
jne 0x140032bb1
mov eax, r14d
jmp 0x140032bbe
mov rax, r13
inc rax
cmp word [rdx + rax*2], 0
jne 0x140032bb4
mov r8d, eax
lea rcx, [r12 + 8]
call fcn.140002a7c
nop
lea rax, [rbp + 0xa18]
mov rcx, qword [rbp + 0xa10]
cmp rcx, rax
je 0x140032be4
call fcn.140234520
mov rbx, qword [r12 + 8]
mov rdi, r14
movzx eax, word [rbx]
test ax, ax
je 0x140032c23
movzx ecx, ax
call fcn.140234aa4
test eax, eax
je 0x140032c0f
mov rax, rbx
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x140032c12
mov rdi, r14
add rbx, 2
movzx eax, word [rbx]
test ax, ax
jne 0x140032bf4
mov rbx, qword [r12 + 8]
test rdi, rdi
je 0x140032c42
sub rdi, rbx
sar rdi, 1
mov edx, edi
lea rdi, [r12 + 8]
mov rcx, rdi
call fcn.14001c440
mov rbx, qword [rdi]
jmp 0x140032c47
lea rdi, [r12 + 8]
movzx ecx, word [rbx]
call fcn.140234aa4
test eax, eax
je 0x140032c63
add rbx, 2
movzx ecx, word [rbx]
call fcn.140234aa4
test eax, eax
jne 0x140032c53
mov r10, qword [rdi]
cmp rbx, r10
je 0x140032ceb
sub rbx, r10
sar rbx, 1
mov edx, dword [r10 - 0x10]
test edx, edx
js 0x1400333be
mov ecx, esi
sub ecx, dword [r10 - 8]
mov eax, dword [r10 - 0xc]
sub eax, edx
or eax, ecx
jge 0x140032c9c
mov rcx, rdi
call fcn.140002a1c
mov r10, qword [rdi]
movsxd rax, ebx
lea r8, [r10 + rax*2]
mov edx, dword [r10 - 0x10]
mov edi, edx
sub edi, ebx
lea eax, [rdi + 1]
movsxd r9, eax
add r9, r9
lea eax, [rdx + 1]
movsxd rdx, eax
add rdx, rdx
mov rcx, r10
call fcn.140003d3c
test edi, edi
js 0x1400333c9
mov rax, qword [r12 + 8]
cmp edi, dword [rax - 0xc]
jg 0x1400333c9
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [r12 + 8]
mov word [rax + rcx*2], r14w
mov rcx, qword [r12]
sub rcx, 0x18
call fcn.140002c94
add rax, 0x18
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x50]
call fcn.1400152c0
mov rbx, qword [rsp + 0x50]
cmp dword [rbx - 0x10], 0
jl 0x140032d3a
lea rdx, str.INTEL
mov rcx, rbx
call fcn.14022e1d8
test rax, rax
je 0x140032d3a
sub rax, rbx
sar rax, 1
test eax, eax
js 0x140032d3a
mov byte [r12 + 0x20], 1
lea rdx, [r12 + 0x10]
lea rcx, [rsp + 0x50]
call fcn.140002b88
lea rcx, [rsp + 0x50]
call fcn.1400152c0
mov rbx, qword [rsp + 0x50]
cmp dword [rbx - 0x10], 0
jl 0x140032d82
lea rdx, str.INTEL
mov rcx, rbx
call fcn.14022e1d8
test rax, rax
je 0x140032d82
sub rax, rbx
sar rax, 1
test eax, eax
js 0x140032d82
mov byte [r12 + 0x20], 1
call fcn.1400224d0
cmp dword [rax + 8], 3
jl 0x140032e10
mov rax, qword [r12]
mov qword [rsp + 0x48], rax
call fcn.1400224d0
mov rcx, rax
mov edx, 3
call fcn.1400227c0
mov rbx, rax
call fcn.1400224d0
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x140032dc2
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140018ee0
lea rdx, str.Model:
mov rcx, rax
call fcn.140018b00
mov rcx, rax
mov rdx, qword [rsp + 0x48]
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400193d0
movzx edx, ax
mov rcx, rbx
call fcn.140019210
mov rcx, rbx
call fcn.140019e90
call fcn.1400224d0
cmp dword [rax + 8], 3
jl 0x140032e9f
mov rax, qword [r12 + 8]
mov qword [rsp + 0x48], rax
call fcn.1400224d0
mov rcx, rax
mov edx, 3
call fcn.1400227c0
mov rbx, rax
call fcn.1400224d0
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x140032e51
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140018ee0
lea rdx, str.Firmware:
mov rcx, rax
call fcn.140018b00
mov rcx, rax
mov rdx, qword [rsp + 0x48]
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400193d0
movzx edx, ax
mov rcx, rbx
call fcn.140019210
mov rcx, rbx
call fcn.140019e90
call fcn.1400224d0
cmp dword [rax + 8], 3
jl 0x140032f23
mov rdi, qword [r12 + 0x10]
call fcn.1400224d0
mov rcx, rax
mov edx, 3
call fcn.1400227c0
mov rbx, rax
call fcn.1400224d0
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x140032ed7
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140018ee0
lea rdx, str.Vendor:
mov rcx, rax
call fcn.140018b00
mov rcx, rax
mov rdx, rdi
call fcn.140018b00
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400193d0
movzx edx, ax
mov rcx, rbx
call fcn.140019210
mov rcx, rbx
call fcn.140019e90
mov qword [rbp + 0x530], 1
mov dword [rsp + 0x44], r14d
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 8
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
lea r8, [rbp + 0x530]
mov edx, 0x2d1400
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov edi, 0x20
test eax, eax
cmovne edi, dword [rsp + 0x6c]
mov ecx, edi
call fcn.14008ae18
mov rsi, rax
mov r8d, edi
xor edx, edx
mov rcx, rax
call fcn.14022ebc0
mov ebx, 0x20
mov dword [rsi], ebx
mov dword [rsi + 4], edi
mov dword [rsp + 0x44], r14d
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rsi
lea r9d, [rbx - 0x14]
lea r8, [rbp + 0x530]
mov edx, 0x2d1400
mov rdi, qword [rsp + 0x58]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140032fe6
movzx eax, byte [rsi + 0x18]
mov byte [r12 + 0x18], al
mov rcx, rsi
call fcn.14008ae10
mov edx, ebx
lea rcx, [r12 + 0x10]
call fcn.140033570
lea r14, vtable.ATL::CAtlStringMgr.0
test eax, eax
js 0x1400331c5
mov rcx, qword [r12 + 0x10]
sub rcx, 0x18
call fcn.140002c94
add rax, 0x18
mov qword [rsp + 0x48], rax
mov rdx, qword [r12]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x48]
call fcn.140005f58
mov rbx, qword [rsp + 0x48]
cmp dword [rbx - 0x10], 0
jle 0x140033172
mov edx, 0x20
mov rcx, rbx
call fcn.14022e688
mov rdi, rax
test rax, rax
je 0x14003316d
sub rdi, rbx
sar rdi, 1
test edi, edi
jle 0x14003316d
mov r8d, edi
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x48]
call fcn.1400334a0
nop
mov rdx, rax
lea rcx, [r12 + 0x10]
call fcn.140002b88
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400330dc
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400333d4
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rsi, vtable.ATL::CWin32Heap.0
cmp rax, rsi
jne 0x1400333d4
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea r8d, [rdi + 1]
mov r9d, dword [rbx - 0x10]
sub r9d, r8d
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x48]
call fcn.1400151b0
mov ebx, dword [rsp + 0x40]
bts ebx, 7
mov dword [rsp + 0x40], ebx
mov rdx, rax
mov rcx, r12
call fcn.140002b88
btr ebx, 7
mov dword [rsp + 0x40], ebx
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14003316d
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400333e9
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rbx, vtable.ATL::CWin32Heap.0
cmp rax, rbx
jne 0x1400333dc
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [rsp + 0x58]
jmp 0x140033179
mov rdi, qword [rsp + 0x58]
lea rbx, vtable.ATL::CWin32Heap.0
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400331c5
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x1400333f1
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbx
jne 0x1400333f1
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [r12]
cmp dword [rcx - 0x10], 3
jl 0x14003325e
add rcx, 0xffffffffffffffe8
call fcn.140002c94
lea rbx, [rax + 0x18]
mov qword [rbp - 0x60], rbx
cmp dword [rbx - 0x10], 0
jl 0x14003320e
lea rdx, [0x1402f2280]
mov rcx, rbx
call fcn.14022e1d8
test rax, rax
je 0x14003320e
sub rax, rbx
sar rax, 1
test eax, eax
js 0x14003320e
mov byte [r12 + 0x22], 1
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14003325e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140033401
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rsi, vtable.ATL::CWin32Heap.0
cmp rax, rsi
jne 0x1400333f9
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140033265
lea rsi, vtable.ATL::CWin32Heap.0
mov rcx, r15
call fcn.14008ae10
mov r14d, 1
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
sub r13d, r14d
jg 0x1400332c4
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea r9, vtable.ATL::CAtlStringMgr.0
cmp rax, r9
jne 0x140033336
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x140033336
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x60]
xor edx, edx
mov r8d, 0x8000
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_VirtualFree]
test rbx, rbx
je 0x1400332f2
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rbp + 0x7c0]
call fcn.140019fe0
movzx eax, r14b
mov rcx, qword [rbp + 0xd98]
xor rcx, rsp
call fcn.140229da0
mov rbx, qword [rsp + 0xef8]
add rsp, 0xea0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call r8
nop
jmp 0x1400332c4
call fcn.1402311b4
nop
call fcn.1402311b4
nop
call fcn.1402311b4
nop
mov r8d, 0x80
lea rdx, [rbp + 0x7f8]
mov rcx, qword [rbp + 0x7f0]
call fcn.140018560
call fcn.1400081cc
int3
mov r8d, 0x80
lea rdx, [rbp + 0x908]
mov rcx, qword [rbp + 0x900]
call fcn.140018560
call fcn.1400081cc
nop
call fcn.1402311b4
nop
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
int3
mov ecx, 0x80070057
call fcn.140002d3c
nop
call r8
jmp 0x1400330dc
call r8
mov rdi, qword [rsp + 0x58]
jmp 0x140033179
call r8
jmp 0x14003316d
call r8
jmp 0x1400331c5
call r8
jmp 0x140033265
call r8
jmp 0x14003325e