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

Disassembly:
push ebp
lea ebp, [esp - 0x20f4]
mov eax, 0x20f4
call fcn.00448540
push 0xffffffffffffffff
push 0x4773eb
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x48f120]
xor eax, ebp
mov dword [ebp + 0x20f0], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [edi]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x3c], esi
mov byte [ebp - 0x38], 1
lea eax, [edi + 4]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp + 0xd8]
call fcn.00410470
cmp dword [ebp + 0xec], 8
lea eax, [ebp + 0xd8]
push 0
cmovae eax, dword [ebp + 0xd8]
push 0x80
push 3
push 0
push 1
push Ordinal_1
push eax
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x411bd0
xor bl, bl
jmp 0x411f78
lea eax, [ebp - 0x2c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov ecx, dword [edi]
lea eax, [ebp + 0xd8]
add ecx, 0x98
cmp ecx, eax
je 0x411c07
cmp dword [ebp + 0xec], 8
push dword [ebp + 0xe8]
cmovae eax, dword [ebp + 0xd8]
push eax
call fcn.004172f0
cmp dword [ebp + 0xe8], 0x40
jbe 0x411cb6
lea eax, [ebp + 0x90]
push eax
lea ecx, [edi + 4]
call fcn.00417540
push eax
lea ecx, [ebp + 0xc0]
mov byte [ebp - 4], 2
call fcn.00410470
mov ecx, dword [edi]
lea eax, [ebp + 0xc0]
push eax
add ecx, 0x98
call fcn.00406960
lea ecx, [ebp + 0xc0]
call fcn.004063e0
lea ecx, [ebp + 0x90]
mov byte [ebp - 4], 1
call fcn.004063e0
mov ecx, dword [edi]
cmp dword [ecx + 0xa8], 0x40
jbe 0x411cb6
add ecx, 0x98
mov edx, dword [ecx + 0x10]
lea eax, [ecx + 0x10]
cmp edx, 0x3d
jb 0x411c93
cmp dword [ecx + 0x14], 8
jb 0x411c85
mov ecx, dword [ecx]
mov dword [eax], 0x3d
xor eax, eax
mov word [ecx + 0x7a], ax
jmp 0x411ca2
mov eax, 0x3d
push 0
sub eax, edx
push eax
call fcn.00416fe0
mov ecx, dword [edi]
push 3
add ecx, 0x98
push 0x47b5a0
call fcn.00417180
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
test edx, edx
jne 0x411d9b
cmp ecx, 0x40000000
ja 0x411d9b
test edx, edx
jne 0x411d65
cmp ecx, 0x100000
ja 0x411d65
test edx, edx
jne 0x411d3b
cmp ecx, 0x400
ja 0x411d3b
lea eax, [ebp + 0x50]
mov dword [ebp], str._bytes
push eax
push edx
push ecx
mov dword [ebp + 4], 6
call fcn.00443dd0
lea edx, [ebp + 0x48]
mov ecx, 0xfffffff8
sub ecx, edx
add eax, ecx
lea ecx, [ebp + 0x50]
sar eax, 1
mov dword [ebp + 0x4c], eax
lea eax, [ebp]
push eax
mov eax, edx
mov dword [ebp + 0x48], ecx
push eax
lea eax, [ebp + 0xa8]
push eax
call fcn.00443b80
add esp, 0x18
jmp 0x411dde
call fcn.004488c0
mulsd xmm0, qword [0x47b950]
lea eax, [ebp - 0x54]
push 1
push eax
mov dword [ebp - 0x44], 4
mov byte [ebp - 0x4c], 8
movsd qword [ebp - 0x54], xmm0
push str._.2f_KB
jmp 0x411dcf
call fcn.004488c0
mulsd xmm0, qword [0x47b948]
lea eax, [ebp + 0x90]
push 1
push eax
mov dword [ebp + 0xa0], 4
mov byte [ebp + 0x98], 8
movsd qword [ebp + 0x90], xmm0
push str._.2f_MB
jmp 0x411dcf
call fcn.004488c0
mulsd xmm0, qword [0x47b940]
lea eax, [ebp + 0xc0]
push 1
push eax
mov dword [ebp + 0xd0], 4
mov byte [ebp + 0xc8], 8
movsd qword [ebp + 0xc0], xmm0
push str._.2f_GB
lea eax, [ebp + 0xa8]
push eax
call fcn.004450d0
add esp, 0x10
mov ecx, dword [edi]
lea eax, [ebp + 0xa8]
push eax
add ecx, 0xb0
call fcn.00406960
lea ecx, [ebp + 0xa8]
call fcn.004063e0
mov eax, dword [edi]
push 1
push 0
push dword [eax + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [edi + 0x1c]
lea eax, [ebp - 0x34]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x20], xmm0
call fcn.00418640
add esp, 8
cmp dword [ebp - 0x34], 0
mov byte [ebp - 4], 3
jne 0x411e34
xor bl, bl
jmp 0x411f48
push 0
lea eax, [ebp - 0x14]
push eax
push 0x2000
lea eax, [ebp + 0xf0]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x411eed
mov eax, dword [ebp - 0x1c]
xor esi, esi
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x34]
lea edx, [ebp + 0xf0]
push dword [ebp - 0x14]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
push 0
adc eax, 0
mov dword [ebp - 0x1c], ecx
push 0x64
push eax
push ecx
mov dword [ebp - 0x24], eax
call fcn.00448200
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push edx
push eax
call fcn.00448490
mov ecx, dword [edi]
mov edx, eax
add ecx, 0xe0
xchg dword [ecx], edx
cmp esi, eax
je 0x411ec0
mov esi, eax
mov eax, dword [edi]
push 0
push 0
push dword [eax + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [ebp - 0x14], 0x2000
jb 0x411eea
push 0
lea eax, [ebp - 0x14]
push eax
push 0x2000
lea eax, [ebp + 0xf0]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x411e63
mov esi, dword [ebp - 0x18]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [edi]
cmp dword [eax + 0xdc], 8
lea ecx, [eax + 0xc8]
jb 0x411f0b
mov ecx, dword [eax + 0xc8]
mov dword [eax + 0xd8], 0
xor eax, eax
push eax
push eax
mov word [ecx], ax
mov eax, dword [edi]
push 0xf0
push dword [eax + 0x50]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x34]
cmp eax, 1
mov eax, dword [edi]
sete byte [ebp - 0x18]
add eax, 0xc8
push dword [ebp - 0x18]
mov edx, dword [ecx]
push eax
call dword [edx + 8]
mov bl, 1
mov edi, dword [ebp - 0x30]
mov byte [ebp - 0xd], bl
test edi, edi
je 0x411f78
mov ebx, 0xffffffff
mov eax, ebx
lock xadd dword [edi + 4], eax
jne 0x411f75
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], ebx
dec ebx
jne 0x411f75
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov bl, byte [ebp - 0xd]
mov edx, dword [ebp + 0xec]
cmp edx, 8
jb 0x411fb4
mov ecx, dword [ebp + 0xd8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x411faa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412000
push edx
push ecx
call fcn.00447f48
add esp, 8
xor eax, eax
mov dword [ebp + 0xe8], 0
xor cl, cl
mov dword [ebp + 0xec], 7
mov word [ebp + 0xd8], ax
add esi, 0xe4
xchg byte [esi], cl
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x20f0]
xor ecx, ebp
call fcn.004481b5
lea esp, [ebp + 0x20f4]
pop ebp
ret
call fcn.00461ad5
int3
add ecx, 4
jmp 0x411b30