Function at 0x140096310
Capabilities:
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x340
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov rax, qword [0x14047b0a0]
xor rax, rsp
mov qword [rsp + 0x330], rax
mov rdi, r8
mov r14, rdx
mov qword [rsp + 0x38], rdx
test rcx, rcx
je 0x140096511
mov rbx, 0xffffffffffffffff
mov rax, rbx
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140096360
test rax, rax
je 0x140096511
xor r15d, r15d
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0xa8], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x90], r15b
movdqa xmm0, xmmword [0x140415690]
movdqu xmmword [rsp + 0xc0], xmm0
mov word [rsp + 0xb0], r15w
mov r8, rbx
nop
inc r8
cmp word [rcx + r8*2], 0
jne 0x1400963b0
mov rdx, rcx
lea rcx, [rsp + 0xb0]
call fcn.14007ece0
nop
lea rcx, [rsp + 0xb0]
cmp qword [rsp + 0xc8], 8
cmovae rcx, qword [rsp + 0xb0]
mov r8d, SHGetSetSettings
lea rdx, [0x14040b338]
call fcn.1402e7fe0
mov rsi, rax
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x14009640a
jmp 0x1400964ec
lea rcx, [rsp + 0xb0]
cmp qword [rsp + 0xc8], 8
cmovae rcx, qword [rsp + 0xb0]
lea rdx, [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rcx, rax
cmp rax, 0xffffffffffffffff
jne 0x140096440
mov rdx, rbx
jmp 0x140096461
mov eax, dword [rsp + 0x100]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0xfc]
mov dword [rsp + 0x44], eax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0xa0]
cmp rdx, rax
ja 0x140096496
lea rax, [rsp + 0x90]
cmp qword [rsp + 0xa8], 0x10
cmovae rax, qword [rsp + 0x90]
mov qword [rsp + 0xa0], rdx
mov byte [rax + rdx], 0
jmp 0x1400964a9
sub rdx, rax
xor r8d, r8d
lea rcx, [rsp + 0x90]
call fcn.14008e6c0
mov r8, qword [rsp + 0xa0]
test r8, r8
je 0x1400964de
lea rcx, [rsp + 0x90]
cmp qword [rsp + 0xa8], 0x10
cmovae rcx, qword [rsp + 0x90]
mov r9, rsi
mov edx, 1
call fcn.1402e7684
nop
test rsi, rsi
je 0x1400964ec
mov rcx, rsi
call fcn.1402e7390
nop
lea rcx, [rsp + 0xb0]
call fcn.14007ec70
cmp qword [rsp + 0xa0], 0
jne 0x140096536
lea rcx, [rsp + 0x90]
call fcn.14007ea30
xor al, al
mov rcx, qword [rsp + 0x330]
xor rcx, rsp
call fcn.1401aed20
add rsp, 0x340
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
test rdi, rdi
je 0x1400966f6
mov ecx, PathYetAnotherMakeUniqueName
call fcn.1401af66c
mov r12, rax
mov qword [rsp + 0x48], rax
mov ecx, 0x1000
call fcn.1401af66c
mov r13, rax
mov qword [rsp + 0x50], rax
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140096563
mov r8, rbx
mov rdx, rdi
lea rcx, [rsp + 0x48]
call fcn.1400933a0
mov eax, dword [rsp + 0xa0]
mov ecx, eax
and ecx, 7
je 0x14009658f
sub eax, ecx
add eax, 8
mov qword [rsp + 0xc0], r15
mov qword [rsp + 0xc8], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0xb0], 0
mov edx, eax
test eax, eax
jne 0x1400965c2
mov qword [rsp + 0xc0], rdx
mov byte [rsp + rdx + 0xb0], al
jmp 0x1400965d2
xor r8d, r8d
lea rcx, [rsp + 0xb0]
call fcn.14008e6c0
lea r14, [rsp + 0xb0]
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xc8]
cmp rcx, 0x10
cmovae r14, rax
lea r15, [rsp + 0x90]
cmp qword [rsp + 0xa8], 0x10
cmovae r15, qword [rsp + 0x90]
mov rbx, r15
mov edx, dword [rsp + 0xa0]
test edx, edx
je 0x1400966a8
lea rdi, [r14 + 2]
lea esi, [rdx - 1]
shr esi, 3
inc esi
nop word [rax + rax]
lea rcx, [rsp + 0x48]
cmp r15, r14
jne 0x140096648
lea r8, [rbx + 4]
mov rdx, rbx
call fcn.140092f60
jmp 0x14009668e
lea rdx, [rdi - 2]
movzx eax, byte [rbx]
mov byte [rdx], al
movzx eax, byte [rbx + 1]
mov byte [rdi - 1], al
movzx eax, byte [rbx + 2]
mov byte [rdi], al
movzx eax, byte [rbx + 3]
mov byte [rdi + 1], al
lea r8, [rdi + 2]
movzx eax, byte [rbx + 4]
mov byte [r8], al
movzx eax, byte [rbx + 5]
mov byte [rdi + 3], al
movzx eax, byte [rbx + 6]
mov byte [rdi + 4], al
movzx eax, byte [rbx + 7]
mov byte [rdi + 5], al
call fcn.140092f60
add rdi, 8
add rbx, 8
sub rsi, 1
jne 0x140096630
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xb0]
lea rdx, [rsp + 0xb0]
cmp rcx, 0x10
cmovae rdx, rax
mov r8, qword [rsp + 0xc0]
lea rcx, [rsp + 0x90]
call fcn.14007dce0
nop
lea rcx, [rsp + 0xb0]
call fcn.14007ea30
nop
mov edx, 4
mov rcx, r12
call fcn.1401aed44
mov rcx, r13
call fcn.1401aed44
mov r14, qword [rsp + 0x38]
xor edx, edx
lea rcx, [rsp + 0xb0]
call fcn.14019e1f0
nop
mov rdx, rax
mov rcx, r14
call fcn.14019e780
nop
lea rcx, [rsp + 0xb0]
call fcn.14019e6b0
lea rcx, [rsp + 0x60]
call fcn.1401a6770
nop
lea rcx, [rsp + 0x60]
call fcn.1401a8bc0
mov rbx, rax
mov qword [rsp + 0x38], rax
xor dil, dil
test rax, rax
je 0x1400967ec
movdqa xmm0, xmmword [0x1404156a0]
movdqu xmmword [rsp + 0xc0], xmm0
mov byte [rsp + 0xb0], dil
mov rcx, qword [rax]
mov r11, qword [rcx + 8]
lea rdx, [rsp + 0x90]
cmp qword [rsp + 0xa8], 0x10
cmovae rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0xa0]
add r8, rdx
lea rdx, [rsp + 0x90]
cmp qword [rsp + 0xa8], 0x10
cmovae rdx, qword [rsp + 0x90]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r9, r14
mov rcx, rbx
call r11
movzx edi, al
lea rcx, [rsp + 0xb0]
call fcn.14007ea30
nop
jmp 0x1400967da
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov edx, 1
mov rcx, rbx
call r8
nop
lea rcx, [rsp + 0x60]
call fcn.1401a68a0
nop
lea rcx, [rsp + 0x90]
call fcn.14007ea30
movzx eax, dil
jmp 0x140096513