Function at 0x452aa5
Capabilities:
Link many functions at runtime

Disassembly:
mov eax, 0x475688
call fcn.004549fc
push ecx
push ebx
push esi
push edi
mov esi, ecx
and dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [0x49887c], eax
mov al, byte [ebp + 0x34]
push str.CreateFileW
push 0x48f214
mov byte [esi + 0x14], al
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
test eax, eax
je 0x452b2a
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 0x34], 0x476650
test ecx, ecx
je 0x452afa
mov dword [ebp + 0x34], ecx
mov cl, byte [esi + 0x14]
push 0
mov dl, cl
push 0x80
neg dl
sbb edx, edx
add edx, 3
neg cl
sbb ecx, ecx
push edx
and ecx, 0x40000000
push 0
add ecx, 0x80000000
push 0
push ecx
push dword [ebp + 0x34]
call eax
jmp 0x452b79
push str.CreateFileA
push 0x48f214
call edi
push eax
call ebx
test eax, eax
mov dword [ebp - 0x10], eax
je 0x452b7c
lea ecx, [ebp + 8]
call fcn.0040b4a5
mov cl, byte [esi + 0x14]
mov dword [ebp + 0x34], eax
mov al, cl
xor edx, edx
neg al
sbb eax, eax
push edx
add eax, 3
push 0x80
neg cl
sbb ecx, ecx
push eax
and ecx, 0x40000000
push edx
add ecx, 0x80000000
push edx
push ecx
push dword [ebp + 0x34]
call dword [ebp - 0x10]
mov dword [esi + 0xc], eax
cmp dword [esi + 0xc], 0xffffffff
jne 0x452bbc
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0x28
mov dword [0x49887c], eax
mov dword [ebp + 0x34], esp
mov ecx, esp
lea eax, [ebp + 8]
push 0
push eax
mov dword [ecx], 0x476628
mov dword [ecx + 0x20], 0x476620
call fcn.00403c6a
call fcn.0043b2a7
add esp, 0x28
xor bl, bl
jmp 0x452cbe
push str.CreateFileMappingW
push 0x48f214
call edi
push eax
call ebx
xor ecx, ecx
cmp eax, ecx
jne 0x452be6
push str.CreateFileMappingA
push 0x48f214
call edi
push eax
call ebx
xor ecx, ecx
cmp eax, ecx
je 0x452c03
mov edx, dword [ebp + 0x30]
push ecx
push dword [edx]
mov dl, byte [esi + 0x14]
neg dl
sbb edx, edx
push ecx
and edx, 2
inc edx
inc edx
push edx
push ecx
push dword [esi + 0xc]
call eax
mov dword [esi + 0x10], eax
cmp dword [esi + 0x10], 0
jne 0x452c1f
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0x28
mov dword [0x49887c], eax
mov dword [ebp + 0x34], esp
jmp 0x452b93
push str.MapViewOfFile
push 0x48f214
call edi
push eax
call ebx
test eax, eax
je 0x452c51
mov ecx, dword [ebp + 0x30]
push dword [ecx]
mov cl, byte [esi + 0x14]
neg cl
sbb ecx, ecx
push 0
and ecx, 0xfffffffe
push 0
add ecx, 4
push ecx
push dword [esi + 0x10]
call eax
mov dword [esi + 4], eax
cmp dword [esi + 4], 0
jne 0x452c6d
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0x28
mov dword [0x49887c], eax
mov dword [ebp + 0x34], esp
jmp 0x452b93
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
test eax, eax
jne 0x452cb5
push str.GetFileSize
push 0x48f214
call edi
push eax
call ebx
test eax, eax
je 0x452c95
push 0
push dword [esi + 0xc]
call eax
mov ecx, dword [ebp + 0x30]
mov dword [ecx], eax
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
cmp eax, 0xffffffff
jne 0x452cb5
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0x28
mov dword [0x49887c], eax
mov dword [ebp + 0x34], esp
jmp 0x452b93
mov dword [esi + 0x18], eax
mov byte [esi + 8], 1
mov bl, 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00402424
mov ecx, dword [ebp - 0xc]
pop edi
mov al, bl
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x30