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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c7167
mov eax, dword fs:[0]
push eax
sub esp, 0x82c
mov eax, dword [0x4fc00c]
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 dword [ebp - 0x2c], ecx
call fcn.0047f110
mov ecx, eax
test ecx, ecx
jne 0x492056
push 0x80004005
call fcn.0047ee80
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
call fcn.00491eb0
mov esi, dword [ebp - 0x28]
test eax, eax
js 0x492295
push 0
push 0
push 3
push 0
push 0
push SysReAllocString
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4920bb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
lea eax, [ebp - 0x838]
push 0x4ea958
push eax
call fcn.004a65c0
mov byte [ebp - 4], 1
jmp 0x492269
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
test ebx, ebx
je 0x492245
cmp ebx, 0xffffffff
je 0x492245
xorps xmm0, xmm0
push ebx
movq qword [ebp - 0x20], xmm0
call fcn.004be464
add esp, 4
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x1c], 0
push eax
call fcn.0049f7d0
xorps xmm0, xmm0
mov byte [ebp - 4], 3
push ebx
movq qword [ebp - 0x18], xmm0
call fcn.004be464
add esp, 4
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x14], 0
push eax
call fcn.0049f7d0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4921ed
cmp dword [ebp - 0x18], 0
je 0x4921ed
push 0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
push ecx
push ebx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x492187
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
lea eax, [ebp - 0x838]
push 0x4eaa00
push eax
call fcn.004a65c0
mov byte [ebp - 4], 6
add esp, 0xc
jmp 0x492205
push dword [ebp - 0x18]
push ebx
push dword [ebp - 0x20]
call fcn.004924a0
test eax, eax
jns 0x4921b9
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
lea eax, [ebp - 0x838]
push str.ReadCrossDomainContent
push eax
call fcn.004a65c0
mov byte [ebp - 4], 7
add esp, 8
jmp 0x492205
push ebx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x30]
call fcn.00493ae0
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 4], 8
add ecx, 0x44
push dword [eax]
call fcn.004846b0
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 4
call fcn.0047f1f0
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
jmp 0x492233
lea eax, [ebp - 0x838]
push str.ReadCrossDomainContent_Buffer
push eax
call fcn.004a65c0
mov byte [ebp - 4], 5
add esp, 4
push dword [eax]
push 2
call fcn.004b5db0
mov ecx, eax
call fcn.004b5f10
mov eax, dword [ebp - 0x838]
lea ecx, [ebp - 0x830]
cmp eax, ecx
je 0x49222e
push eax
call fcn.004be72b
add esp, 4
mov edi, 0x80004005
lea ecx, [ebp - 0x18]
call fcn.00492760
lea ecx, [ebp - 0x20]
call fcn.00492760
jmp 0x49229a
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
lea eax, [ebp - 0x838]
push 0x4ea978
push eax
call fcn.004a65c0
mov byte [ebp - 4], 2
add esp, 0xc
push dword [eax]
push 2
call fcn.004b5db0
mov ecx, eax
call fcn.004b5f10
mov eax, dword [ebp - 0x838]
lea ecx, [ebp - 0x830]
cmp eax, ecx
je 0x492295
push eax
call fcn.004be72b
add esp, 4
mov edi, 0x80004005
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4922b9
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
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.004bde8e
mov esp, ebp
pop ebp
ret