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

Disassembly:
push 0xffffffffffffffff
push 0x100ad36c
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x100de040]
xor eax, esp
mov dword [esp + 0x238], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100de040]
xor eax, esp
push eax
lea eax, [esp + 0x254]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x264]
xor ebp, ebp
xor eax, eax
mov word [esp + 0x34], ax
mov edi, ecx
mov eax, ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x10017da2
sub eax, edx
sar eax, 1
push eax
push ebx
lea esi, [esp + 0x38]
call fcn.10002530
mov ecx, esi
push ecx
add edi, 0x54
push edi
mov dword [esp + 0x264], ebp
call fcn.100192f0
cmp dword [esp + 0x48], 8
jb 0x10017de3
mov edx, dword [esp + 0x34]
push edx
call fcn.1006243d
add esp, 4
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
push ebp
push ebp
push 3
push ebp
mov ebp, 1
push ebp
push 0xc0000000
push ebx
call edi
mov esi, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x25c], ebp
cmp esi, 0xffffffff
jne 0x10017e71
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x10017e44
cmp eax, 0x20
je 0x10017e44
cmp eax, 0xa7
je 0x10017e44
cmp eax, 0x21
je 0x10017e44
cmp eax, 0x13
je 0x10017e44
test eax, eax
jle 0x10017e3d
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
jmp 0x10018156
push 0
push 0
push 3
push 0
push ebp
push connect
push ebx
call edi
mov esi, eax
mov dword [esp + 0x14], esi
cmp eax, 0xffffffff
jne 0x10017e6a
call fcn.10002d30
jmp 0x10018161
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x14], ebp
lea ecx, [esp + 0x24]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x10017e9d
call fcn.10002d30
mov edi, eax
cmp esi, 0xffffffff
je 0x1001815f
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1001815f
push 0x1ff
lea edx, [esp + 0x51]
push 0
push edx
mov byte [esp + 0x58], 0
call fcn.10064e10
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
add esp, 0xc
push 0
lea eax, [esp + 0x24]
push eax
push 0x200
lea ecx, [esp + 0x58]
push ecx
push esi
mov dword [esp + 0x34], 0
call ebp
test eax, eax
je 0x10017e81
mov eax, 0x15
mov ecx, str._Disk_DescriptorFile
lea edx, [esp + 0x4c]
lea ebx, [ebx]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x10017ffa
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x10017ef0
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10017ffa
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x24]
jl 0x10017f3c
jg 0x10017f26
cmp eax, 0x100000
jb 0x10017f3c
cmp esi, 0xffffffff
je 0x10017f32
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x80004005
jmp 0x10018161
inc eax
push 0x100e33b4
push eax
call fcn.100628bb
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
mov byte [esp + 0x25c], 2
test edi, edi
jne 0x10017f73
cmp esi, 0xffffffff
je 0x10017f69
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x8007000e
jmp 0x10018161
mov ecx, dword [esp + 0x24]
inc ecx
push ecx
push 0
push edi
call fcn.10064e10
add esp, 0xc
xor ecx, ecx
push ecx
push ecx
push ecx
xor eax, eax
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x10017fba
call fcn.10002d30
push edi
mov ebx, eax
call fcn.100628c6
add esp, 4
cmp esi, 0xffffffff
je 0x10017fb3
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
jmp 0x10018161
mov eax, dword [esp + 0x24]
push 0
lea edx, [esp + 0x24]
push edx
push eax
push edi
push esi
call ebp
test eax, eax
je 0x10017f97
mov ecx, dword [esp + 0x1c]
push 0
push ebx
push edi
push ecx
call fcn.10018190
push edi
mov ebx, eax
call fcn.100628c6
add esp, 4
cmp esi, 0xffffffff
je 0x10017fb3
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
jmp 0x10018161
mov eax, dword [esp + 0x4c]
cmp eax, 0x44574f43
jne 0x1001801b
cmp esi, 0xffffffff
je 0x10018011
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xe0033001
jmp 0x10018161
cmp eax, 0x564d444b
je 0x10018038
cmp esi, 0xffffffff
je 0x1001802e
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xe00e1001
jmp 0x10018161
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push 0
push 0x200
push edx
push eax
call fcn.100ab490
or eax, edx
je 0x10018068
cmp esi, 0xffffffff
je 0x1001805e
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xe003300c
jmp 0x10018161
mov ecx, dword [esp + 0x68]
or ecx, dword [esp + 0x6c]
jne 0x10018088
cmp esi, 0xffffffff
je 0x1001807e
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xe0033005
jmp 0x10018161
cmp word [esp + 0x99], 0
je 0x100180a6
lea esi, [esp + 0x14]
call fcn.1000fee0
mov eax, 0xe0033003
jmp 0x10018161
mov edi, dword [esp + 0x70]
shl edi, 9
push 0x100e33b4
push edi
call fcn.100628bb
mov ebp, eax
add esp, 8
mov dword [esp + 0x18], ebp
mov byte [esp + 0x25c], 3
test ebp, ebp
jne 0x100180e6
lea esi, [esp + 0x18]
call fcn.10008990
lea esi, [esp + 0x14]
call fcn.1000fee0
mov eax, 0x8007000e
jmp 0x10018161
push edi
push 0
push ebp
call fcn.10064e10
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
add esp, 0xc
push 0
push 0x200
push edx
push eax
call fcn.10070c30
push 0
push 0
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x10018120
call fcn.10002d30
jmp 0x1001814b
push 0
lea ecx, [esp + 0x24]
push ecx
push edi
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10018119
lea esi, [esp + 0x14]
call fcn.1001a0f0
mov edx, dword [esp + 0x1c]
push 1
push ebx
push ebp
push edx
call fcn.10018190
lea esi, [esp + 0x18]
mov edi, eax
call fcn.10008990
lea esi, [esp + 0x14]
call fcn.1000fee0
mov eax, edi
mov ecx, dword [esp + 0x254]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x238]
xor ecx, esp
call fcn.10062448
add esp, 0x24c
ret 4