Function at 0x18001b650
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
push r12
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x78], rbp
mov rsi, rdx
mov rdi, rcx
cmp dword [rcx + 0x38], 8
jne 0x18001b68d
mov dword [rcx + 0x34], 0x2c
mov dword [rcx + 0x28], 0x930
xor eax, eax
jmp 0x18001ba61
lea rdx, [0x180106f48]
mov ecx, 0xa290
call fcn.18006aaa4
mov rbx, rax
mov qword [rsp + 0x60], rax
test rax, rax
jne 0x18001b6b5
mov eax, 0x8007000e
jmp 0x18001ba61
xor edx, edx
mov r8d, 0xa290
mov rcx, rax
call fcn.18006cf60
mov r11, qword [rdi + 0x20]
xor r12d, r12d
test r11, r11
je 0x18001b75d
mov ebp, 0xa290
mov edx, dword [rdi + 0x34]
mov rcx, qword [r11 + 0x188]
cmp rdx, rcx
jae 0x18001b74b
lea rax, [rdx + 0xa290]
cmp rax, rcx
jbe 0x18001b6f9
mov ebp, ecx
sub ebp, edx
lea rcx, [r11 + 0xf0]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r11
lea r8, [0x180013190]
mov qword [rsp + 0x20], r8
mov r9d, ebp
mov r8, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov esi, eax
test eax, eax
js 0x18001b73c
cmp eax, 1
jne 0x18001b72e
cmp eax, eax
je 0x18001b73c
jmp 0x18001b74b
cmp ebp, 0xa290
je 0x18001b7e2
jmp 0x18001b74b
mov rcx, rbx
call fcn.18006aaac
mov eax, esi
jmp 0x18001ba61
mov rcx, rbx
call fcn.18006aaac
mov eax, 0xe00e1001
jmp 0x18001ba61
mov edx, dword [rdi + 0x34]
mov qword [rsp + 0x70], rdx
xor r9d, r9d
lea r8, [rsp + 0x70]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x18001b790
call fcn.180003180
mov edi, eax
mov rcx, rbx
call fcn.18006aaac
mov eax, edi
jmp 0x18001ba61
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x60]
mov r8d, 0xa290
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x18001b7c6
call fcn.180003180
mov edi, eax
mov rcx, rbx
call fcn.18006aaac
mov eax, edi
jmp 0x18001ba61
cmp dword [rsp + 0x60], 0xa290
je 0x18001b7e2
mov rcx, rbx
call fcn.18006aaac
mov eax, 0xe00e1001
jmp 0x18001ba61
lea r9, [0x1800e1cb4]
mov edx, dword [rbx + 0x8001]
cmp edx, dword [r9]
jne 0x18001b805
mov dl, byte [rbx + 0x8005]
cmp dl, byte [r9 + 4]
jne 0x18001b805
mov eax, r12d
jmp 0x18001b80a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x18001ba45
mov edx, 0x8001
mov rcx, rbx
call fcn.18001b610
test eax, eax
jne 0x18001ba45
mov edx, dword [rbx + 0x9311]
cmp edx, dword [r9]
jne 0x18001b843
mov dl, byte [rbx + 0x9315]
cmp dl, byte [r9 + 4]
jne 0x18001b843
mov eax, r12d
jmp 0x18001b848
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x18001ba2e
mov edx, 0x9311
mov rcx, rbx
call fcn.18001b610
test eax, eax
jne 0x18001ba2e
mov edx, dword [rbx + 0x9319]
cmp edx, dword [r9]
jne 0x18001b881
mov dl, byte [rbx + 0x931d]
cmp dl, byte [r9 + 4]
jne 0x18001b881
mov eax, r12d
jmp 0x18001b886
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x18001ba17
mov edx, 0x9319
mov rcx, rbx
call fcn.18001b610
test eax, eax
jne 0x18001ba17
mov edx, dword [rbx + 0x9911]
cmp edx, dword [r9]
jne 0x18001b8bf
mov dl, byte [rbx + 0x9915]
cmp dl, byte [r9 + 4]
jne 0x18001b8bf
mov eax, r12d
jmp 0x18001b8c4
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x18001ba00
mov edx, 0x9911
mov rcx, rbx
call fcn.18001b610
test eax, eax
jne 0x18001ba00
mov edx, dword [rbx + 0x9919]
cmp edx, dword [r9]
jne 0x18001b8fd
mov dl, byte [rbx + 0x991d]
cmp dl, byte [r9 + 4]
jne 0x18001b8fd
mov eax, r12d
jmp 0x18001b902
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x18001b9e9
mov edx, 0x9919
mov rcx, rbx
call fcn.18001b610
test eax, eax
jne 0x18001b9e9
mov edx, dword [rbx + 0x9209]
cmp edx, dword [r9]
jne 0x18001b93b
mov dl, byte [rbx + 0x920d]
cmp dl, byte [r9 + 4]
jne 0x18001b93b
mov eax, r12d
jmp 0x18001b940
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x18001b9d2
mov edx, 0x9209
mov rcx, rbx
call fcn.18001b610
test eax, eax
jne 0x18001b9d2
mov ecx, dword [rbx + 0x9201]
cmp ecx, dword [r9]
jne 0x18001b975
mov cl, byte [rbx + 0x9205]
cmp cl, byte [r9 + 4]
jne 0x18001b975
mov eax, r12d
jmp 0x18001b97a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x18001b9bb
mov edx, 0x9201
mov rcx, rbx
call fcn.18001b610
test eax, eax
jne 0x18001b9bb
cmp dword [rdi + 0x38], 4
jne 0x18001b9a5
mov dword [rdi + 0x28], 0x930
mov dword [rdi + 0x2c], r12d
jmp 0x18001ba57
mov dword [rdi + 0x38], r12d
mov rcx, rbx
call fcn.18006aaac
mov eax, 0xe00e1001
jmp 0x18001ba61
mov dword [rdi + 0x28], 0x920
mov dword [rdi + 0x2c], r12d
mov dword [rdi + 0x30], reloc.WS2_32.dll_recv
jmp 0x18001ba57
mov dword [rdi + 0x28], 0x920
mov dword [rdi + 0x2c], 8
mov dword [rdi + 0x30], 0x18
jmp 0x18001ba57
mov dword [rdi + 0x28], 0x990
mov dword [rdi + 0x2c], 0x18
mov dword [rdi + 0x30], 0x18
jmp 0x18001ba57
mov dword [rdi + 0x28], 0x990
mov dword [rdi + 0x2c], reloc.WS2_32.dll_recv
mov dword [rdi + 0x30], reloc.WS2_32.dll_recv
jmp 0x18001ba57
mov dword [rdi + 0x28], 0x930
mov dword [rdi + 0x2c], 0x18
mov dword [rdi + 0x30], 0x18
jmp 0x18001ba57
mov dword [rdi + 0x28], 0x930
mov dword [rdi + 0x2c], reloc.WS2_32.dll_recv
mov dword [rdi + 0x30], reloc.WS2_32.dll_recv
jmp 0x18001ba57
mov dword [rdi + 0x28], 0x800
mov dword [rdi + 0x2c], r12d
mov dword [rdi + 0x30], 0x18
mov rcx, rbx
call fcn.18006aaac
xor eax, eax
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r12
pop rdi
pop rsi
ret