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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x36c]
test eax, eax
jne 0x610a6de6
xor eax, eax
mov edx, dword [ebp + 0xc]
lea ebx, [esi + 0x1c]
mov dword [esi + 0x36c], eax
mov ecx, 1
lea edi, [esi + 0x268]
xor eax, eax
mov dword [esi + 0x380], eax
mov eax, ebx
mov dword [esp], 0
call fcn.610620e0
mov dword [esp + 4], edi
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.610696b0
mov dword [esi + 0x18], eax
mov eax, dword [0x610f08a0]
test eax, eax
jne 0x610a6db6
mov eax, dword [esi + 0x244]
test eax, eax
jne 0x610a6ba0
mov edx, dword [esi + 0x1c]
xor eax, eax
cmp edx, 0xffffffff
setne al
test al, al
je 0x610a6ba0
test byte [ebx + 0x223], 4
je 0x610a6ba0
xor ecx, ecx
test al, al
je 0x610a6b90
test dl, 0x10
je 0x610a6b90
mov ecx, 1
lea esi, [esi]
test ecx, ecx
je 0x610a6c1d
nop
lea esi, [esi]
mov eax, dword [0x610f08a0]
test eax, eax
jne 0x610a6bf2
mov edx, 0x610a6a6f
test eax, eax
jne 0x610a6bc1
mov byte [esi + 0x378], 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x14], edx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], 0x610a6a80
mov dword [esp + 8], 0x610a6a50
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x40
mov dword [esp], 0x610f089c
call fcn.6108fd50
jmp 0x610a6bb2
mov dword [esp + 0xc], 0x610a6a8b
mov dword [esp + 8], 0x610a6a50
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], 0x610f089c
call fcn.6108fd50
mov eax, dword [0x610f08a0]
jmp 0x610a6ba9
mov eax, dword [0x61148914]
mov eax, dword [eax + 8]
mov dword [esp], edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0x80000000
call sub.KERNEL32.dll_CreateFileA
sub esp, 0x1c
mov edi, eax
cmp eax, 0xffffffff
je 0x610a6d9c
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.KERNEL32.dll_GetFileSize
sub esp, 8
mov ebx, eax
lea eax, [eax + 1]
mov dword [esp], eax
call fcn.61054c10
mov dword [esi + 0x36c], eax
lea eax, [ebp - 0x10]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov eax, dword [esi + 0x36c]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.KERNEL32.dll_ReadFile
sub esp, 0x14
test eax, eax
jne 0x610a6d1f
mov ebx, dword [0x610f08a0]
test ebx, ebx
jne 0x610a6cf9
mov dword [esp], edi
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [esi + 0x36c]
sub esp, 4
test eax, eax
jne 0x610a6cef
mov eax, dword [0x610f08a0]
xor ecx, ecx
mov edx, 0x610a6a6f
mov dword [esi + 0x36c], ecx
jmp 0x610a6bae
mov dword [esp], eax
call fcn.61054b50
jmp 0x610a6cd8
mov dword [esp + 0xc], 0x610a6aa5
mov dword [esp + 8], 0x610a6a50
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], 0x610f089c
call fcn.6108fd50
jmp 0x610a6cc3
mov dword [esp], edi
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [ebp - 0x10]
sub esp, 4
mov edx, dword [esi + 0x36c]
mov byte [eax + edx], 0
mov eax, dword [esi + 0x36c]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.610a6980
test eax, eax
jne 0x610a6d3d
mov eax, dword [0x610f08a0]
test eax, eax
jne 0x610a6d60
mov edx, 0x610a6a76
jmp 0x610a6bae
mov eax, dword [esi + 0x380]
mov dword [esp + 0xc], 0x610a6ab9
mov dword [esp + 8], 0x610a6a50
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], 0x40
mov dword [esp], 0x610f089c
mov dword [esp + 0x10], eax
call fcn.6108fd50
mov eax, dword [0x610f08a0]
jmp 0x610a6d56
mov eax, dword [0x610f08a0]
test eax, eax
je 0x610a6ba9
mov dword [esp + 0xc], 0x610a6aca
jmp 0x610a6bfa
mov dword [esp + 0xc], 0x610a6ae3
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], 0x610a6a50
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp + 0x10], eax
mov dword [esp], 0x610f089c
call fcn.6108fd50
jmp 0x610a6b58
mov dword [esp], eax
call fcn.61054b50
jmp 0x610a6b0a