Function at 0x46c982
Capabilities:
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a8
mov eax, dword [0x52e030]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov ebx, ecx
mov eax, dword [ebx + 4]
push edi
xor edi, edi
mov dword [ebp - 0x48], ebx
mov esi, edx
mov dword [ebp - 0x44], edi
cmp eax, 0xffffffff
jne 0x46c9b3
xor al, al
jmp 0x46cba0
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebx + 0xc], eax
cmp eax, 0xffffffff
je 0x46c9ac
push edi
push edi
push edi
or esi, 2
push esi
push edi
push dword [ebx + 4]
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebx], eax
cmp eax, edi
jne 0x46caa9
mov eax, dword [0x536494]
mov dword [ebp - 0x40], eax
mov ebx, str.MemoryMappedFile.CreateFileMapping
cmp eax, edi
jne 0x46ca38
push ebx
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0xc], 0xf
mov dword [ebp - 0x10], edi
mov byte [ebp - 0x20], 0
call fcn.00402da4
push 1
push 0x3e81
push 0x3e80
lea eax, [ebp - 0x20]
push 1
push eax
call fcn.00449904
add esp, 0x14
push 1
xor edi, edi
lea esi, [ebp - 0x20]
mov dword [ebp - 0x40], eax
call fcn.00402dc7
mov eax, dword [ebp - 0x40]
mov dword [0x536494], eax
xor esi, esi
inc esi
cmp dword [0x536218], esi
jne 0x46ca84
cmp dword [0x536220], 3
jg 0x46ca84
push ebx
lea edx, [eax + 8]
call fcn.0044a9c2
test eax, eax
je 0x46ca84
push 3
mov dword [ebp - 0x44], esi
pop eax
mov edi, 0x3ea
mov ebx, str.file_util_win.cc
lea esi, [ebp - 0xf8]
call fcn.0042b7c4
add eax, 8
push str.Check_failed:_histogram_pointer__histogram_name_____MemoryMappedFile.CreateFileMapping_.
push eax
call fcn.00403bcc
pop ecx
pop ecx
test byte [ebp - 0x44], 1
je 0x46ca95
lea ebx, [ebp - 0xf8]
call fcn.0042b903
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [ebp - 0x40]
push eax
call fcn.004475b4
jmp 0x46c9ac
push edi
push edi
push edi
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebx + 8], eax
cmp eax, edi
jne 0x46cb98
mov eax, dword [0x536498]
mov dword [ebp - 0x40], eax
cmp eax, edi
jne 0x46cb19
push str.MemoryMappedFile.MapViewOfFile
lea eax, [ebp - 0x3c]
push eax
mov dword [ebp - 0x28], 0xf
mov dword [ebp - 0x2c], edi
mov byte [ebp - 0x3c], 0
call fcn.00402da4
push 1
push 0x3e81
push 0x3e80
lea eax, [ebp - 0x3c]
push 1
push eax
call fcn.00449904
add esp, 0x14
push 1
xor edi, edi
lea esi, [ebp - 0x3c]
mov dword [ebp - 0x40], eax
call fcn.00402dc7
mov eax, dword [ebp - 0x40]
mov dword [0x536498], eax
cmp dword [0x536218], 1
jne 0x46cb73
cmp dword [0x536220], 3
jg 0x46cb73
mov edx, dword [ebp - 0x40]
push str.MemoryMappedFile.MapViewOfFile
add edx, 8
call fcn.0044a9c2
test eax, eax
je 0x46cb73
push 3
pop eax
mov edi, 0x3f2
mov ebx, str.file_util_win.cc
lea esi, [ebp - 0x1a8]
mov dword [ebp - 0x44], 2
call fcn.0042b7c4
add eax, 8
push str.Check_failed:_histogram_pointer__histogram_name_____MemoryMappedFile.MapViewOfFile_.
push eax
call fcn.00403bcc
mov ebx, dword [ebp - 0x48]
pop ecx
pop ecx
xor edi, edi
test byte [ebp - 0x44], 2
je 0x46cb89
lea ebx, [ebp - 0x1a8]
call fcn.0042b903
mov ebx, dword [ebp - 0x48]
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [ebp - 0x40]
push eax
call fcn.004475b4
xor eax, eax
cmp dword [ebx + 8], edi
setne al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00475360
leave
ret