Function at 0x43658d
Capabilities:
Read file via mapping

Disassembly:
push 0x27c
mov eax, 0x48f487
call fcn.0044c99a
mov esi, ecx
xor ebx, ebx
push ebx
push dword [esi + 0xc]
push ebx
push 2
push ebx
push dword [esi + 0x34]
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [esi + 0x38], eax
test eax, eax
jne 0x4368b0
push 7
push str.GPCUtil
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], 0xf
mov byte [ebp - 0xb8], bl
call fcn.004035a0
lea eax, [ebp - 0xb8]
mov dword [ebp - 4], ebx
push eax
call fcn.004442a8
push 0xf
pop esi
mov ebx, eax
mov dword [esp], str.::GetLastError__
xor eax, eax
mov dword [ebp - 0x44], esi
mov byte [ebp - 0x284], al
lea ecx, [ebp - 0x58]
push dword [ebp - 0x284]
mov dword [ebp - 0x48], eax
push 0x10
mov byte [ebp - 0x58], al
call fcn.00404140
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.00444349
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 2
push ecx
push eax
lea ecx, [ebp - 0x1f0]
call fcn.0043fb19
mov edi, eax
xor eax, eax
mov byte [ebp - 4], 3
push eax
push 0x4ae71b
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x40], al
call fcn.004035a0
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 4
push str.create_file_mapping_failed
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 5
push ecx
push eax
lea ecx, [ebp - 0x1c0]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 6
push eax
push 0x4ae71b
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
call fcn.004035a0
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 7
push str.CFileMapping::_OpenFileMapping
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 8
push ecx
push eax
lea ecx, [ebp - 0x190]
call fcn.0043fb19
push edi
push esi
push eax
mov ecx, ebx
mov byte [ebp - 4], 9
call fcn.00444591
lea ecx, [ebp - 0x178]
call fcn.00403060
lea ecx, [ebp - 0x190]
call fcn.00403060
lea ecx, [ebp - 0xe8]
call fcn.00403060
mov eax, dword [ebp - 0x14]
mov esi, 0x1000
push 0x10
pop edi
cmp eax, edi
jb 0x436767
mov ecx, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], ecx
cmp eax, esi
jb 0x43675e
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x288]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x284]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
xor ebx, ebx
mov dword [ebp - 0x14], 0xf
lea ecx, [ebp - 0x1a8]
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
call fcn.00403060
lea ecx, [ebp - 0x1c0]
call fcn.00403060
lea ecx, [ebp - 0x100]
call fcn.00403060
mov eax, dword [ebp - 0x2c]
cmp eax, edi
jb 0x4367dc
mov ecx, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x4367d3
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
lea ecx, [ebp - 0x1d8]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], bl
call fcn.00403060
lea ecx, [ebp - 0x1f0]
call fcn.00403060
lea ecx, [ebp - 0x118]
call fcn.00403060
mov eax, dword [ebp - 0x44]
cmp eax, edi
jb 0x43684f
mov ecx, dword [ebp - 0x58]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x436846
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], bl
cmp eax, edi
jb 0x436bc0
mov ecx, dword [ebp - 0xb8]
inc eax
mov dword [ebp - 0x288], ecx
mov dword [ebp - 0x284], eax
cmp eax, esi
jb 0x4368a2
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
jmp 0x436bc0
push dword [esi + 0xc]
push ebx
push ebx
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, eax
mov dword [esi + 0x10], ecx
test ecx, ecx
jne 0x436bb2
push 7
push str.GPCUtil
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], 0xf
mov byte [ebp - 0xd0], bl
call fcn.004035a0
lea eax, [ebp - 0xd0]
mov dword [ebp - 4], 0xa
push eax
call fcn.004442a8
push 0xf
pop esi
mov ebx, eax
mov dword [esp], str.::GetLastError__
xor eax, eax
mov dword [ebp - 0x8c], esi
mov byte [ebp - 0x284], al
lea ecx, [ebp - 0xa0]
push dword [ebp - 0x284]
mov dword [ebp - 0x90], eax
push 0x10
mov byte [ebp - 0xa0], al
call fcn.00404140
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x160]
push eax
call fcn.00444349
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0xc
push ecx
push eax
lea ecx, [ebp - 0x280]
call fcn.0043fb19
mov edi, eax
xor eax, eax
mov byte [ebp - 4], 0xd
push eax
push 0x4ae71b
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], esi
mov byte [ebp - 0x88], al
call fcn.004035a0
lea eax, [ebp - 0x148]
mov byte [ebp - 4], 0xe
push str.map_view_of_file_failed
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xf
push ecx
push eax
lea ecx, [ebp - 0x250]
call fcn.0043fb19
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x10
push eax
push 0x4ae71b
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], al
call fcn.004035a0
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0x11
push str.CFileMapping::_OpenFileMapping
push eax
call fcn.00444448
pop ecx
pop ecx
push 0
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x12
push ecx
push eax
lea ecx, [ebp - 0x220]
call fcn.0043fb19
push edi
push esi
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x13
call fcn.00444591
lea ecx, [ebp - 0x208]
call fcn.00403060
lea ecx, [ebp - 0x220]
call fcn.00403060
lea ecx, [ebp - 0x130]
call fcn.00403060
mov eax, dword [ebp - 0x5c]
mov esi, 0x1000
cmp eax, 0x10
jb 0x436a90
mov ecx, dword [ebp - 0x70]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x436a87
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
xor ebx, ebx
mov dword [ebp - 0x5c], 0xf
lea ecx, [ebp - 0x238]
mov dword [ebp - 0x60], ebx
mov byte [ebp - 0x70], bl
call fcn.00403060
lea ecx, [ebp - 0x250]
call fcn.00403060
lea ecx, [ebp - 0x148]
call fcn.00403060
mov eax, dword [ebp - 0x74]
cmp eax, 0x10
jb 0x436b09
mov ecx, dword [ebp - 0x88]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x436b00
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
lea ecx, [ebp - 0x268]
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], bl
call fcn.00403060
lea ecx, [ebp - 0x280]
call fcn.00403060
lea ecx, [ebp - 0x160]
call fcn.00403060
mov eax, dword [ebp - 0x8c]
cmp eax, 0x10
jb 0x436b86
mov ecx, dword [ebp - 0xa0]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x436b7d
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004017b0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.0044c6c2
pop ecx
pop ecx
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], bl
cmp eax, 0x10
jb 0x436bc0
mov ecx, dword [ebp - 0xd0]
jmp 0x436870
mov eax, dword [esi + 0xc]
xor ebx, ebx
add eax, ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], eax
inc ebx
mov eax, ebx
call fcn.0044c944
ret