Function at 0x140030be0
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 [0x14035d8c0]
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.14000a1bc
nop
mov byte [rbp + 0x7c0], r14b
lea r8d, [r14 + 0x15]
lea rdx, str.GetPhysicalDeviceInfo
lea rcx, [rbp + 0x7c8]
call fcn.140009e14
nop
call fcn.1400227c0
cmp dword [rax + 8], 4
jl 0x140030c7a
mov byte [rbp + 0x7c0], 1
lea rcx, [rbp + 0x7c0]
call fcn.140018900
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 0x140031206
call fcn.1400227c0
cmp dword [rax + 8], 3
jl 0x1400311fe
call fcn.1400227c0
mov r12, rax
lea rcx, [rbp + 0x230]
call fcn.14001bb00
nop
lea rcx, [rbp + 0x620]
call fcn.14000a1bc
nop
lea r8d, [rdi + 6]
lea rdx, str.TRACE
lea rcx, [rbp + 0x620]
call fcn.140009e14
lea rcx, [rbp + 0x540]
call fcn.14000a1bc
nop
mov esi, r14d
lea r15d, [rdi + 3]
cmp dword [r12 + 0x10], r14d
jle 0x140030db5
cmp esi, 0xa
jge 0x140030db5
mov rcx, qword [rbp + 0x550]
mov rdx, qword [rbp + 0x558]
mov rax, rdx
sub rax, rcx
cmp rax, r15
jb 0x140030d91
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, [0x1402f2578]
call fcn.14022f3d0
mov word [rbx + rdi*2], r14w
jmp 0x140030dac
mov qword [rsp + 0x20], r15
lea r9, [0x1402f2578]
mov rdx, r15
lea rcx, [rbp + 0x540]
call fcn.140023610
inc esi
cmp esi, dword [r12 + 0x10]
jl 0x140030d38
lea rcx, [rbp + 0x780]
call fcn.14000a1bc
nop
lea rcx, [rbp + 0x760]
call fcn.14000a1bc
nop
lea r8, [rbp + 0x760]
lea rdx, [rbp + 0x780]
mov rcx, r12
call fcn.1400228f0
lea rsi, [rbp + 0x540]
cmp qword [rbp + 0x558], 8
cmovae rsi, qword [rbp + 0x540]
mov edx, 0x2040
lea rcx, [rbp - 0x38]
call fcn.14022d4c4
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.140019270
mov rbx, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp - 0x28]
call fcn.14022d4c4
mov rdi, rax
lea rdx, [0x1402f20d0]
mov rcx, rbx
call fcn.140018e90
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.14022d4ec
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.14022d4d8
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.140019270
mov rbx, rax
mov edx, 5
lea rcx, [rbp + 8]
call fcn.14022d4ec
mov rdi, rax
lea rdx, [0x1402f20d0]
mov rcx, rbx
call fcn.140018e90
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.14022d4c4
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.140019270
lea rdx, [0x1402f25c8]
mov rcx, rax
call fcn.140018e90
mov rcx, rax
mov rdx, rsi
call fcn.140018e90
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
lea rdi, [0x14036cfc8]
mov eax, dword [rdx + rcx]
cmp dword [0x14036cfc0], eax
jle 0x140030fef
lea rcx, [0x14036cfc0]
call fcn.14022b1d8
cmp dword [0x14036cfc0], 0xffffffff
jne 0x140030fef
mov rcx, rdi
call fcn.14000a1bc
lea rcx, [0x14027e0e0]
call fcn.14022ace0
lea rcx, [0x14036cfc0]
call fcn.14022b178
nop
lea rcx, [rbp + 0x5c0]
call fcn.140009da0
movdqa xmm0, xmmword [0x1402f9360]
movdqu xmmword [rbp + 0x5d0], xmm0
mov word [rbp + 0x5c0], r14w
mov dword [rsp + 0x40], r15d
mov rcx, qword [rbp + 0x2b8]
test cl, 2
jne 0x140031051
mov rax, qword [rbp + 0x288]
mov r8, qword [rax]
test r8, r8
je 0x140031051
mov rax, qword [rbp + 0x268]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x2b0]
cmovb r8, qword [rbp + 0x2b0]
sub r8, rdx
jmp 0x140031082
test cl, 4
jne 0x140031091
mov rax, qword [rbp + 0x280]
mov rcx, qword [rax]
test rcx, rcx
je 0x140031091
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.140009e14
and r15d, 0xfffffffd
mov dword [rsp + 0x40], r15d
mov ebx, 1
mov dword [rsp + 0x40], ebx
mov rdx, qword [0x14036cfe0]
cmp rdx, 8
jb 0x1400310e9
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14036cfc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400310e4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003358c
call fcn.1400045a8
movups xmm0, xmmword [rbp + 0x5c0]
movups xmmword [0x14036cfc8], xmm0
movups xmm1, xmmword [rbp + 0x5d0]
movups xmmword [0x14036cfd8], xmm1
movdqa xmm0, xmmword [0x1402f9360]
movdqu xmmword [rbp + 0x5d0], xmm0
mov word [rbp + 0x5c0], r14w
and ebx, 0xfffffffe
mov dword [rsp + 0x40], ebx
lea rcx, [rbp + 0x5c0]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x760]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x780]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x540]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x620]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x230]
call fcn.14001b7c0
call fcn.1400227c0
cmp qword [0x14036cfe0], 8
cmovae rdi, qword [0x14036cfc8]
mov r8, qword [0x14036cfd8]
mov rdx, rdi
mov rcx, rax
call fcn.140019270
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.140018e90
mov rcx, rax
mov edx, dword [rsp + 0x50]
call fcn.14001bc90
mov rcx, rax
lea rdx, str._with_error:
call fcn.140018e90
mov rcx, rax
mov edx, edi
call fcn.14001bc90
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140019760
movzx edx, ax
mov rcx, rbx
call fcn.1400195a0
mov rcx, rbx
call fcn.14001a220
xor r14b, r14b
jmp 0x14003354c
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 0x14003352c
test rax, rax
je 0x140033519
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.14022f840
mov dword [rbx], 0x211
call fcn.1400227c0
mov r15d, 2
cmp dword [rax + 8], 3
jl 0x1400317cf
call fcn.1400227c0
mov r13, rax
lea rcx, [rbp + 0x130]
call fcn.14001bb00
nop
lea rcx, [rbp + 0x680]
call fcn.14000a1bc
nop
lea r8d, [r15 + 3]
lea rdx, str.TRACE
lea rcx, [rbp + 0x680]
call fcn.140009e14
lea rcx, [rbp + 0x560]
call fcn.14000a1bc
nop
mov esi, r14d
cmp dword [r13 + 0x10], r14d
jle 0x14003138d
nop dword [rax]
cmp esi, 0xa
jge 0x14003138d
mov rcx, qword [rbp + 0x570]
mov rdx, qword [rbp + 0x578]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x14003136a
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, [0x1402f2578]
call fcn.14022f3d0
mov word [rbx + rdi*2], r14w
jmp 0x140031385
mov qword [rsp + 0x20], r15
lea r9, [0x1402f2578]
mov rdx, r15
lea rcx, [rbp + 0x560]
call fcn.140023610
inc esi
cmp esi, dword [r13 + 0x10]
jl 0x140031310
lea rcx, [rbp + 0x660]
call fcn.14000a1bc
nop
lea rcx, [rbp + 0x640]
call fcn.14000a1bc
nop
lea r8, [rbp + 0x640]
lea rdx, [rbp + 0x660]
mov rcx, r13
call fcn.1400228f0
lea rsi, [rbp + 0x560]
cmp qword [rbp + 0x578], 8
cmovae rsi, qword [rbp + 0x560]
mov edx, 0x2040
lea rcx, [rbp + 0x28]
call fcn.14022d4c4
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.140019270
mov rbx, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp + 0x38]
call fcn.14022d4c4
mov rdi, rax
lea rdx, [0x1402f20d0]
mov rcx, rbx
call fcn.140018e90
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.14022d4ec
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.14022d4d8
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.140019270
mov rbx, rax
mov edx, 5
lea rcx, [rbp + 0x68]
call fcn.14022d4ec
mov rdi, rax
lea rdx, [0x1402f20d0]
mov rcx, rbx
call fcn.140018e90
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.14022d4c4
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.140019270
lea rdx, [0x1402f25c8]
mov rcx, rax
call fcn.140018e90
mov rcx, rax
mov rdx, rsi
call fcn.140018e90
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14036cfc0], eax
jle 0x1400315c8
lea rcx, [0x14036cfc0]
call fcn.14022b1d8
lea rdi, [0x14036cfc8]
cmp dword [0x14036cfc0], 0xffffffff
jne 0x1400315cf
mov rcx, rdi
call fcn.14000a1bc
lea rcx, [0x14027e0e0]
call fcn.14022ace0
lea rcx, [0x14036cfc0]
call fcn.14022b178
jmp 0x1400315cf
lea rdi, [0x14036cfc8]
lea rcx, [rbp + 0x5e0]
call fcn.140009da0
movdqa xmm0, xmmword [0x1402f9360]
movdqu xmmword [rbp + 0x5f0], xmm0
mov word [rbp + 0x5e0], r14w
mov dword [rsp + 0x40], 8
mov rcx, qword [rbp + 0x1b8]
test cl, 2
jne 0x140031638
mov rax, qword [rbp + 0x188]
mov r8, qword [rax]
test r8, r8
je 0x140031638
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 0x140031669
test cl, 4
jne 0x140031678
mov rax, qword [rbp + 0x180]
mov rcx, qword [rax]
test rcx, rcx
je 0x140031678
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.140009e14
mov eax, 8
and eax, 0xfffffff7
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x40], 4
mov rdx, qword [0x14036cfe0]
cmp rdx, 8
jb 0x1400316d2
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14036cfc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400316cd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140033592
call fcn.1400045a8
movups xmm0, xmmword [rbp + 0x5e0]
movups xmmword [0x14036cfc8], xmm0
movups xmm1, xmmword [rbp + 0x5f0]
movups xmmword [0x14036cfd8], xmm1
movdqa xmm0, xmmword [0x1402f9360]
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.140009bb8
nop
lea rcx, [rbp + 0x640]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x660]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x560]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x680]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x130]
call fcn.14001b7c0
call fcn.1400227c0
mov rdx, rdi
cmp qword [0x14036cfe0], 8
cmovae rdx, qword [0x14036cfc8]
mov r8, qword [0x14036cfd8]
mov rcx, rax
call fcn.140019270
lea rdx, str.Looking_for_Drive:
mov rcx, rax
call fcn.140018e90
mov rcx, rax
mov esi, dword [rsp + 0x50]
mov edx, esi
call fcn.14001bc90
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140019760
movzx edx, ax
mov rcx, rbx
call fcn.1400195a0
mov rcx, rbx
call fcn.14001a220
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 0x140032956
call fcn.1400227c0
cmp dword [rax + 8], 3
jl 0x140031d4f
call fcn.1400227c0
mov rbx, rax
mov qword [rsp + 0x48], rax
lea rcx, [rbp + 0x330]
call fcn.14001bb00
nop
lea rcx, [rbp + 0x6e0]
call fcn.14000a1bc
nop
lea r8d, [r13 + 6]
lea rdx, str.TRACE
lea rcx, [rbp + 0x6e0]
call fcn.140009e14
lea rcx, [rbp + 0x580]
call fcn.14000a1bc
nop
mov esi, r14d
cmp dword [rbx + 0x10], r14d
jle 0x140031909
nop dword [rax]
cmp esi, 0xa
jge 0x140031909
mov rcx, qword [rbp + 0x590]
mov rdx, qword [rbp + 0x598]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x1400318e3
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, [0x1402f2578]
call fcn.14022f3d0
mov word [rbx + rdi*2], r14w
mov rbx, qword [rsp + 0x48]
jmp 0x1400318fe
mov qword [rsp + 0x20], r15
lea r9, [0x1402f2578]
mov rdx, r15
lea rcx, [rbp + 0x580]
call fcn.140023610
inc esi
cmp esi, dword [rbx + 0x10]
jl 0x140031880
lea rcx, [rbp + 0x6c0]
call fcn.14000a1bc
nop
lea rcx, [rbp + 0x6a0]
call fcn.14000a1bc
nop
lea r8, [rbp + 0x6a0]
lea rdx, [rbp + 0x6c0]
mov rcx, rbx
call fcn.1400228f0
lea rsi, [rbp + 0x580]
cmp qword [rbp + 0x598], 8
cmovae rsi, qword [rbp + 0x580]
mov edx, 0x2040
lea rcx, [rbp + 0x88]
call fcn.14022d4c4
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.140019270
mov rbx, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp + 0x98]
call fcn.14022d4c4
mov rdi, rax
lea rdx, [0x1402f20d0]
mov rcx, rbx
call fcn.140018e90
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.14022d4ec
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.14022d4d8
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.140019270
mov rbx, rax
mov edx, 5
lea rcx, [rbp + 0xc8]
call fcn.14022d4ec
mov rdi, rax
lea rdx, [0x1402f20d0]
mov rcx, rbx
call fcn.140018e90
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.14022d4c4
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.140019270
lea rdx, [0x1402f25c8]
mov rcx, rax
call fcn.140018e90
mov rcx, rax
mov rdx, rsi
call fcn.140018e90
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14036cfc0], eax
jle 0x140031b52
lea rcx, [0x14036cfc0]
call fcn.14022b1d8
cmp dword [0x14036cfc0], 0xffffffff
jne 0x140031b52
lea rcx, [0x14036cfc8]
call fcn.14000a1bc
lea rcx, [0x14027e0e0]
call fcn.14022ace0
lea rcx, [0x14036cfc0]
call fcn.14022b178
nop
lea rcx, [rbp + 0x600]
call fcn.140009da0
movdqa xmm0, xmmword [0x1402f9360]
movdqu xmmword [rbp + 0x610], xmm0
mov word [rbp + 0x600], r14w
mov dword [rsp + 0x40], edi
mov rcx, qword [rbp + 0x3b8]
test cl, 2
jne 0x140031bb7
mov rax, qword [rbp + 0x388]
mov r8, qword [rax]
test r8, r8
je 0x140031bb7
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 0x140031be8
test cl, 4
jne 0x140031bf7
mov rax, qword [rbp + 0x380]
mov rcx, qword [rax]
test rcx, rcx
je 0x140031bf7
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.140009e14
mov eax, edi
and eax, 0xffffffdf
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x40], reloc.OLEAUT32.dll_SafeArrayGetDim
mov rdx, qword [0x14036cfe0]
cmp rdx, 8
jb 0x140031c4e
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14036cfc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140031c49
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140033598
call fcn.1400045a8
movups xmm0, xmmword [rbp + 0x600]
movups xmmword [0x14036cfc8], xmm0
movups xmm1, xmmword [rbp + 0x610]
movups xmmword [0x14036cfd8], xmm1
movdqa xmm0, xmmword [0x1402f9360]
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.140009bb8
nop
lea rcx, [rbp + 0x6a0]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x6c0]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x580]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x6e0]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x330]
call fcn.14001b7c0
call fcn.1400227c0
lea rdx, [0x14036cfc8]
cmp qword [0x14036cfe0], 8
cmovae rdx, qword [0x14036cfc8]
mov r8, qword [0x14036cfd8]
mov rcx, rax
call fcn.140019270
lea rdx, str.Got_Drive:
mov rcx, rax
call fcn.140018e90
mov rcx, rax
mov esi, dword [rsp + 0x50]
mov edx, esi
call fcn.14001bc90
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140019760
movzx edx, ax
mov rcx, rbx
call fcn.1400195a0
mov rcx, rbx
call fcn.14001a220
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 0x140031f66
nop word [rax + rax]
lea rax, [rbp + 0xd68]
mov r8, r13
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140031f40
lea rdx, [rbp + 0xd69]
lea rcx, [rbp + 0xd68]
call fcn.14022f3d0
cmp byte [rbp + 0xd68], 0x20
je 0x140031f30
lea rcx, [rbp + 0xd68]
mov rax, r13
inc rax
cmp byte [rcx + rax], 0
jne 0x140031f70
test eax, eax
je 0x140031f9d
nop dword [rax]
lea ecx, [rax - 1]
mov eax, ecx
lea rdx, [rbp + 0xd68]
add rdx, rax
cmp byte [rdx], 0x20
jne 0x140031f9d
mov eax, ecx
mov byte [rdx], 0
test ecx, ecx
jne 0x140031f80
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 0x140032046
nop dword [rax]
lea rax, [rbp + 0xd40]
mov r8, r13
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140032020
lea rdx, [rbp + 0xd41]
lea rcx, [rbp + 0xd40]
call fcn.14022f3d0
cmp byte [rbp + 0xd40], 0x20
je 0x140032010
lea rcx, [rbp + 0xd40]
mov rax, r13
inc rax
cmp byte [rcx + rax], 0
jne 0x140032050
test eax, eax
je 0x14003207d
nop dword [rax]
lea ecx, [rax - 1]
mov eax, ecx
lea rdx, [rbp + 0xd40]
add rdx, rax
cmp byte [rdx], 0x20
jne 0x14003207d
mov eax, ecx
mov byte [rdx], 0
test ecx, ecx
jne 0x140032060
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 0x1400321a6
nop
lea rax, [rbp + 0xd50]
mov r8, r13
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140032180
lea rdx, [rbp + 0xd51]
lea rcx, [rbp + 0xd50]
call fcn.14022f3d0
cmp byte [rbp + 0xd50], 0x20
je 0x140032170
lea rcx, [rbp + 0xd50]
mov rax, r13
inc rax
cmp byte [rcx + rax], 0
jne 0x1400321b0
test eax, eax
je 0x1400321dd
nop dword [rax]
lea ecx, [rax - 1]
mov eax, ecx
lea rdx, [rbp + 0xd50]
add rdx, rax
cmp byte [rdx], 0x20
jne 0x1400321dd
mov eax, ecx
mov byte [rdx], 0
test ecx, ecx
jne 0x1400321c0
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 0x140032200
inc edi
mov r9d, 0x80
lea r8, [rbp + 0x7f8]
mov edx, edi
lea rcx, [rbp + 0x7f0]
call fcn.1400186d0
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 0x1400322cb
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1400322cb
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.1400186d0
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 0x14003359e
mov rdx, qword [rbp + 0x7f0]
test rdx, rdx
jne 0x1400322e4
mov eax, r14d
jmp 0x1400322fa
mov rax, r13
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400322f0
mov r8d, eax
lea rcx, [r12 + 8]
call fcn.140002a7c
nop
lea rax, [rbp + 0x7f8]
mov rcx, qword [rbp + 0x7f0]
cmp rcx, rax
je 0x140032320
call fcn.1402351a0
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 0x140032340
inc edi
mov r9d, 0x80
lea r8, [rbp + 0x908]
mov edx, edi
lea rcx, [rbp + 0x900]
call fcn.1400186d0
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 0x14003240b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14003240b
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.1400186d0
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 0x1400335bd
mov rdx, qword [rbp + 0x900]
test rdx, rdx
jne 0x140032424
mov eax, r14d
jmp 0x14003243a
mov rax, r13
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140032430
mov r8d, eax
mov rcx, r12
call fcn.140002a7c
nop
lea rax, [rbp + 0x908]
mov rcx, qword [rbp + 0x900]
cmp rcx, rax
je 0x14003245e
call fcn.1402351a0
call fcn.1400227c0
cmp dword [rax + 8], 3
jl 0x1400328ea
call fcn.1400227c0
mov rbx, rax
mov qword [rsp + 0x48], rax
lea rcx, [rbp + 0x430]
call fcn.14001bb00
nop
lea rcx, [rbp + 0x740]
call fcn.14000a1bc
nop
mov r8d, 5
lea rdx, str.TRACE
lea rcx, [rbp + 0x740]
call fcn.140009e14
lea rcx, [rbp + 0x5a0]
call fcn.14000a1bc
nop
mov esi, r14d
cmp dword [rbx + 0x10], r14d
jle 0x140032550
cmp esi, 0xa
jge 0x140032550
mov rcx, qword [rbp + 0x5b0]
mov rdx, qword [rbp + 0x5b8]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x14003252a
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, [0x1402f2578]
call fcn.14022f3d0
mov word [rbx + rdi*2], r14w
mov rbx, qword [rsp + 0x48]
jmp 0x140032545
mov qword [rsp + 0x20], r15
lea r9, [0x1402f2578]
mov rdx, r15
lea rcx, [rbp + 0x5a0]
call fcn.140023610
inc esi
cmp esi, dword [rbx + 0x10]
jl 0x1400324c7
lea rcx, [rbp + 0x720]
call fcn.14000a1bc
nop
lea rcx, [rbp + 0x700]
call fcn.14000a1bc
nop
lea r8, [rbp + 0x700]
lea rdx, [rbp + 0x720]
mov rcx, rbx
call fcn.1400228f0
lea rsi, [rbp + 0x5a0]
cmp qword [rbp + 0x5b8], 8
cmovae rsi, qword [rbp + 0x5a0]
mov edx, 0x2040
lea rcx, [rbp + 0xe8]
call fcn.14022d4c4
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.140019270
mov rbx, rax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp + 0xf8]
call fcn.14022d4c4
mov rdi, rax
lea rdx, [0x1402f20d0]
mov rcx, rbx
call fcn.140018e90
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.14022d4ec
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.14022d4d8
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.140019270
mov rbx, rax
mov edx, 5
lea rcx, [rbp - 0x58]
call fcn.14022d4ec
mov rdi, rax
lea rdx, [0x1402f20d0]
mov rcx, rbx
call fcn.140018e90
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.14022d4c4
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.140019270
lea rdx, [0x1402f25c8]
mov rcx, rax
call fcn.140018e90
mov rcx, rax
mov rdx, rsi
call fcn.140018e90
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14036cfc0], eax
jle 0x140032797
lea rcx, [0x14036cfc0]
call fcn.14022b1d8
lea rbx, [0x14036cfc8]
cmp dword [0x14036cfc0], 0xffffffff
jne 0x14003279e
mov rcx, rbx
call fcn.14000a1bc
lea rcx, [0x14027e0e0]
call fcn.14022ace0
lea rcx, [0x14036cfc0]
call fcn.14022b178
jmp 0x14003279e
lea rbx, [0x14036cfc8]
lea rdx, [rbp + 0x7a0]
lea rcx, [rbp + 0x448]
call fcn.14001c570
mov dword [rsp + MsiGetPropertyW], 0x40
mov rdx, qword [0x14036cfe0]
cmp rdx, 8
jb 0x1400327ff
lea rdx, [rdx*2 + 2]
mov rcx, qword [0x14036cfc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400327fa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400335dc
call fcn.1400045a8
movups xmm0, xmmword [rbp + 0x7a0]
movups xmmword [0x14036cfc8], xmm0
movups xmm1, xmmword [rbp + 0x7b0]
movups xmmword [0x14036cfd8], xmm1
movdqa xmm0, xmmword [0x1402f9360]
movdqu xmmword [rbp + 0x7b0], xmm0
mov word [rbp + 0x7a0], r14w
lea rcx, [rbp + 0x7a0]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x700]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x720]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x5a0]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x740]
call fcn.140009bb8
nop
lea rcx, [rbp + 0x430]
call fcn.14001b7c0
call fcn.1400227c0
cmp qword [0x14036cfe0], 8
cmovae rbx, qword [0x14036cfc8]
mov r8, qword [0x14036cfd8]
mov rdx, rbx
mov rcx, rax
call fcn.140019270
lea rdx, str.firmwareVersion:
mov rcx, rax
call fcn.140018e90
mov rbx, rax
mov rdx, qword [r12 + 8]
mov rcx, rax
call fcn.140018e90
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov dl, 0xa
call fcn.140019760
movzx edx, ax
mov rcx, rbx
call fcn.1400195a0
mov rcx, rbx
call fcn.14001a220
call fcn.1400227c0
cmp dword [rax + 8], 3
jl 0x1400329da
call fcn.1400227c0
mov rcx, rax
mov edx, 3
call fcn.140022ab0
mov rbx, rax
call fcn.1400227c0
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x140032921
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140019270
lea rdx, str.model:
mov rcx, rax
call fcn.140018e90
mov rbx, rax
mov rdx, qword [r12]
mov rcx, rax
call fcn.140018e90
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
jmp 0x1400329c0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call fcn.1400227c0
cmp dword [rax + 8], 2
jl 0x1400329da
call fcn.1400227c0
mov rcx, rax
mov edx, r15d
call fcn.140022ab0
mov rbx, rax
call fcn.1400227c0
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x14003298f
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140019270
lea rdx, str.Error_with_DeviceIoControl:
mov rcx, rax
call fcn.140018e90
mov rcx, rax
mov edx, edi
call fcn.14001bc90
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140019760
movzx edx, ax
mov rcx, rbx
call fcn.1400195a0
mov rcx, rbx
call fcn.14001a220
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 0x140032a3d
cmp dword [rbx], 7
jne 0x140032a3d
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.14008ba98
mov r15, rax
mov r8d, edi
xor edx, edx
mov rcx, rax
call fcn.14022f840
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 0x140032f3b
movzx eax, byte [r15 + 0x1c]
mov byte [r12 + 0x18], al
mov eax, dword [r15 + 0xc]
test eax, eax
je 0x140032c86
lea rdx, [r15 + rax]
lea rcx, [rbp + 0xb20]
call fcn.1400158c0
nop
mov rdx, qword [rax]
test rdx, rdx
jne 0x140032b3c
mov eax, r14d
jmp 0x140032b4a
mov rax, r13
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x140032b40
mov r8d, eax
lea rcx, [r12 + 0x10]
call fcn.140002a7c
nop
lea rax, [rbp + 0xb28]
mov rcx, qword [rbp + 0xb20]
cmp rcx, rax
je 0x140032b70
call fcn.1402351a0
mov rbx, qword [r12 + 0x10]
mov rdi, r14
movzx eax, word [rbx]
test ax, ax
je 0x140032baf
movzx ecx, ax
call fcn.140235724
test eax, eax
je 0x140032b9b
mov rax, rbx
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x140032b9e
mov rdi, r14
add rbx, 2
movzx eax, word [rbx]
test ax, ax
jne 0x140032b80
mov rbx, qword [r12 + 0x10]
test rdi, rdi
je 0x140032bcb
sub rdi, rbx
sar rdi, 1
mov edx, edi
lea rcx, [r12 + 0x10]
call fcn.14001c7d0
mov rbx, qword [r12 + 0x10]
movzx ecx, word [rbx]
call fcn.140235724
test eax, eax
je 0x140032bf0
nop word [rax + rax]
add rbx, 2
movzx ecx, word [rbx]
call fcn.140235724
test eax, eax
jne 0x140032be0
mov r10, qword [r12 + 0x10]
cmp rbx, r10
je 0x140032c81
sub rbx, r10
sar rbx, 1
mov edx, dword [r10 - 0x10]
test edx, edx
js 0x1400335e2
mov ecx, 1
sub ecx, dword [r10 - 8]
mov eax, dword [r10 - 0xc]
sub eax, edx
or eax, ecx
jge 0x140032c32
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.140003dcc
test edi, edi
js 0x1400335ed
mov rax, qword [r12 + 0x10]
cmp edi, dword [rax - 0xc]
jg 0x1400335ed
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 0x140032dd7
lea rdx, [r15 + rax]
lea rcx, [rbp + 0xc30]
call fcn.1400158c0
nop
mov rdx, qword [rax]
test rdx, rdx
jne 0x140032cb0
mov eax, r14d
jmp 0x140032cbd
mov rax, r13
inc rax
cmp word [rdx + rax*2], 0
jne 0x140032cb3
mov r8d, eax
mov rcx, r12
call fcn.140002a7c
nop
lea rax, [rbp + 0xc38]
mov rcx, qword [rbp + 0xc30]
cmp rcx, rax
je 0x140032ce1
call fcn.1402351a0
mov rbx, qword [r12]
mov rdi, r14
movzx eax, word [rbx]
test ax, ax
je 0x140032d1e
movzx ecx, ax
call fcn.140235724
test eax, eax
je 0x140032d0b
mov rax, rbx
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x140032d0e
mov rdi, r14
add rbx, 2
movzx eax, word [rbx]
test ax, ax
jne 0x140032cf0
mov rbx, qword [r12]
test rdi, rdi
je 0x140032d37
sub rdi, rbx
sar rdi, 1
mov edx, edi
mov rcx, r12
call fcn.14001c7d0
mov rbx, qword [r12]
movzx ecx, word [rbx]
call fcn.140235724
test eax, eax
je 0x140032d53
add rbx, 2
movzx ecx, word [rbx]
call fcn.140235724
test eax, eax
jne 0x140032d43
mov r10, qword [r12]
cmp rbx, r10
je 0x140032dd7
sub rbx, r10
sar rbx, 1
mov edx, dword [r10 - 0x10]
test edx, edx
js 0x1400335f8
mov ecx, esi
sub ecx, dword [r10 - 8]
mov eax, dword [r10 - 0xc]
sub eax, edx
or eax, ecx
jge 0x140032d8a
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.140003dcc
test edi, edi
js 0x140033603
mov rax, qword [r12]
cmp edi, dword [rax - 0xc]
jg 0x140033603
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 0x140032f3b
lea rdx, [r15 + rax]
lea rcx, [rbp + 0xa10]
call fcn.1400158c0
nop
mov rdx, qword [rax]
test rdx, rdx
jne 0x140032e01
mov eax, r14d
jmp 0x140032e0e
mov rax, r13
inc rax
cmp word [rdx + rax*2], 0
jne 0x140032e04
mov r8d, eax
lea rcx, [r12 + 8]
call fcn.140002a7c
nop
lea rax, [rbp + 0xa18]
mov rcx, qword [rbp + 0xa10]
cmp rcx, rax
je 0x140032e34
call fcn.1402351a0
mov rbx, qword [r12 + 8]
mov rdi, r14
movzx eax, word [rbx]
test ax, ax
je 0x140032e73
movzx ecx, ax
call fcn.140235724
test eax, eax
je 0x140032e5f
mov rax, rbx
test rdi, rdi
cmovne rax, rdi
mov rdi, rax
jmp 0x140032e62
mov rdi, r14
add rbx, 2
movzx eax, word [rbx]
test ax, ax
jne 0x140032e44
mov rbx, qword [r12 + 8]
test rdi, rdi
je 0x140032e92
sub rdi, rbx
sar rdi, 1
mov edx, edi
lea rdi, [r12 + 8]
mov rcx, rdi
call fcn.14001c7d0
mov rbx, qword [rdi]
jmp 0x140032e97
lea rdi, [r12 + 8]
movzx ecx, word [rbx]
call fcn.140235724
test eax, eax
je 0x140032eb3
add rbx, 2
movzx ecx, word [rbx]
call fcn.140235724
test eax, eax
jne 0x140032ea3
mov r10, qword [rdi]
cmp rbx, r10
je 0x140032f3b
sub rbx, r10
sar rbx, 1
mov edx, dword [r10 - 0x10]
test edx, edx
js 0x14003360e
mov ecx, esi
sub ecx, dword [r10 - 8]
mov eax, dword [r10 - 0xc]
sub eax, edx
or eax, ecx
jge 0x140032eec
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.140003dcc
test edi, edi
js 0x140033619
mov rax, qword [r12 + 8]
cmp edi, dword [rax - 0xc]
jg 0x140033619
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.140015650
mov rbx, qword [rsp + 0x50]
cmp dword [rbx - 0x10], 0
jl 0x140032f8a
lea rdx, str.INTEL
mov rcx, rbx
call fcn.14022ee58
test rax, rax
je 0x140032f8a
sub rax, rbx
sar rax, 1
test eax, eax
js 0x140032f8a
mov byte [r12 + 0x20], 1
lea rdx, [r12 + 0x10]
lea rcx, [rsp + 0x50]
call fcn.140002b88
lea rcx, [rsp + 0x50]
call fcn.140015650
mov rbx, qword [rsp + 0x50]
cmp dword [rbx - 0x10], 0
jl 0x140032fd2
lea rdx, str.INTEL
mov rcx, rbx
call fcn.14022ee58
test rax, rax
je 0x140032fd2
sub rax, rbx
sar rax, 1
test eax, eax
js 0x140032fd2
mov byte [r12 + 0x20], 1
call fcn.1400227c0
cmp dword [rax + 8], 3
jl 0x140033060
mov rax, qword [r12]
mov qword [rsp + 0x48], rax
call fcn.1400227c0
mov rcx, rax
mov edx, 3
call fcn.140022ab0
mov rbx, rax
call fcn.1400227c0
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x140033012
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140019270
lea rdx, str.Model:
mov rcx, rax
call fcn.140018e90
mov rcx, rax
mov rdx, qword [rsp + 0x48]
call fcn.140018e90
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140019760
movzx edx, ax
mov rcx, rbx
call fcn.1400195a0
mov rcx, rbx
call fcn.14001a220
call fcn.1400227c0
cmp dword [rax + 8], 3
jl 0x1400330ef
mov rax, qword [r12 + 8]
mov qword [rsp + 0x48], rax
call fcn.1400227c0
mov rcx, rax
mov edx, 3
call fcn.140022ab0
mov rbx, rax
call fcn.1400227c0
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x1400330a1
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140019270
lea rdx, str.Firmware:
mov rcx, rax
call fcn.140018e90
mov rcx, rax
mov rdx, qword [rsp + 0x48]
call fcn.140018e90
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140019760
movzx edx, ax
mov rcx, rbx
call fcn.1400195a0
mov rcx, rbx
call fcn.14001a220
call fcn.1400227c0
cmp dword [rax + 8], 3
jl 0x140033173
mov rdi, qword [r12 + 0x10]
call fcn.1400227c0
mov rcx, rax
mov edx, 3
call fcn.140022ab0
mov rbx, rax
call fcn.1400227c0
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x140033127
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.140019270
lea rdx, str.Vendor:
mov rcx, rax
call fcn.140018e90
mov rcx, rax
mov rdx, rdi
call fcn.140018e90
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140019760
movzx edx, ax
mov rcx, rbx
call fcn.1400195a0
mov rcx, rbx
call fcn.14001a220
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.14008ba98
mov rsi, rax
mov r8d, edi
xor edx, edx
mov rcx, rax
call fcn.14022f840
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 0x140033236
movzx eax, byte [rsi + 0x18]
mov byte [r12 + 0x18], al
mov rcx, rsi
call fcn.14008ba90
mov edx, ebx
lea rcx, [r12 + 0x10]
call fcn.1400337c0
lea r14, vtable.ATL::CAtlStringMgr.0
test eax, eax
js 0x140033415
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.140006378
mov rbx, qword [rsp + 0x48]
cmp dword [rbx - 0x10], 0
jle 0x1400333c2
mov edx, 0x20
mov rcx, rbx
call fcn.14022f308
mov rdi, rax
test rax, rax
je 0x1400333bd
sub rdi, rbx
sar rdi, 1
test edi, edi
jle 0x1400333bd
mov r8d, edi
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x48]
call fcn.1400336f0
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 0x14003332c
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140033624
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rsi, vtable.ATL::CWin32Heap.0
cmp rax, rsi
jne 0x140033624
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.140015540
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 0x1400333bd
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140033639
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rbx, vtable.ATL::CWin32Heap.0
cmp rax, rbx
jne 0x14003362c
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [rsp + 0x58]
jmp 0x1400333c9
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 0x140033415
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140033641
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbx
jne 0x140033641
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 0x1400334ae
add rcx, 0xffffffffffffffe8
call fcn.140002c94
lea rbx, [rax + 0x18]
mov qword [rbp - 0x60], rbx
cmp dword [rbx - 0x10], 0
jl 0x14003345e
lea rdx, [0x1402f3480]
mov rcx, rbx
call fcn.14022ee58
test rax, rax
je 0x14003345e
sub rax, rbx
sar rax, 1
test eax, eax
js 0x14003345e
mov byte [r12 + 0x22], 1
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400334ae
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, r14
jne 0x140033651
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea rsi, vtable.ATL::CWin32Heap.0
cmp rax, rsi
jne 0x140033649
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400334b5
lea rsi, vtable.ATL::CWin32Heap.0
mov rcx, r15
call fcn.14008ba90
mov r14d, 1
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
sub r13d, r14d
jg 0x140033514
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
lea r9, vtable.ATL::CAtlStringMgr.0
cmp rax, r9
jne 0x140033586
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rsi
jne 0x140033586
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 0x140033542
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.14001a370
movzx eax, r14b
mov rcx, qword [rbp + 0xd98]
xor rcx, rsp
call fcn.14022aa20
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 0x140033514
call fcn.140231e34
nop
call fcn.140231e34
nop
call fcn.140231e34
nop
mov r8d, 0x80
lea rdx, [rbp + 0x7f8]
mov rcx, qword [rbp + 0x7f0]
call fcn.1400188f0
call fcn.140008560
int3
mov r8d, 0x80
lea rdx, [rbp + 0x908]
mov rcx, qword [rbp + 0x900]
call fcn.1400188f0
call fcn.140008560
nop
call fcn.140231e34
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 0x14003332c
call r8
mov rdi, qword [rsp + 0x58]
jmp 0x1400333c9
call r8
jmp 0x1400333bd
call r8
jmp 0x140033415
call r8
jmp 0x1400334b5
call r8
jmp 0x1400334ae