Function at 0x14008bcd4
Capabilities:
Get storage device properties

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x558
mov rsi, rcx
lea rdi, [0x14013e190]
mov ebp, r9d
mov rcx, rdi
mov r13, r8
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, ebp
mov ecx, 0x100
and r11b, 4
mov r15d, 1
mov edx, 0x20f970
neg r11b
sbb al, al
xor r14d, r14d
and al, 0x2a
mov dword [rsp + 0x5c], r14d
mov byte [rsp + 0x52], al
mov al, bpl
and al, 0x40
mov byte [rsp + 0x53], al
movzx eax, bp
and ax, cx
mov ecx, 0x200
mov word [rsp + 0xa4], ax
movzx eax, bp
and ax, cx
lea rcx, [rsp + 0x88]
mov word [rsp + 0x74], ax
mov eax, ebp
shr eax, 0xb
and ax, r15w
mov dword [rsp + 0x70], eax
call fcn.1400633a8
mov r11, qword [rsi]
movzx ebx, word [r11]
lea eax, [rbx - 0x61]
cmp ax, 0x19
ja 0x14008bd96
mov eax, 0xffe0
add bx, ax
mov r12d, ebp
and r12d, 0x80
jne 0x14008bdaf
mov edx, 0x12c
mov rcx, rsi
call fcn.140063720
mov rax, qword [rsi]
mov rsi, qword [rsp + 0x88]
mov ecx, r15d
mov word [rax], r14w
mov eax, ebp
mov r9d, 4
and eax, 0x28
lea r15, [rsi + 0x20c010]
cmp al, 0x28
mov qword [rsp + 0xc0], r15
cmove ecx, r9d
cmp r13, r14
jg 0x14008be08
xor r13d, r13d
cmp bx, r13w
jne 0x14008be0b
xor edx, edx
mov r8d, 0x3960
mov rcx, r15
call fcn.140102a90
mov dword [r15], 0xfffffffe
jmp 0x14008be21
xor r13d, r13d
movzx r8d, bx
mov rdx, rsi
shl r8d, 0x10
or r8d, ecx
mov rcx, r15
call fcn.140076b88
lea rcx, [rsp + 0x80]
mov r14d, r13d
mov dword [rsp + 0x78], r13d
mov word [rsp + 0x58], r13w
call fcn.140063620
mov rdx, qword [rsp + 0x5a8]
mov r9d, 0x20
test bpl, 8
je 0x14008c004
cmp rdx, 0x7fff
jg 0x14008c004
lea r8d, [r9 - 0x1f]
mov word [rsp + 0x58], bx
mov r14d, r8d
mov dword [rsp + 0x78], r8d
cmp bx, r13w
je 0x14008be92
lea rdx, [rsp + 0x80]
movzx ecx, bx
call fcn.140060000
mov r8d, 1
lea r9d, [r8 + 0x1f]
movzx ecx, r13w
movzx edx, bx
movsx rax, cx
imul rax, rax, 0x220
cmp dword [rax + r15 + 0x10], edx
je 0x14008beb5
add cx, r8w
cmp cx, 0x1a
jl 0x14008be99
cmp cx, 0x1a
mov r13, 0xffffffffffffffb3
mov rdx, r13
mov qword [rsp + 0x5b0], r13
mov qword [rsp + 0x5a8], rdx
jl 0x14008bede
or r15, 0xffffffffffffffff
jmp 0x14008bfbd
movsx rbp, cx
xor ecx, ecx
imul rbp, rbp, 0x220
movsxd rax, dword [r15 + rbp + 4]
cmp eax, ecx
jl 0x14008bf0b
movsxd r13, dword [r15 + rbp]
mov rdx, rax
mov qword [rsp + 0x5a8], rax
mov qword [rsp + 0x5b0], r13
cmp r12d, ecx
je 0x14008bf48
mov rbx, qword [rsp + 0x5a0]
mov rcx, qword [rbx]
mov qword [rcx], rdx
mov qword [rcx + 8], r13
movsxd rax, dword [r15 + rbp + 8]
mov qword [rcx + 0x10], rax
movsxd rax, dword [r15 + rbp + 0xc]
mov qword [rcx + 0x18], rax
movsxd rax, dword [r15 + rbp + 0x10]
mov qword [rcx + 0x20], rax
movsxd rax, dword [r15 + rbp + 0x14]
mov qword [rcx + 0x28], rax
jmp 0x14008bfb7
test byte [rsp + 0x5b8], r9b
je 0x14008bfe8
mov rbx, qword [rsp + 0x5a0]
mov ecx, dword [r15 + rbp + 8]
or r8d, 0xffffffff
mov rbx, qword [rbx]
mov rsi, r15
lea rdx, [rbx + 0xc8]
call fcn.14005ff30
mov r8, qword [rsp + 0x5a8]
lea rdx, str._d__d__s__d__c:__d
mov r11, rax
mov eax, dword [r15 + rbp + 0x14]
mov r9, r13
mov dword [rsp + 0x38], eax
mov eax, dword [r15 + rbp + 0x10]
mov rcx, rbx
mov dword [rsp + 0x30], eax
mov eax, dword [r15 + rbp + 0xc]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r11
call qword [sym.imp.USER32.dll_wsprintfW]
mov r15d, 3
lea rcx, [rsp + 0x80]
call fcn.14005b104
lea rcx, [rsp + 0x88]
call fcn.14005b104
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, r15
jmp 0x14008cfe8
xor r13d, r13d
cmp rdx, r13
jge 0x14008c004
lea r14d, [r13 + 0x11]
mov rdx, r13
mov dword [rsp + 0x78], r14d
mov qword [rsp + 0x5a8], rdx
or r15, 0xffffffffffffffff
cmp rdx, 0x7fff
jbe 0x14008c016
mov rbp, rdx
jmp 0x14008c036
mov r8, rdx
lea rcx, [rsp + 0x1a0]
lea rdx, str..PhysicalDrive_d
lea rbp, [rsp + 0x1a0]
call qword [sym.imp.USER32.dll_wsprintfW]
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x30], 0x22000000
lea rcx, [rsp + 0x68]
mov r9d, 3
mov r8d, 0x80000000
mov rdx, rbp
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x20], r13
call fcn.140003864
mov rbx, qword [rsp + 0x68]
cmp rbx, r13
jne 0x14008c0d3
test r14b, 0x10
je 0x14008c09e
mov rdx, qword [rsp + 0x5a8]
inc rdx
cmp rdx, 0x3e80
mov qword [rsp + 0x5a8], rdx
jl 0x14008c016
movsxd rbx, dword [rsp + 0x5c]
lea rcx, [rsp + 0x80]
call fcn.14005b104
lea rcx, [rsp + 0x88]
call fcn.14005b104
cmp rdi, r13
je 0x14008c0cb
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, rbx
jmp 0x14008cfe8
xor eax, eax
mov qword [rsp + 0x38], r13
lea r8, [rsp + 0xd0]
lea ecx, [rax + 0x28]
mov dword [rsp + 0xd0], eax
mov dword [rsp + 0xd4], eax
mov dword [rsp + 0xd8], eax
lea rax, [rsp + 0xc8]
lea r9d, [rcx - 0x1c]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ecx
lea rax, [rsp + 0x178]
mov dword [rsp + 0xc8], ecx
mov edx, 0x2d1400
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov dword [rsp + 0xd0], r13d
mov r12d, 0xfffffc18
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, r13d
je 0x14008c14f
movzx r12d, byte [rsp + 0x180]
jmp 0x14008c157
mov byte [rsp + 0x180], 0x85
mov edx, 0x200
mov rcx, rbx
call fcn.14005f96c
xor r14d, r14d
movsxd r13, eax
mov dword [rsp + 0x90], r13d
cmp byte [0x14013ccb1], r14b
je 0x14008c1a5
movzx ecx, word [rsp + 0x58]
mov dword [rsp + 0x28], r12d
lea rdx, str.DBG__d:_disk__s_Drv:_0x_X__DT:_d_r_n
mov dword [rsp + 0x20], ecx
lea rcx, [0x14013d130]
mov r9, rbp
mov r8d, 0x3a7b
call fcn.140018d8c
lea r8, [rsp + 0x54]
mov rdx, rsi
mov rcx, rbx
mov dword [rsp + 0x54], r14d
call fcn.14005feac
xor r9d, r9d
mov rbp, rax
cmp rax, r9
je 0x14008cfaa
mov r12d, dword [rax]
lea rcx, [rsi + 0x200010]
mov dword [rsp + 0xa8], r9d
lea rax, [rcx + r13*2]
cmp r12d, 1
mov dword [rsp + 0xa0], r12d
mov qword [rsp + 0xb8], rax
sete al
mov byte [rsp + 0x50], al
cmp al, r9b
je 0x14008c230
mov r14d, dword [rbp + 0x28]
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x28], r9
mov rdx, rcx
mov qword [rsp + 0x20], r9
lea rcx, [rsp + 0x68]
mov r8d, r14d
mov r9d, r13d
mov dword [rsp + 0xa8], r14d
call fcn.140069868
xor r9d, r9d
mov r10d, dword [rsp + 0x54]
add rbp, 0x30
mov dword [rsp + 0x60], r10d
mov qword [rsp + 0x68], rbp
cmp r12d, r9d
jne 0x14008c28f
mov eax, 4
cmp r10d, eax
jne 0x14008c28f
mov al, byte [rsp + 0x5d0]
cmp al, byte [rbp + 0x20]
jne 0x14008c28f
cmp byte [rbp + 0xb0], r9b
jne 0x14008c28f
cmp byte [rbp + 0x140], r9b
jne 0x14008c28f
cmp byte [rbp + 0x1d0], r9b
jne 0x14008c28f
mov rdx, rbx
xor ecx, ecx
call fcn.140065efc
cmp eax, 7
jne 0x14008c5dc
xor r9d, r9d
cmp dword [rsp + 0x60], r9d
mov r8b, r15b
mov byte [rsp + 0x51], r15b
mov dword [rsp + 0x54], r15d
mov r14, r9
mov r10, r9
mov qword [rsp + 0x98], r9
mov r12, r9
mov r13d, r9d
jle 0x14008c405
mov al, byte [rsp + 0x50]
add rbp, 8
cmp al, r9b
jne 0x14008c32c
cmp byte [rbp + 0x18], 0x42
jne 0x14008c30d
mov r11, qword [rsp + 0x68]
mov dword [rsp + 0x28], r9d
movsx r8d, al
mov rdx, r11
and r8d, 1
mov r9, r14
mov rcx, rbx
or r8d, dword [rsp + 0x90]
mov qword [rsp + 0x20], r10
call fcn.140069d18
xor r9d, r9d
cmp eax, 0xffffff00
jg 0x14008c3d4
mov al, byte [rsp + 0x50]
inc r13d
add rbp, 0x90
cmp r13d, dword [rsp + 0x60]
jge 0x14008c3fd
mov r10, qword [rsp + 0x98]
jmp 0x14008c2c3
mov r11, qword [rsp + 0x68]
movsxd rax, r13d
lea rdx, [0x140124d10]
lea rcx, [rax + rax*8]
mov r8d, 0x10
add rcx, rcx
lea r9, [r11 + rcx*8 + 0x20]
mov rcx, r9
call fcn.14005b184
xor ecx, ecx
cmp eax, ecx
jne 0x14008c37a
movsxd rdx, dword [rsp + 0x90]
mov rax, qword [rbp]
mov r12, qword [rbp + 8]
sub r12, rdx
lea r14, [rdx + rax]
mov rcx, rdx
xor r9d, r9d
jmp 0x14008c3b6
lea rdx, [0x140124d20]
mov r8d, 0x10
mov rcx, r9
call fcn.14005b184
xor r9d, r9d
cmp eax, r9d
jne 0x14008c3b6
movsxd r8, dword [rsp + 0x90]
mov rax, qword [rbp]
cqo
mov rcx, r8
idiv r8
mov r10, rax
mov qword [rsp + 0x98], rax
cmp r14, r9
je 0x14008c309
mov al, byte [rsp + 0x50]
cmp r10, r9
je 0x14008c30d
mov qword [r11], r12
jmp 0x14008c2d3
mov r8b, byte [rsp + 0xa0]
or byte [rsp + 0x50], 0x10
cmp eax, r9d
mov byte [rsp + 0x51], r8b
jle 0x14008c544
mov rbp, qword [rsp + 0x68]
mov r12d, eax
mov dword [rsp + 0x60], eax
jmp 0x14008c40a
mov rbp, qword [rsp + 0x68]
mov r8b, r15b
mov r12d, dword [rsp + 0x60]
cmp r8b, r9b
movzx eax, word [rbp + 0x100000]
lea rax, [rbp + rax*2 + 0x100000]
mov qword [rsp + 0xe0], rax
jl 0x14008c4e2
movzx r13d, word [rsp + 0x58]
cmp r13w, r9w
je 0x14008c4e2
lea rcx, [rsp + 0xb0]
call fcn.140063620
xor r14d, r14d
cmp r12d, r14d
mov ebp, r14d
jle 0x14008c4c8
mov r12, qword [rsp + 0x68]
movsxd rax, ebp
lea rdx, [rsp + 0xb0]
xor r8d, r8d
lea rcx, [rax + rax*8]
add rcx, rcx
lea rcx, [r12 + rcx*8 + 0x30]
call fcn.14008b820
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
cmp eax, r14d
je 0x14008c4a3
inc ebp
cmp ebp, dword [rsp + 0x60]
jl 0x14008c457
mov rbp, r12
mov r12d, dword [rsp + 0x60]
jmp 0x14008c4cd
movsxd rax, ebp
mov rbp, r12
lea rcx, [rax + rax*8]
movzx eax, r13w
add rcx, rcx
mov edx, dword [r12 + rcx*8 + 0x18]
mov qword [r12 + rcx*8 + 0x40], rax
mov qword [rsp + 0x5b0], rdx
jmp 0x14008c49c
mov rbp, qword [rsp + 0x68]
lea rcx, [rsp + 0xb0]
call fcn.14005b104
mov r8b, byte [rsp + 0x51]
xor r9d, r9d
mov r14d, dword [rsp + 0x78]
test r14b, 0x10
je 0x14008c54c
cmp r8b, r9b
jl 0x14008c4ff
mov r13, qword [rsp + 0x5b0]
cmp r13, r9
jge 0x14008c554
mov rdx, qword [rsp + 0x5a8]
inc rdx
cmp rdx, 0x3e80
mov qword [rsp + 0x5a8], rdx
jge 0x14008c5dc
mov r13d, 0
cmp rbx, r15
je 0x14008c016
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, qword [rsp + 0x5a8]
jmp 0x14008c016
movsxd rsi, eax
jmp 0x14008cfad
mov r13, qword [rsp + 0x5b0]
mov eax, dword [rsp + 0x5b8]
mov cl, byte [rsp + 0x50]
mov r10d, 1
test al, 2
je 0x14008c582
test r10b, cl
je 0x14008c582
cmp r13, r9
jle 0x14008c582
cmp r8b, r9b
jl 0x14008c582
and eax, 0xfffffffd
mov dword [rsp + 0x5b8], eax
mov edx, eax
and edx, 2
mov dword [rsp + 0xb0], edx
je 0x14008c5e6
cmp cl, r9b
jne 0x14008c5b3
mov eax, 4
cmp r13d, eax
jg 0x14008c5a9
lea eax, [r13 - 1]
mov dword [rsp + 0x54], eax
jmp 0x14008c5d2
lea eax, [r13*4 - 0x10]
jmp 0x14008c5a3
test cl, 0x10
jne 0x14008c5c0
cmp word [rsp + 0x74], r9w
je 0x14008c5ca
lea eax, [r13 - 1]
mov dword [rsp + 0x54], eax
jmp 0x14008c5cd
mov eax, r15d
cmp cl, r10b
je 0x14008c5e9
cmp r13, r9
jle 0x14008c5ee
cmp eax, r12d
jb 0x14008c5e9
movsxd rsi, dword [rsp + 0x5c]
jmp 0x14008cfad
mov eax, r15d
cmp r13, r9
jg 0x14008c5fd
mov r13, 0xffffffffff800000
mov qword [rsp + 0x5b0], r13
cmp edx, r9d
je 0x14008c6e5
cmp cl, r9b
je 0x14008c619
cmp r8b, r9b
jl 0x14008c619
cmp r13, r9
jg 0x14008c8a0
test r10b, cl
je 0x14008c6e5
cmp r8b, r9b
jge 0x14008c6e5
cmp r13, r9
lea ecx, [r13 - 1]
jle 0x14008c5dc
movsxd rax, dword [rsp + 0xa8]
cmp r13, rax
jg 0x14008c5dc
movsxd r14, dword [rsp + 0x90]
movsxd rsi, ecx
mov rcx, qword [rsp + 0xb8]
shl rsi, 7
mov r8d, r12d
mov rdx, rbp
add rsi, rcx
mov r9d, r14d
mov dword [rsp + 0x20], r10d
mov rcx, rsi
call fcn.140069704
xor r9d, r9d
cmp eax, r9d
mov r12d, eax
jge 0x14008c8a5
lea rcx, [rbp + 0x20]
lea r8d, [r9 + 0x10]
mov rdx, rsi
mov r12d, r9d
call fcn.14001d78c
lea rdx, [rsi + 0x10]
lea rcx, [rbp + 0x30]
mov r8d, 0x10
call fcn.14001d78c
mov r11, qword [rsi + 0x30]
mov rdx, qword [rsp + 0xb8]
mov qword [rbp + 0x40], r11
mov rax, r14
imul rax, qword [rdx + 0x20]
mov qword [rbp + 8], rax
mov rax, qword [rdx + 0x28]
sub rax, qword [rdx + 0x20]
inc rax
imul rax, r14
mov qword [rbp + 0x10], rax
mov eax, r13d
neg eax
xor r9d, r9d
mov dword [rbp + 0x18], eax
jmp 0x14008c8a5
cmp r12d, r9d
cdqe
mov ebp, r9d
mov qword [rsp + 0x98], rax
jle 0x14008c85c
mov rsi, qword [rsp + 0x68]
add rsi, 0x18
cmp rax, r9
movzx r12d, byte [rsi + 8]
movsx r14, word [rsi]
mov dword [rsp + 0x78], r12d
mov dword [rsp + 0xa0], r14d
jge 0x14008c8a0
cmp r13, r9
jle 0x14008c739
mov rax, r14
cmp r13, r14
je 0x14008c8d0
jmp 0x14008c83c
cmp cl, r9b
jne 0x14008c7f6
mov rcx, r14
mov r8d, 4
cmp r13, r14
je 0x14008c76d
cmp r12d, r9d
jne 0x14008c76d
cmp ebp, r8d
jl 0x14008c76d
mov eax, ebp
cdq
and edx, 3
add eax, edx
and eax, 3
sub eax, edx
jne 0x14008c83c
cmp r12d, 5
je 0x14008c77c
mov al, r9b
cmp r12d, 0xf
jne 0x14008c77f
mov al, r10b
cmp r13, rcx
je 0x14008c792
cmp al, r9b
je 0x14008c792
cmp ebp, r8d
jge 0x14008c83c
cmp r12d, r9d
jne 0x14008c7bb
cmp ebp, 3
jg 0x14008c7a1
lea eax, [rbp + 1]
jmp 0x14008c7af
mov eax, ebp
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, r8d
mov r8d, eax
lea rdx, str.___2d
jmp 0x14008c80b
cmp al, r9b
je 0x14008c7cd
lea r8d, [rbp + 1]
lea rdx, [0x140127910]
jmp 0x14008c80b
cmp r14d, r9d
jg 0x14008c801
cmp ebp, 3
jg 0x14008c7dc
lea eax, [rbp + 1]
jmp 0x14008c7ea
mov eax, ebp
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, r8d
mov r8d, eax
lea rdx, str.__2d
jmp 0x14008c80b
cmp r14d, r9d
jg 0x14008c801
lea r8d, [rbp + 1]
jmp 0x14008c7ed
lea rdx, str.__3d
mov r8d, r14d
lea rcx, [rsp + 0x1a0]
call qword [sym.imp.USER32.dll_wsprintfW]
mov rcx, qword [rsp + 0x5a0]
lea rdx, [rsp + 0x1a0]
call fcn.14006375c
mov r10d, 1
add dword [rsp + 0x5c], r10d
xor r9d, r9d
mov rax, qword [rsp + 0x98]
mov cl, byte [rsp + 0x50]
add ebp, r10d
add rsi, 0x90
cmp ebp, dword [rsp + 0x60]
jl 0x14008c704
cmp word [rsp + 0x74], r9w
je 0x14008cf95
cmp rbx, r15
je 0x14008c876
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x80]
call fcn.14005b104
lea rcx, [rsp + 0x88]
call fcn.14005b104
xor ecx, ecx
cmp rdi, rcx
je 0x14008bfe0
jmp 0x14008bfd7
mov r12d, dword [rsp + 0x54]
movsxd rax, r12d
mov ebp, r12d
lea rcx, [rax + rax*8]
mov rax, qword [rsp + 0x68]
add rcx, rcx
movzx r12d, byte [rax + rcx*8 + 0x20]
movsx r14d, word [rax + rcx*8 + 0x18]
mov dword [rsp + 0x78], r12d
mov dword [rsp + 0xa0], r14d
cmp word [rsp + 0x74], r9w
je 0x14008c8e0
movsxd rsi, r14d
jmp 0x14008cfad
mov rsi, qword [rsp + 0x5a0]
mov edx, 0x12c
mov rcx, rsi
call fcn.140063720
cmp r12d, 5
je 0x14008c907
cmp r12d, 0xf
je 0x14008c907
xor ecx, ecx
mov al, cl
jmp 0x14008c90b
mov al, 1
xor ecx, ecx
cmp byte [rsp + 0x50], cl
jne 0x14008c94f
cmp r12d, ecx
jne 0x14008c93b
lea rax, [0x1401278e0]
lea rdx, str.___2ld
cmp word [rsp + 0x70], cx
mov rcx, qword [rsi]
mov r8, r13
cmovne rdx, rax
call qword [sym.imp.USER32.dll_wsprintfW]
jmp 0x14008c972
cmp al, cl
je 0x14008c94f
lea rax, [0x1401278c0]
lea rdx, [0x1401278b0]
jmp 0x14008c924
cmp word [rsp + 0x70], cx
mov rcx, qword [rsi]
lea rax, [0x14011d8a0]
lea rdx, [0x1401278a0]
mov r8d, r14d
cmovne rdx, rax
call qword [sym.imp.USER32.dll_wsprintfW]
mov r12, qword [rsp + 0x68]
xor r14d, r14d
mov r13d, eax
mov qword [rsp + 0x98], r15
mov dword [rsp + 0x150], r14d
cmp byte [rsp + 0x53], r14b
je 0x14008ca08
mov r8d, r14d
movsxd rax, ebp
lea rsi, [rax + rax*8]
add rsi, rsi
cmp qword [r12 + rsi*8 + 0x10], 0x200
setle r8b
cmp r8d, r14d
jne 0x14008c9f3
lea r8, [rsp + 0x98]
lea rdx, [rsp + 0x70]
mov rcx, rbx
call fcn.140078514
cmp rax, r14
jle 0x14008c9d4
cmp qword [r12 + rsi*8 + 8], rax
je 0x14008c9e8
mov rax, qword [rsp + 0x98]
cmp rax, r14
jle 0x14008c9f0
cmp qword [r12 + rsi*8 + 8], rax
jne 0x14008c9f0
mov r8d, 1
jmp 0x14008c9f3
mov r8d, r14d
lea rdx, [0x140127898]
lea rcx, [rsp + 0x150]
call qword [sym.imp.USER32.dll_wsprintfW]
movsxd rax, ebp
lea rcx, [rax + rax*8]
shl rcx, 4
add r12, rcx
lea rcx, [rsp + 0x2e0]
mov rdx, qword [r12 + 8]
call fcn.1400e6d68
mov rdx, qword [r12 + 0x10]
lea rcx, [rsp + 0x3e0]
call fcn.1400e6d68
mov rdx, qword [r12 + 8]
lea rcx, [rsp + 0x4d0]
add rdx, qword [r12 + 0x10]
call fcn.1400e6d68
mov eax, dword [rsp + 0x5b8]
mov r14b, byte [rsp + 0x51]
mov r8d, 1
lea r11, str.__4d__3d__14s__14s__11d__14s_s_s
lea rcx, str._0x_02X__3d__14s__14s__11d__14s_s_s
and eax, r8d
lea rsi, [0x14011d068]
cmove rcx, r11
xor edx, edx
cmp eax, edx
mov qword [rsp + 0x68], rcx
lea rcx, str.0x_02X
cmovne rsi, rcx
cmp r14b, dl
jl 0x14008caaf
lea rdx, [0x1401277e8]
lea rcx, [rsp + 0x360]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x14008cad1
mov al, byte [rsp + 0x50]
cmp al, r8b
jne 0x14008cadd
mov rdx, qword [r12 + 0x40]
lea r8, str._016I64X
lea rcx, [rsp + 0x360]
call fcn.1400e6d38
mov al, byte [rsp + 0x50]
mov r8d, 1
xor edx, edx
cmp r14b, dl
jl 0x14008cafb
movzx r8d, byte [r12 + 0x20]
lea rcx, [rsp + 0x270]
mov rdx, rsi
call qword [sym.imp.USER32.dll_wsprintfW]
jmp 0x14008cb15
cmp al, r8b
jne 0x14008cb1d
lea rdx, [r12 + 0x20]
lea rcx, [rsp + 0x270]
xor r8d, r8d
call fcn.14005fc90
mov r8d, 1
xor edx, edx
mov ax, word [rsp + 0xa4]
mov r14d, edx
mov word [rsp + 0x100], dx
cmp ax, dx
je 0x14008cb70
mov ecx, 0x20
mov word [rsp + 0x106], dx
lea r9d, [rcx + 0xa]
mov word [rsp + 0x100], cx
mov word [rsp + 0x104], cx
mov word [rsp + 0x102], r9w
cmp byte [rsp + 0x53], dl
jne 0x14008cb70
mov word [rsp + 0x104], dx
mov r14d, r8d
cmp byte [rsp + 0x51], dl
jl 0x14008cc03
cmp ax, dx
je 0x14008cc03
lea rcx, [rsp + 0x98]
mov r14d, edx
call fcn.140063620
lea rsi, [r12 + 0x30]
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0xe8]
mov r8d, 2
movdqu xmm0, xmmword [rsi]
movdqu xmmword [rsp + 0xe8], xmm0
call fcn.14008b820
lea rcx, [rsp + 0xe8]
mov r8d, 0x10
mov rdx, rsi
call fcn.14005b184
xor ecx, ecx
cmp eax, ecx
je 0x14008cbf4
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x102]
xor r8d, r8d
call fcn.14005fc90
lea rcx, [rsp + 0x98]
call fcn.14005b104
xor edx, edx
mov sil, byte [rsp + 0x50]
cmp sil, dl
je 0x14008cc24
lea rdx, [r12 + 0x30]
lea rcx, [rsp + 0x460]
xor r8d, r8d
call fcn.14005fc90
xor edx, edx
mov al, sil
lea r8, [0x140120950]
lea r9, [0x140127740]
and al, 1
cmp sil, dl
lea rcx, [0x140127738]
cmovne r9, r8
cmp al, dl
cmovne r9, rcx
cmp sil, 0x10
jne 0x14008cc64
cmp byte [r12 + 0x21], dl
lea rax, [0x1401215e8]
mov r9, r8
cmovne r9, rax
mov rax, qword [rsp + 0x5a0]
movsxd rcx, r13d
mov rax, qword [rax]
lea rcx, [rax + rcx*2]
lea rax, [rsp + 0x150]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x40], rax
cmp sil, dl
jne 0x14008cce0
mov r13d, dword [rsp + 0x78]
movzx r9d, byte [r12 + 0x21]
mov rdx, qword [rsp + 0x68]
lea rax, [rsp + 0x4d0]
mov r8d, r13d
mov qword [rsp + 0x38], rax
mov eax, dword [r12 + 0x24]
mov dword [rsp + 0x30], eax
lea rax, [rsp + 0x3e0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x2e0]
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_wsprintfW]
jmp 0x14008cd2e
lea rax, [rsp + 0x460]
lea r8, [rsp + 0x270]
lea rdx, str.__s__s__14s__14s__s__s_s_s
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x360]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x3e0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x2e0]
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_wsprintfW]
mov r13d, dword [rsp + 0x78]
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x5a0]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test byte [rsp + 0x5b8], 0x10
movsxd rsi, eax
je 0x14008ce06
xor r8d, r8d
cmp byte [rsp + 0x51], r8b
jl 0x14008cd68
mov rdx, qword [rsp + 0x5b0]
jmp 0x14008cdc1
cmp byte [rsp + 0x50], r8b
je 0x14008cda6
cmp dword [rsp + 0xb0], r8d
jne 0x14008cd5e
mov r9d, dword [rsp + 0x90]
mov r8d, dword [rsp + 0xa8]
mov rdx, qword [rsp + 0xb8]
mov rcx, r12
mov dword [rsp + 0x20], 1
call fcn.1400695a8
xor r8d, r8d
jmp 0x14008cdbe
cmp ebp, 3
jg 0x14008cdb0
lea eax, [rbp + 1]
jmp 0x14008cdbe
mov eax, ebp
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 4
mov dx, ax
cmp r14d, r8d
je 0x14008cde1
mov rax, qword [rsp + 0x5a0]
mov r9d, 0x20
mov r14d, r8d
mov rax, qword [rax]
mov word [rax + rsi*2], r9w
inc esi
movsxd rcx, esi
mov rsi, qword [rsp + 0x5a0]
movzx r8d, dx
mov rax, qword [rsi]
lea rdx, str.__3u
lea rcx, [rax + rcx*2]
call qword [sym.imp.USER32.dll_wsprintfW]
jmp 0x14008ce0e
mov rsi, qword [rsp + 0x5a0]
mov rcx, qword [rsp + 0x5c0]
xor edx, edx
cmp rcx, rdx
je 0x14008ce25
mov rax, qword [r12 + 8]
mov qword [rcx], rax
mov rax, qword [rsp + 0x5c8]
cmp rax, rdx
je 0x14008ce35
mov dword [rax], r13d
mov rsi, qword [rsi]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
lea rsi, [rsi + rcx*2]
xor ecx, ecx
cmp byte [rsp + 0x51], cl
lea r13, [rsi + 2]
mov rbp, rsi
mov word [r13], cx
jl 0x14008cf02
mov ax, word [rsp + 0x58]
cmp ax, cx
je 0x14008ceb5
mov edx, 0x20
cmp r14d, ecx
je 0x14008ce7a
mov word [rsi], dx
mov rsi, r13
mov word [rsi], dx
mov word [rsi + 2], ax
mov eax, 0x3a
mov word [rsi + 4], ax
add rsi, 6
mov word [rsi], cx
mov r12, qword [rsp + 0x5a8]
mov r13b, byte [rsp + 0x52]
cmp word [rbp], cx
jne 0x14008cf71
movsx eax, r13b
mov word [rbp], ax
jmp 0x14008cf8e
cmp qword [r12 + 0x10], rcx
je 0x14008ce91
movzx r8d, word [r12 + 0x22]
mov rcx, qword [rsp + 0xe0]
lea rdx, [0x140127780]
call qword [sym.imp.USER32.dll_wsprintfW]
mov r9, qword [rsp + 0xe0]
movzx r8d, word [r12 + 0x40]
mov rdx, qword [rsp + 0xc0]
lea rcx, [r12 + 0x30]
call fcn.14008ba90
xor ecx, ecx
cmp eax, ecx
jle 0x14008ce91
jmp 0x14008ce6a
mov r12, qword [rsp + 0x5a8]
cmp r12d, ecx
jl 0x14008ce99
mov eax, 0x20
cmp r14d, ecx
je 0x14008cf1f
mov word [rsi], ax
mov rsi, r13
mov r13b, byte [rsp + 0x52]
movsxd r8, dword [rsp + 0xa0]
mov r9, qword [rsp + 0xc0]
mov word [rsi], ax
add rsi, 2
mov qword [rsp + 0x30], rcx
cmp r13b, cl
mov word [rsi], cx
mov word [rsi + 2], cx
mov qword [rsp + 0x28], 1
mov qword [rsp + 0x20], rcx
mov rdx, r12
mov rcx, rsi
cmovne rbp, rsi
call fcn.140077190
xor ecx, ecx
mov rsi, rax
jmp 0x14008ce9e
test byte [rsp + 0x5b8], 8
je 0x14008cf8e
lea rdx, [0x140127770]
mov r8, r12
mov rcx, rsi
call qword [sym.imp.USER32.dll_wsprintfW]
movsxd rsi, dword [rsp + 0x70]
jmp 0x14008cfad
mov rax, qword [rsp + 0x5a0]
mov rcx, qword [rax]
call fcn.140018b70
jmp 0x14008c5dc
movsxd rsi, r9d
cmp rbx, r15
je 0x14008cfbb
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x80]
call fcn.14005b104
lea rcx, [rsp + 0x88]
call fcn.14005b104
xor ecx, ecx
cmp rdi, rcx
je 0x14008cfe5
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, rsi
add rsp, 0x558
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret