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

Disassembly:
push 0x1c
push 0x41d6d8
call fcn.0041d434
mov edi, ecx
mov dword [ebp - 0x24], edi
and dword [ebp - 0x20], 0
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4192c8
mov eax, 0x406d98
mov dword [ebp + 8], eax
lea ecx, [ebp - 0x20]
push ecx
mov edx, 0x81
mov ecx, eax
call fcn.00413eb9
mov esi, eax
mov dword [ebp - 0x1c], esi
test esi, esi
js 0x419561
mov eax, dword [ebp - 0x20]
add eax, 0x61
cmp eax, 0x60
jb 0x419552
lea ecx, [eax + 0x400000]
cmp ecx, eax
jb 0x419552
lea ebx, [ecx + 0x100000]
cmp ebx, ecx
jb 0x419552
cmp ebx, 0x600000
ja 0x419552
lea eax, [ebp - 0x2c]
push eax
push dword [edi + 0x418]
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x41933a
push 0x582
jmp 0x41941d
xor esi, esi
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x28], esi
jg 0x419349
cmp dword [ebp - 0x2c], ebx
je 0x41939d
push 0
push 0
push ebx
push dword [edi + 0x418]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x419376
push 0x58e
call fcn.0040e299
mov edx, eax
lea ecx, [ebp - 0x1c]
call fcn.004188ac
mov esi, dword [ebp - 0x1c]
push dword [edi + 0x418]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x41939d
push 0x593
call fcn.0040e299
mov edx, eax
lea ecx, [ebp - 0x1c]
call fcn.004188ac
mov esi, dword [ebp - 0x1c]
test esi, esi
js 0x419561
push dword [edi + 0x418]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
test eax, eax
jne 0x4193bc
push 0x59b
jmp 0x41941d
lea eax, [edi + 0x208]
push eax
push ebx
push 0
push 4
push 0
push dword [edi + 0x418]
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [edi + 0x41c], eax
test eax, eax
jne 0x4193e7
push 0x5a9
jmp 0x41941d
mov ecx, eax
call fcn.00418fff
mov esi, eax
mov dword [ebp - 0x1c], esi
test esi, esi
js 0x419561
push ebx
xor esi, esi
push esi
push esi
push 6
push dword [edi + 0x41c]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [edi + 0x420], eax
test eax, eax
jne 0x419434
push 0x5b8
call fcn.0040e299
mov edx, eax
lea ecx, [ebp - 0x1c]
call fcn.004188ac
mov esi, dword [ebp - 0x1c]
jmp 0x419561
mov dword [ebp - 4], esi
push ebx
push esi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, dword [edi + 0x420]
mov dword [ecx], 0x4020077
mov dword [ecx + 4], esi
mov dword [edi + 0x424], 0x60
mov esi, dword [ebp - 0x20]
lea eax, [esi + 0x61]
mov dword [edi + 0x428], eax
mov dword [edi + 0x42c], 0x400000
lea edx, [eax + 0x400000]
mov dword [edi + 0x430], edx
mov dword [edi + 0x434], 0x100000
mov dword [edi + 0x438], ebx
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x42c]
mov dword [ecx + 0xc], eax
xor edx, edx
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], edx
mov dword [ecx + 0x18], edx
mov dword [ecx + 0x1c], edx
mov dword [ecx + 0x20], edx
mov eax, dword [edi + 0x430]
mov dword [ecx + 0x24], eax
mov eax, dword [edi + 0x434]
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edx
mov dword [ecx + 0x30], edx
mov dword [ecx + 0x34], edx
mov dword [ecx + 0x38], edx
mov dword [ecx + 0x3c], edx
mov dword [ecx + 0x40], 0x80
mov eax, dword [edi + 0x424]
mov dword [ecx + 0x5c], eax
mov eax, dword [edi + 0x420]
cmp esi, edx
jbe 0x4194f7
push dword [ebp + 8]
lea edx, [esi + 1]
lea ecx, [eax + 0x60]
call fcn.0041874e
mov esi, eax
jmp 0x4194fc
mov byte [eax + 0x60], dl
mov esi, edx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0xfffffffe
jmp 0x419531
cmp esi, 0x80070570
jne 0x419542
mov ecx, edi
call fcn.00419c4e
jmp 0x419561
test esi, esi
js 0x419561
push ecx
mov ecx, edi
call fcn.00419680
mov esi, eax
jmp 0x419561
mov esi, 0x80070057
mov dword [0x41e74c], 0x57a
mov eax, esi
call fcn.0041d479
ret 0xc