Function at 0x140008910
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x90
mov qword [rbp + 0xf], 0xfffffffffffffffe
mov qword [rsp + 0xd0], rbx
mov r13, r9
mov r15d, r8d
mov rbx, rdx
xorps xmm0, xmm0
movdqu xmmword [rbp - 9], xmm0
cmp qword [rdx + 0x18], 8
jb 0x140008957
mov rdx, qword [rdx]
xor edi, edi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
mov r14d, 1
mov r9d, r14d
mov r8d, 0x80000000
lea rcx, [rbp - 9]
call fcn.140008290
test eax, eax
jns 0x1400089d3
cmp qword [rbx + 0x18], 8
jb 0x140008999
mov rbx, qword [rbx]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
mov r9d, 3
mov r8d, 0x80000000
mov rdx, rbx
lea rcx, [rbp - 9]
call fcn.140008290
test eax, eax
js 0x140008feb
call fcn.140001430
mov rcx, rax
test rax, rax
je 0x14000902f
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x21], rbx
lea rdx, [rbp - 0xd]
mov rdi, qword [rbp - 9]
mov rcx, rdi
call qword [sym.imp.kernel32.dll_GetFileSize]
mov esi, eax
mov dword [rbp - 0x11], eax
mov r12, 0xffffffffffffffff
cmp eax, 0xffffffff
jne 0x140008a24
call fcn.140002720
test eax, eax
js 0x140008bd2
mov esi, dword [rbp - 0x11]
cmp r15d, esi
cmovb esi, r15d
test esi, esi
js 0x14000903a
sub r14d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, r14d
jge 0x140008a50
mov edx, esi
lea rcx, [rbp - 0x21]
call fcn.140009690
mov rbx, qword [rbp - 0x21]
xor r14d, r14d
mov dword [rbp + 0x6f], r14d
mov qword [rsp + 0x20], r14
lea r9, [rbp + 0x6f]
mov r8d, esi
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.kernel32.dll_ReadFile]
test eax, eax
jne 0x140008bc9
call fcn.140002720
test eax, eax
js 0x140008bd2
test rdi, rdi
je 0x140008a96
mov rcx, rdi
call qword [sym.imp.kernel32.dll_CloseHandle]
mov qword [rbp - 9], r14
mov qword [r13 + 0x10], r14
mov rax, r13
cmp qword [r13 + 0x18], 8
jb 0x140008aa8
mov rax, qword [r13]
mov word [rax], r14w
test esi, esi
je 0x140008fcd
mov r14d, 2
mov r13d, 0xa
lea r15d, [r13 + 0x31]
lea edx, [r13 + 0x16]
lea r8d, [r13 + 0x44]
lea rcx, [rbp - 0x29]
call fcn.140007c70
nop
mov rdi, qword [rbp - 0x29]
cmp dword [rdi - 8], 1
jle 0x140008af0
mov edx, dword [rdi - 0x10]
lea rcx, [rbp - 0x29]
call fcn.140002bd0
mov rdi, qword [rbp - 0x29]
mov word [rdi + 0x74], r15w
mov dword [rdi + 0x98], 0xa000d
call fcn.140001430
mov rcx, rax
test rax, rax
je 0x140009024
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x19], rax
lea r15d, [r14 - 2]
mov r8d, r15d
lea rdx, str._.8lX:
lea rcx, [rbp - 0x19]
call fcn.140008810
mov r8, r13
mov rdx, qword [rbp - 0x19]
mov rcx, rdi
call fcn.140012950
call fcn.140001430
mov rcx, rax
test rax, rax
je 0x140009019
mov rax, qword [rax]
call qword [rax + 0x18]
mov r13, rax
lea rcx, [rax + 0x18]
mov qword [rbp + 0x17], rcx
call fcn.140001430
test rax, rax
je 0x140009045
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov qword [rbp + 7], rax
lea rcx, [rax + 0x18]
mov qword [rbp + 0x1f], rcx
cmp r15d, esi
jae 0x140008bda
movzx r8d, byte [r15 + rbx]
mov edx, r8d
mov ecx, r8d
shr rcx, 4
lea r15, str.0123456789ABCDEF
movzx ecx, word [r15 + rcx*2]
mov word [rdi + 0x14], cx
and edx, 0xf
movzx eax, word [r15 + rdx*2]
mov word [rdi + 0x16], ax
cmp r8b, 0x20
jb 0x140008be1
movsx eax, r8b
mov word [rdi + 0x78], ax
jmp 0x140008be1
cmp dword [rbp + 0x6f], esi
je 0x140008a84
xor dil, dil
jmp 0x140008fd0
lea r15, str.0123456789ABCDEF
lea eax, [r14 - 1]
cmp eax, esi
jae 0x140008c16
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x1a], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x1c], ax
cmp dl, 0x20
jb 0x140008c16
movsx eax, dl
mov word [rdi + 0x7a], ax
cmp r14d, esi
jae 0x140008c4b
mov eax, r14d
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x20], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x22], ax
cmp dl, 0x20
jb 0x140008c4b
movsx eax, dl
mov word [rdi + 0x7c], ax
lea eax, [r14 + 1]
cmp eax, esi
jae 0x140008c80
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x26], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x28], ax
cmp dl, 0x20
jb 0x140008c80
movsx eax, dl
mov word [rdi + 0x7e], ax
lea eax, [r14 + 2]
cmp eax, esi
jae 0x140008cb8
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x2c], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x2e], ax
cmp dl, 0x20
jb 0x140008cb8
movsx eax, dl
mov word [rdi + 0x80], ax
lea eax, [r14 + 3]
cmp eax, esi
jae 0x140008cf0
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x32], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x34], ax
cmp dl, 0x20
jb 0x140008cf0
movsx eax, dl
mov word [rdi + 0x82], ax
lea eax, [r14 + 4]
cmp eax, esi
jae 0x140008d28
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x38], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x3a], ax
cmp dl, 0x20
jb 0x140008d28
movsx eax, dl
mov word [rdi + 0x84], ax
lea eax, [r14 + 5]
cmp eax, esi
jae 0x140008d60
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x3e], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x40], ax
cmp dl, 0x20
jb 0x140008d60
movsx eax, dl
mov word [rdi + 0x86], ax
lea eax, [r14 + 6]
cmp eax, esi
jae 0x140008d98
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x44], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x46], ax
cmp dl, 0x20
jb 0x140008d98
movsx eax, dl
mov word [rdi + 0x88], ax
lea eax, [r14 + 7]
cmp eax, esi
jae 0x140008dd0
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x4a], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x4c], ax
cmp dl, 0x20
jb 0x140008dd0
movsx eax, dl
mov word [rdi + 0x8a], ax
lea eax, [r14 + 8]
cmp eax, esi
jae 0x140008e08
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x50], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x52], ax
cmp dl, 0x20
jb 0x140008e08
movsx eax, dl
mov word [rdi + 0x8c], ax
lea eax, [r14 + 9]
cmp eax, esi
jae 0x140008e40
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x56], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x58], ax
cmp dl, 0x20
jb 0x140008e40
movsx eax, dl
mov word [rdi + 0x8e], ax
lea eax, [r14 + 0xa]
cmp eax, esi
jae 0x140008e78
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x5c], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x5e], ax
cmp dl, 0x20
jb 0x140008e78
movsx eax, dl
mov word [rdi + 0x90], ax
lea eax, [r14 + 0xb]
cmp eax, esi
jae 0x140008eb0
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x62], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x64], ax
cmp dl, 0x20
jb 0x140008eb0
movsx eax, dl
mov word [rdi + 0x92], ax
lea eax, [r14 + 0xc]
cmp eax, esi
jae 0x140008ee8
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x68], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x6a], ax
cmp dl, 0x20
jb 0x140008ee8
movsx eax, dl
mov word [rdi + 0x94], ax
lea eax, [r14 + 0xd]
cmp eax, esi
jae 0x140008f20
movzx edx, byte [rax + rbx]
mov ecx, edx
mov eax, edx
shr rax, 4
movzx eax, word [r15 + rax*2]
mov word [rdi + 0x6e], ax
and ecx, 0xf
movzx eax, word [r15 + rcx*2]
mov word [rdi + 0x70], ax
cmp dl, 0x20
jb 0x140008f20
movsx eax, dl
mov word [rdi + 0x96], ax
mov rdx, qword [rbp - 0x29]
mov r8, r12
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x140008f30
mov rcx, qword [rbp + 0x7f]
call fcn.140009a10
nop
mov eax, r12d
mov rdx, qword [rbp + 7]
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140008f60
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov eax, r12d
lock xadd dword [r13 + 0x10], eax
sub eax, 1
jg 0x140008f7c
mov rcx, qword [r13]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + 8]
nop
mov rdx, qword [rbp - 0x19]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140008f9b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp - 0x29]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140008fb9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add r14d, 0x10
lea eax, [r14 - 2]
mov rbx, qword [rbp - 0x21]
cmp eax, esi
jb 0x140008aba
mov dil, 1
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
sub r12d, 1
jg 0x140008feb
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
nop
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x140008ffa
call qword [sym.imp.kernel32.dll_CloseHandle]
movzx eax, dil
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.140002750
nop
mov ecx, 0x80004005
call fcn.140002750
nop
mov ecx, 0x80004005
call fcn.140002750
nop
mov ecx, 0x80070057
call fcn.140002750
nop
mov ecx, 0x80004005
call fcn.140002750
int3