Function at 0x14012df20
Capabilities:
Manipulate boot configuration
Read .ini file
Set socket configuration

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0x220
mov qword [rsp + 0x1c8], 0xfffffffffffffffe
mov rax, qword [0x1402aa5c0]
xor rax, rsp
mov qword [rsp + 0x218], rax
mov rax, qword [rsp + 0x240]
mov rax, qword [rax]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x38]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x18]
shr rax, 0x20
mov byte [rsp + 0x48], al
mov rax, qword [rsp + 0x60]
add rax, 4
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x238]
mov ecx, dword [rax + 0x88]
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax]
cmp rcx, rax
jae 0x14012dfb7
mov eax, 0xffffffff
jmp 0x14012fd8d
mov rax, qword [rsp + 0x238]
cmp dword [rax + 0xc], 0
jl 0x14012e011
mov rcx, qword [rsp + 0x238]
mov rax, qword [rsp + 0x238]
mov eax, dword [rax + 0x3b8]
cmp dword [rcx + 0xc], eax
jge 0x14012e011
movzx edx, byte [rsp + 0x48]
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
cmp rdx, qword [rax + rcx + 0x108]
jb 0x14012e07f
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x58]
movzx r8d, byte [rax]
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.1400a87c0
mov r11, qword [rsp + 0x78]
mov byte [r11], 0x1f
mov rax, qword [rsp + 0x78]
movzx ecx, byte [rax]
or ecx, 0x60
mov rax, qword [rsp + 0x78]
mov byte [rax], cl
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
mov rax, qword [rsp + 0x60]
movzx ecx, byte [rax + 4]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], ecx
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
xor eax, eax
jmp 0x14012fd8d
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov dword [rsp + 0x1d0], eax
cmp dword [rsp + 0x1d0], 0xa0
ja case.0x14012e0c0.1
movsxd rax, dword [rsp + 0x1d0]
lea rcx, [0x140000000]
movzx eax, byte [rcx + rax + 0x12fe0c]
mov eax, dword [rcx + rax*4 + 0x12fda8]
add rax, rcx
jmp rax
lea rax, str.TEST_UNIT_READY_n
mov qword [rsp + 0x20], rax
mov r9d, 0x11e7
lea r8, [0x140236620]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 1
test eax, eax
je 0x14012e129
lea rax, str._for_Vital_Product_Data
mov qword [rsp + 0x1d8], rax
jmp 0x14012e138
lea rax, [0x140217fa6]
mov qword [rsp + 0x1d8], rax
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0x28], rax
lea rax, str.INQUIRY_s_n
mov qword [rsp + 0x20], rax
mov r9d, 0x128b
lea r8, [0x140236668]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
mov rax, qword [rsp + 0x58]
movzx r8d, byte [rax]
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.1400a87c0
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 1
test eax, eax
je 0x14012e6ab
mov rax, qword [rsp + 0x78]
add rax, 3
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x60]
mov al, byte [rax + 2]
mov byte [rsp + 0x1e0], al
cmp byte [rsp + 0x1e0], 0
je 0x14012e5db
cmp byte [rsp + 0x1e0], 0x80
je 0x14012e1f8
cmp byte [rsp + 0x1e0], 0x83
je 0x14012e3af
jmp 0x14012e66e
mov rax, qword [rsp + 0x78]
mov byte [rax], 0
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
cmp qword [rax + rcx + 0x10], 0x800
jne 0x14012e24a
mov rax, qword [rsp + 0x78]
mov byte [rax], 5
mov rax, qword [rsp + 0x78]
mov byte [rax + 1], 0x83
mov eax, reloc.OLEAUT32.dll_SafeArrayGetDim
mov word [rsp + 0x70], ax
mov rcx, qword [rsp + 0x68]
movzx eax, byte [rsp + 0x70]
mov byte [rcx], al
lea rcx, [0x14022dd5c]
call fcn.1400a98c0
movzx r8d, word [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
add rdx, 4
mov byte [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
lea r9, [0x14022ddac]
mov rcx, qword [rsp + 0x230]
call fcn.1401228c0
movzx r9d, byte [rsp + 0x48]
mov rax, qword [rsp + 0x238]
mov r8d, dword [rax + 0xc]
lea rdx, str.CCBOOT__04x__04x
lea rcx, [rsp + 0x90]
call fcn.1400ad4a8
mov rdx, qword [rsp + 0x230]
add rdx, 0x228
lea r8, [0x1402366a0]
lea rcx, [rsp + 0x1b0]
call fcn.1400010b0
mov qword [rsp + 0x1e8], rax
mov rcx, qword [rsp + 0x1e8]
call fcn.14000f8f0
mov r9, rax
mov r8d, 1
lea rdx, str.UniqueDiskID
lea rcx, [0x1402366d8]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [rsp + 0x1ac], eax
lea rcx, [rsp + 0x1b0]
call fcn.140001490
cmp dword [rsp + 0x1ac], 0
je 0x14012e37a
mov rcx, qword [rsp + 0x238]
add rcx, 0xb0
call qword [sym.imp.WSOCK32.dll_inet_addr]
movzx r9d, byte [rsp + 0x48]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x238]
mov r8d, dword [rax + 0xc]
lea rdx, str.CB__02X_02X__08X
lea rcx, [rsp + 0x90]
call fcn.1400ad4a8
mov rcx, qword [rsp + 0x78]
add rcx, 4
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rdx, [rsp + 0x90]
call fcn.1400a9470
mov r11, qword [rsp + 0x68]
movzx ecx, byte [r11]
add ecx, 4
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], ecx
jmp 0x14012e6a6
mov rax, qword [rsp + 0x78]
mov byte [rax], 0
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
cmp qword [rax + rcx + 0x10], 0x800
jne 0x14012e401
mov rax, qword [rsp + 0x78]
mov byte [rax], 5
mov rax, qword [rsp + 0x78]
mov byte [rax + 1], 0x83
mov rax, qword [rsp + 0x78]
mov byte [rax + 3], 0x1c
mov rax, qword [rsp + 0x78]
mov byte [rax + 4], 1
mov rax, qword [rsp + 0x78]
mov byte [rax + 5], 1
mov rax, qword [rsp + 0x78]
mov byte [rax + 7], reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, qword [rsp + 0x78]
add rcx, 8
mov r8d, 8
mov edx, 0x20
call fcn.1400a87c0
mov rcx, qword [rsp + 0x230]
add rcx, 0x338
call fcn.1400a98c0
cmp rax, 8
jae 0x14012e47f
mov rcx, qword [rsp + 0x230]
add rcx, 0x338
call fcn.1400a98c0
mov qword [rsp + 0x1f0], rax
jmp 0x14012e48b
mov qword [rsp + 0x1f0], 8
mov rdx, qword [rsp + 0x230]
add rdx, 0x338
mov rcx, qword [rsp + 0x78]
add rcx, 8
mov r8, qword [rsp + 0x1f0]
call fcn.1400a9470
movzx r11d, byte [rsp + 0x48]
mov dword [rsp + 0x20], r11d
mov rax, qword [rsp + 0x238]
mov r9d, dword [rax + 0xc]
mov r8, qword [rsp + 0x238]
mov r8, qword [r8 + 0x58]
lea rdx, str._s_08d_08d
lea rcx, [rsp + 0x100]
call fcn.1400ad4a8
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x1b8]
call fcn.14000e700
mov qword [rsp + 0x1f8], rax
mov rax, qword [rsp + 0x1f8]
mov qword [rsp + 0x200], rax
mov rcx, qword [rsp + 0x200]
call fcn.1400118c0
mov rdx, rax
lea rcx, [rsp + 0x170]
call fcn.1400047b0
nop
lea rcx, [rsp + 0x1b8]
call fcn.140002ea0
lea rcx, [rsp + 0x170]
call fcn.14000f8f0
mov rdx, rax
lea rcx, [rsp + 0x1c0]
call fcn.140002e10
mov qword [rsp + 0x208], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x210], rax
mov rcx, qword [rsp + 0x210]
call fcn.140002ec0
mov rdx, rax
lea rcx, [rsp + 0x100]
call fcn.1400ab970
nop
lea rcx, [rsp + 0x1c0]
call fcn.140002ea0
nop
lea rcx, [rsp + 0x170]
call fcn.140001490
mov rcx, qword [rsp + 0x78]
add rcx, 0x10
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rdx, [rsp + 0x100]
call fcn.1400a9470
mov r11, qword [rsp + 0x40]
mov dword [r11 + 0x14], 0x20
jmp 0x14012e6a6
mov rax, qword [rsp + 0x78]
mov byte [rax], 0
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
cmp qword [rax + rcx + 0x10], 0x800
jne 0x14012e62d
mov rax, qword [rsp + 0x78]
mov byte [rax], 5
mov rax, qword [rsp + 0x78]
mov byte [rax + 1], 0
mov rax, qword [rsp + 0x68]
mov byte [rax], 3
mov rax, qword [rsp + 0x78]
mov byte [rax + 4], 0
mov rax, qword [rsp + 0x78]
mov byte [rax + 5], 0x80
mov rax, qword [rsp + 0x78]
mov byte [rax + 6], 0x83
mov rax, qword [rsp + 0x68]
movzx ecx, byte [rax]
add ecx, 4
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], ecx
jmp 0x14012e6a6
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 2]
mov dword [rsp + 0x20], eax
lea r9, str.Unsupported_INQUIRY_VPD_page__x_n
mov r8d, 0x12d2
lea rdx, [0x140236738]
mov rcx, qword [rsp + 0x230]
call fcn.1401230d0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
jmp 0x14012e819
mov rax, qword [rsp + 0x78]
mov byte [rax], 0
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
cmp qword [rax + rcx + 0x10], 0x800
jne 0x14012e6fd
mov rax, qword [rsp + 0x78]
mov byte [rax], 5
mov rax, qword [rsp + 0x78]
mov byte [rax + 2], 3
mov rax, qword [rsp + 0x78]
mov byte [rax + 4], 0x20
mov rax, qword [rsp + 0x78]
movzx ecx, byte [rax + 7]
or ecx, 0x60
mov rax, qword [rsp + 0x78]
mov byte [rax + 7], cl
mov rcx, qword [rsp + 0x230]
add rcx, 0x338
call fcn.1400a98c0
mov r9, qword [rsp + 0x230]
add r9, 0x338
mov rdx, qword [rsp + 0x78]
add rdx, 8
mov byte [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
mov r8d, 8
mov rcx, qword [rsp + 0x230]
call fcn.1401228c0
mov rcx, qword [rsp + 0x230]
add rcx, 0x238
call fcn.1400a98c0
mov r9, qword [rsp + 0x230]
add r9, 0x238
mov rdx, qword [rsp + 0x78]
add rdx, 0x10
mov byte [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetDim
mov rcx, qword [rsp + 0x230]
call fcn.1401228c0
xor r9d, r9d
lea r8, [0x14022de1c]
mov edx, 8
lea rcx, [rsp + 0x178]
call fcn.1400adf20
lea rcx, [rsp + 0x178]
call fcn.1400a98c0
mov rdx, qword [rsp + 0x78]
add rdx, 0x20
mov byte [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x178]
mov r8d, 4
mov rcx, qword [rsp + 0x230]
call fcn.1401228c0
mov r11, qword [rsp + 0x40]
mov dword [r11 + 0x14], 0x24
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 0x74]
test eax, eax
jne 0x14012e832
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
jmp 0x14012fd47
lea rax, str.STOP_START_UNIT_n
mov qword [rsp + 0x20], rax
mov r9d, 0x12ff
lea r8, [0x140236770]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
lea rax, [0x140236790]
mov qword [rsp + 0x20], rax
mov r9d, 0x1305
lea r8, [0x1402367a0]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x238]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x238]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
mov qword [rsp + 0x180], rax
mov eax, 0xffffffff
cmp qword [rsp + 0x180], rax
jbe 0x14012e961
mov ecx, 0xffffffff
call qword [sym.imp.WSOCK32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x78]
mov dword [rax], r11d
jmp 0x14012e980
mov rax, qword [rsp + 0x180]
sub rax, 1
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x78]
mov dword [rax], r11d
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
mov ecx, dword [rax + rcx + 0x10]
call qword [sym.imp.WSOCK32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 4], r11d
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 8
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 8
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x14012fd47
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
shl eax, 3
sar eax, 3
cmp eax, 0x10
jne 0x14012ebf8
lea rax, str.READ_CAPACITY_n
mov qword [rsp + 0x20], rax
mov r9d, 0x131c
lea r8, [0x1402367d0]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov r8d, 0x20
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.1400a87c0
mov r11, qword [rsp + 0x238]
movsxd rax, dword [r11 + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x238]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x238]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
sub rax, 1
shl rax, 0x20
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_ntohl]
mov ebx, eax
shl rbx, 0x20
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x238]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x238]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
sub rax, 1
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_ntohl]
mov eax, eax
mov rcx, rbx
or rcx, rax
mov rax, qword [rsp + 0x78]
mov qword [rax], rcx
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
mov ecx, dword [rax + rcx + 0x10]
call qword [sym.imp.WSOCK32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 8], r11d
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 0x20
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0x20
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x14012ec01
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 2
jmp 0x14012fd47
mov rax, qword [rsp + 0x60]
mov ecx, dword [rax]
call qword [sym.imp.WSOCK32.dll_ntohl]
and eax, 0x1fffff
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax]
mov word [rsp + 0x70], ax
movzx eax, word [rsp + 0x70]
test eax, eax
jne 0x14012ec3f
mov eax, pe_nt_image_headers64
mov word [rsp + 0x70], ax
movzx eax, word [rsp + 0x70]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x28], eax
lea rax, str.WRITE_6_lba__u__len__u_blocks__n
mov qword [rsp + 0x20], rax
mov r9d, 0x1330
lea r8, [0x140236810]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
movzx ecx, word [rsp + 0x70]
mov eax, dword [rsp + 0x80]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
movzx r9d, byte [rsp + 0x48]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x238]
mov rcx, qword [rsp + 0x230]
call fcn.14012db40
test eax, eax
je 0x14012ece3
lea r9, [0x140236830]
mov r8d, 0x1333
lea rdx, [0x140236848]
mov rcx, qword [rsp + 0x230]
call fcn.1401230d0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
mov r9, qword [rsp + 0x60]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x230]
call fcn.140122aa0
movzx ecx, word [rsp + 0x70]
mov eax, dword [rsp + 0x80]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
movzx r9d, byte [rsp + 0x48]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x238]
mov rcx, qword [rsp + 0x230]
call fcn.14012db40
test eax, eax
je 0x14012ed78
lea r9, [0x140236868]
mov r8d, 0x133f
lea rdx, [0x140236880]
mov rcx, qword [rsp + 0x230]
call fcn.1401230d0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
mov qword [rsp + 0x188], 0
mov dword [rsp + 0x190], 0
mov rdx, qword [rsp + 0x60]
add rdx, 2
mov r8d, 8
lea rcx, [rsp + 0x188]
call fcn.1400a9470
mov rax, qword [rsp + 0x188]
shl rax, 0x20
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_ntohl]
mov ebx, eax
shl rbx, 0x20
mov rax, qword [rsp + 0x188]
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_ntohl]
mov ecx, eax
mov rax, rbx
or rax, rcx
mov qword [rsp + 0x188], rax
mov rdx, qword [rsp + 0x60]
add rdx, 0xa
mov r8d, 4
lea rcx, [rsp + 0x190]
call fcn.1400a9470
mov ecx, dword [rsp + 0x190]
call qword [sym.imp.WSOCK32.dll_ntohl]
mov dword [rsp + 0x190], eax
mov eax, dword [rsp + 0x190]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x20], rax
movzx r9d, byte [rsp + 0x48]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x238]
mov rcx, qword [rsp + 0x230]
call fcn.14012db40
test eax, eax
je 0x14012ee96
lea r9, str.disk_write___failed_n
mov r8d, 0x1350
lea rdx, [0x1402368b8]
mov rcx, qword [rsp + 0x230]
call fcn.1401230d0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
mov r9, qword [rsp + 0x60]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x230]
call fcn.140122aa0
movzx ecx, word [rsp + 0x70]
mov r9d, dword [rsp + 0x80]
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], rcx
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x238]
mov rcx, qword [rsp + 0x230]
call fcn.14012baf0
test eax, eax
je 0x14012ef2a
lea r9, [0x1402368d8]
mov r8d, 0x135e
lea rdx, [0x1402368f0]
mov rcx, qword [rsp + 0x230]
call fcn.1401230d0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
jmp 0x14012fd47
mov qword [rsp + 0x198], 0
mov dword [rsp + 0x1a0], 0
mov rdx, qword [rsp + 0x60]
add rdx, 2
mov r8d, 8
lea rcx, [rsp + 0x198]
call fcn.1400a9470
mov rax, qword [rsp + 0x198]
shl rax, 0x20
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_ntohl]
mov ebx, eax
shl rbx, 0x20
mov rax, qword [rsp + 0x198]
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_ntohl]
mov ecx, eax
mov rax, rbx
or rax, rcx
mov qword [rsp + 0x198], rax
mov rdx, qword [rsp + 0x60]
add rdx, 0xa
mov r8d, 4
lea rcx, [rsp + 0x1a0]
call fcn.1400a9470
mov ecx, dword [rsp + 0x1a0]
call qword [sym.imp.WSOCK32.dll_ntohl]
mov dword [rsp + 0x1a0], eax
mov ecx, dword [rsp + 0x1a0]
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], rcx
mov r9, qword [rsp + 0x198]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x238]
mov rcx, qword [rsp + 0x230]
call fcn.14012baf0
test eax, eax
je 0x14012f046
lea r9, [0x140236910]
mov r8d, 0x136e
lea rdx, [0x140236928]
mov rcx, qword [rsp + 0x230]
call fcn.1401230d0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
jmp 0x14012fd47
mov rax, qword [rsp + 0x60]
mov ecx, dword [rax]
call qword [sym.imp.WSOCK32.dll_ntohl]
and eax, 0x1fffff
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax]
mov word [rsp + 0x70], ax
movzx eax, word [rsp + 0x70]
test eax, eax
jne 0x14012f090
mov eax, pe_nt_image_headers64
mov word [rsp + 0x70], ax
movzx eax, word [rsp + 0x70]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x28], eax
lea rax, str.READ_6_lba__u__len__u_blocks__n
mov qword [rsp + 0x20], rax
mov r9d, 0x137c
lea r8, [0x140236968]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
movzx ecx, word [rsp + 0x70]
mov r9d, dword [rsp + 0x80]
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], rcx
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x238]
mov rcx, qword [rsp + 0x230]
call fcn.14012baf0
test eax, eax
je 0x14012f133
lea r9, [0x140236988]
mov r8d, 0x137f
lea rdx, [0x1402369a0]
mov rcx, qword [rsp + 0x230]
call fcn.1401230d0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
jmp 0x14012fd47
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
je 0x14012f178
mov eax, 4
mov word [rsp + 0x70], ax
jmp 0x14012f182
mov eax, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov word [rsp + 0x70], ax
movzx r8d, word [rsp + 0x70]
xor edx, edx
mov rcx, qword [rsp + 0x50]
call fcn.1400a87c0
mov r11, qword [rsp + 0x50]
mov byte [r11 + 1], 0
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
je 0x14012f1b9
mov rax, qword [rsp + 0x50]
mov byte [rax + 3], 0
jmp 0x14012f1c2
mov rax, qword [rsp + 0x50]
mov byte [rax + 3], 8
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
jne 0x14012f344
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x238]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x238]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x50]
mov dword [rax + 4], r11d
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x238]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x238]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
shr rax, 0x20
test rax, rax
je 0x14012f2f7
mov rax, qword [rsp + 0x50]
mov dword [rax + 4], 0xffffffff
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
mov ecx, dword [rax + rcx + 0x10]
call qword [sym.imp.WSOCK32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x50]
mov dword [rax + 8], r11d
mov rax, qword [rsp + 0x230]
cmp dword [rax + 0x234], 0
je 0x14012f396
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 2]
and eax, 0x3f
cmp eax, 0x3f
jne 0x14012f396
movzx eax, word [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
add rdx, rax
mov r8d, 1
mov rcx, qword [rsp + 0x230]
call fcn.140122730
mov r11d, eax
movzx eax, word [rsp + 0x70]
add eax, r11d
mov word [rsp + 0x70], ax
movzx ecx, word [rsp + 0x70]
sub ecx, 1
mov rax, qword [rsp + 0x50]
mov byte [rax], cl
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
movzx ecx, word [rsp + 0x70]
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], ecx
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x14012fd47
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x14012fd47
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
je 0x14012f426
mov eax, 8
mov word [rsp + 0x70], ax
jmp 0x14012f430
mov eax, reloc.OLEAUT32.dll_SafeArrayGetElement
mov word [rsp + 0x70], ax
movzx r8d, word [rsp + 0x70]
xor edx, edx
mov rcx, qword [rsp + 0x50]
call fcn.1400a87c0
mov r11, qword [rsp + 0x50]
mov byte [r11], 0
mov rax, qword [rsp + 0x50]
mov byte [rax + 2], 0
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
je 0x14012f46f
mov rax, qword [rsp + 0x50]
mov byte [rax + 7], 0
jmp 0x14012f478
mov rax, qword [rsp + 0x50]
mov byte [rax + 7], reloc.OLEAUT32.dll_SafeArrayGetDim
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
jne 0x14012f6f1
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x238]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x238]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
shl rax, 0x20
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_ntohl]
mov ebx, eax
shl rbx, 0x20
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x238]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x238]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_ntohl]
mov eax, eax
mov rcx, rbx
or rcx, rax
mov rax, qword [rsp + 0x50]
mov qword [rax + 8], rcx
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x238]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x238]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x238]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
cmp rax, 0xffffffffffffffff
jbe 0x14012f646
mov rax, qword [rsp + 0x50]
mov qword [rax + 8], 0xffffffffffffffff
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
mov rax, qword [rax + rcx + 0x10]
shl rax, 0x20
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_ntohl]
mov ebx, eax
shl rbx, 0x20
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
mov rax, qword [rax + rcx + 0x10]
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WSOCK32.dll_ntohl]
mov eax, eax
mov rcx, rbx
or rcx, rax
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x10], rcx
mov rax, qword [rsp + 0x230]
cmp dword [rax + 0x234], 0
je 0x14012f743
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 2]
and eax, 0x3f
cmp eax, 0x3f
jne 0x14012f743
movzx eax, word [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
add rdx, rax
mov r8d, 1
mov rcx, qword [rsp + 0x230]
call fcn.140122730
mov r11d, eax
movzx eax, word [rsp + 0x70]
add eax, r11d
mov word [rsp + 0x70], ax
movzx ecx, word [rsp + 0x70]
sub ecx, 2
mov rax, qword [rsp + 0x50]
mov byte [rax + 1], cl
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
movzx ecx, word [rsp + 0x70]
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], ecx
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x14012fd47
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 2]
and eax, 0xf
mov dword [rsp + 0x1a8], eax
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], 2
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
movsxd rcx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 1
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
add eax, 1
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
movsxd rcx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 1
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
add eax, 1
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
movsxd rcx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
add eax, 1
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
movsxd rcx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], reloc.OLEAUT32.dll_SafeArrayLock
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
add eax, 1
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
movsxd rcx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 1
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
add eax, 1
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
movsxd rcx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
add eax, 1
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
movsxd rcx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
add eax, 1
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
movsxd rcx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
add eax, 1
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
movsxd rcx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
add eax, 1
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
movsxd rcx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
add eax, 1
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
mov rax, qword [rsp + 0x78]
mov byte [rax], 0
mov ecx, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
sub ecx, 2
mov rax, qword [rsp + 0x78]
mov byte [rax + 1], cl
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor]
mov dword [rcx + 0x14], eax
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x14012fd47
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x14012fd47
mov r9, qword [rsp + 0x60]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x230]
call fcn.140122aa0
movzx r11d, word [rsp + 0x70]
mov dword [rsp + 0x30], r11d
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x28], eax
lea rax, str.SYNC_CACHE__lba__u__len__u_blocks__n
mov qword [rsp + 0x20], rax
mov r9d, 0x147d
lea r8, [0x1402369e8]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
movzx r8d, word [rsp + 0x70]
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
imul r8, qword [rax + rcx + 0x10]
mov r9d, dword [rsp + 0x80]
mov rax, qword [rsp + 0x238]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x238]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx edx, byte [rsp + 0x48]
imul rdx, rdx, 0x38
add rdx, qword [rax + 8]
mov qword [rsp + 0x20], r8
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetDim
mov rcx, qword [rsp + 0x230]
call fcn.14012a790
test eax, eax
jge 0x14012fa76
lea r9, str.disk_read___failed_n
mov r8d, 0x147f
lea rdx, [0x140236a20]
mov rcx, qword [rsp + 0x230]
call fcn.1401230d0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
jmp 0x14012fa8b
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
lea rax, str.LOG_SENSE_n
mov qword [rsp + 0x20], rax
mov r9d, 0x1488
lea r8, [0x140236a50]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
lea rax, str.PERSISTENT_RESERVE_IN_n
mov qword [rsp + 0x20], rax
mov r9d, 0x148e
lea r8, [0x140236a88]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov r11, qword [rsp + 0x60]
movzx eax, byte [r11 + 1]
and eax, 0x1f
mov r8, qword [rsp + 0x40]
mov r8, qword [r8 + 0x58]
movzx edx, al
mov rcx, qword [rsp + 0x230]
call fcn.140123420
mov r11d, eax
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], r11d
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x14012fd47
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 2
jmp 0x14012fd47
lea rax, str.RESERVE_6_n
mov qword [rsp + 0x20], rax
mov r9d, 0x149f
lea r8, [0x140236ab8]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
lea rax, str.RELEASE_6_n
mov qword [rsp + 0x20], rax
mov r9d, 0x14a5
lea r8, [0x140236ae8]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
lea rax, str.RESERVE_10_n
mov qword [rsp + 0x20], rax
mov r9d, 0x14ab
lea r8, [0x140236b18]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
lea rax, str.RELEASE_10_n
mov qword [rsp + 0x20], rax
mov r9d, 0x14b1
lea r8, [0x140236b48]
mov edx, 0x200
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x14012fd47
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov dword [rsp + 0x20], eax
lea r9, str.UNKNOWN_OPCODE__x_n
mov r8d, 0x14b7
lea rdx, [0x140236b80]
mov rcx, qword [rsp + 0x230]
call fcn.1401230d0
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 0x74]
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], eax
lea rax, str.SCSI_op__x:_done__status__x__n
mov qword [rsp + 0x20], rax
mov r9d, 0x14bd
lea r8, [0x140236bc0]
mov edx, pe_nt_image_headers64
mov rcx, qword [rsp + 0x230]
call fcn.1401231e0
xor eax, eax
mov rcx, qword [rsp + 0x218]
xor rcx, rsp
call fcn.1400a8790
add rsp, 0x220
pop rbx
ret