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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43fd99
mov eax, dword fs:[0]
push eax
mov eax, 0x424c
call fcn.00420ed0
mov eax, dword [0x45706c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x230]
mov esi, 0x104
mov dword [ebp - 0x4250], edi
push esi
push eax
push dword [0x458cbc]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x40ffb7
cmp eax, esi
jae 0x40ffb7
xor ebx, ebx
mov esi, ebx
mov dword [ebp - 0x423c], ebx
mov dword [ebp - 0x4258], esi
mov dword [ebp - 0x4254], ebx
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocStringLen
lea eax, [ebp - 0x230]
mov dword [ebp - 4], ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x40fd76
call fcn.00407180
jmp 0x40fd80
mov esi, eax
mov eax, ebx
mov dword [ebp - 0x4258], esi
test eax, eax
jns 0x40fda4
push 0x44ca18
mov ecx, edi
call fcn.00402b0d
test esi, esi
je 0x40ffc3
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40ffc3
lea eax, [ebp - 0x4234]
xorps xmm0, xmm0
push eax
push esi
movlpd qword [ebp - 0x4248], xmm0
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
mov dword [ebp - 0x4238], ebx
cmp ebx, 0xffffffff
jne 0x40fdef
call fcn.00407180
test eax, eax
jns 0x40fde9
mov ecx, dword [ebp - 0x4244]
mov ebx, dword [ebp - 0x4248]
mov dword [ebp - 0x4234], ecx
xor ecx, ecx
jmp 0x40fdff
mov ebx, dword [ebp - 0x4238]
mov ecx, dword [ebp - 0x4234]
mov dword [ebp - 0x4234], ecx
xor ecx, ecx
mov eax, ecx
test eax, eax
js 0x40fd84
push 0x2000
push ecx
lea eax, [ebp - 0x2230]
push eax
call fcn.00421f80
mov eax, dword [ebp - 0x4234]
add esp, 0xc
sub ebx, 0x2000
mov dword [ebp - 0x4248], ebx
push 0
pop ecx
sbb eax, ecx
push ecx
mov dword [ebp - 0x4244], eax
lea eax, [ebp - 0x4244]
push eax
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x40fe57
call fcn.00407180
test eax, eax
jns 0x40fe57
xor ebx, ebx
jmp 0x40fe5b
xor ebx, ebx
mov eax, ebx
test eax, eax
js 0x40fd84
push ebx
lea eax, [ebp - 0x424c]
mov dword [ebp - 0x424c], ebx
push eax
push 0x2000
lea eax, [ebp - 0x2230]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40fe8f
call fcn.00407180
jmp 0x40fe91
mov eax, ebx
test eax, eax
js 0x40fd84
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x40feba
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x423c]
jne 0x40fea5
sub ecx, ebx
sar ecx, 1
jne 0x40feff
push 0x43
pop eax
push 0x55
mov word [ebp - 0x24], ax
lea edx, [ebp - 0x24]
pop eax
push 0x53
mov word [ebp - 0x22], ax
pop eax
push 0x54
pop ecx
push 0x44
mov word [ebp - 0x20], ax
pop eax
push 0x41
mov word [ebp - 0x1c], ax
pop eax
mov word [ebp - 0x1a], ax
mov word [ebp - 0x16], ax
push 0x40
pop eax
mov word [ebp - 0x14], ax
xor eax, eax
mov word [ebp - 0x1e], cx
mov word [ebp - 0x18], cx
mov word [ebp - 0x12], ax
mov dword [ebp + 0xc], edx
xor eax, eax
lea ebx, [edx + 2]
mov ecx, eax
mov dword [ebp - 0x4234], ecx
mov ax, word [edx]
add edx, 2
cmp ax, word [ebp - 0x423c]
jne 0x40ff0c
sub edx, ebx
sar edx, 1
xor eax, eax
mov ebx, eax
test edx, edx
jle 0x40ff5f
mov edi, dword [ebp - 0x4234]
mov esi, dword [ebp + 0xc]
mov al, byte [esi + ebx*2]
lea ecx, [ebp - 0x2230]
add ecx, edi
inc edi
cmp byte [ecx], al
jne 0x40ff45
inc ebx
cmp ebx, edx
jl 0x40ff30
mov esi, dword [ebp - 0x4258]
xor eax, eax
mov dword [ebp - 0x4234], edi
mov edi, dword [ebp - 0x4250]
mov ecx, dword [ebp - 0x4234]
cmp ebx, edx
je 0x40ff70
cmp ecx, 0x2000
jl 0x40ff21
jmp 0x40fd84
mov ebx, 0x2000
push ebx
push eax
lea eax, [ebp - 0x4230]
push eax
call fcn.00421f80
mov eax, dword [ebp - 0x4234]
lea ecx, [ebp - 0x2230]
sub ebx, eax
add eax, ecx
push ebx
push eax
lea eax, [ebp - 0x4230]
push eax
call fcn.00422150
add esp, 0x18
lea eax, [ebp - 0x4230]
mov ecx, edi
push eax
call fcn.0040ffe3
jmp 0x40fd90
push 0x44ca18
mov ecx, edi
call fcn.00402b0d
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041fc33
mov esp, ebp
pop ebp
ret 8