Function at 0x53f95d
Capabilities:
Read file via mapping

Disassembly:
push 0x27c
mov eax, 0x797988
call fcn.00700ca1
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 0x53fc80
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.00439710
lea eax, [ebp - 0xb8]
mov dword [ebp - 4], ebx
push eax
call fcn.006210e3
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.0043a610
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.006211a2
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.0061c551
mov edi, eax
xor eax, eax
mov byte [ebp - 4], 3
push eax
push 0x858903
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x40], al
call fcn.00439710
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 4
push str.create_file_mapping_failed
push eax
call fcn.006212a1
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.0061c551
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 6
push eax
push 0x858903
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
call fcn.00439710
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 7
push str.CFileMapping::_OpenFileMapping
push eax
call fcn.006212a1
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.0061c551
push edi
push esi
push eax
mov ecx, ebx
mov byte [ebp - 4], 9
call fcn.00621500
lea ecx, [ebp - 0x178]
call fcn.00438e20
lea ecx, [ebp - 0x190]
call fcn.00438e20
lea ecx, [ebp - 0xe8]
call fcn.00438e20
mov eax, dword [ebp - 0x14]
mov esi, 0x1000
push 0x10
pop edi
cmp eax, edi
jb 0x53fb37
mov ecx, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], ecx
cmp eax, esi
jb 0x53fb2e
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.004343f0
mov eax, dword [ebp - 0x288]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x284]
push eax
push ecx
call fcn.007009b8
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.00438e20
lea ecx, [ebp - 0x1c0]
call fcn.00438e20
lea ecx, [ebp - 0x100]
call fcn.00438e20
mov eax, dword [ebp - 0x2c]
cmp eax, edi
jb 0x53fbac
mov ecx, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x53fba3
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004343f0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.007009b8
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.00438e20
lea ecx, [ebp - 0x1f0]
call fcn.00438e20
lea ecx, [ebp - 0x118]
call fcn.00438e20
mov eax, dword [ebp - 0x44]
cmp eax, edi
jb 0x53fc1f
mov ecx, dword [ebp - 0x58]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x53fc16
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004343f0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.007009b8
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 0x53ff90
mov ecx, dword [ebp - 0xb8]
inc eax
mov dword [ebp - 0x288], ecx
mov dword [ebp - 0x284], eax
cmp eax, esi
jb 0x53fc72
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004343f0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.007009b8
pop ecx
pop ecx
jmp 0x53ff90
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 0x53ff82
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.00439710
lea eax, [ebp - 0xd0]
mov dword [ebp - 4], 0xa
push eax
call fcn.006210e3
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.0043a610
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x160]
push eax
call fcn.006211a2
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.0061c551
mov edi, eax
xor eax, eax
mov byte [ebp - 4], 0xd
push eax
push 0x858903
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], esi
mov byte [ebp - 0x88], al
call fcn.00439710
lea eax, [ebp - 0x148]
mov byte [ebp - 4], 0xe
push str.map_view_of_file_failed
push eax
call fcn.006212a1
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.0061c551
mov esi, eax
xor eax, eax
mov byte [ebp - 4], 0x10
push eax
push 0x858903
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], al
call fcn.00439710
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0x11
push str.CFileMapping::_OpenFileMapping
push eax
call fcn.006212a1
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.0061c551
push edi
push esi
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x13
call fcn.00621500
lea ecx, [ebp - 0x208]
call fcn.00438e20
lea ecx, [ebp - 0x220]
call fcn.00438e20
lea ecx, [ebp - 0x130]
call fcn.00438e20
mov eax, dword [ebp - 0x5c]
mov esi, 0x1000
cmp eax, 0x10
jb 0x53fe60
mov ecx, dword [ebp - 0x70]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x53fe57
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004343f0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.007009b8
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.00438e20
lea ecx, [ebp - 0x250]
call fcn.00438e20
lea ecx, [ebp - 0x148]
call fcn.00438e20
mov eax, dword [ebp - 0x74]
cmp eax, 0x10
jb 0x53fed9
mov ecx, dword [ebp - 0x88]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x53fed0
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004343f0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.007009b8
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.00438e20
lea ecx, [ebp - 0x280]
call fcn.00438e20
lea ecx, [ebp - 0x160]
call fcn.00438e20
mov eax, dword [ebp - 0x8c]
cmp eax, 0x10
jb 0x53ff56
mov ecx, dword [ebp - 0xa0]
inc eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], ecx
cmp eax, esi
jb 0x53ff4d
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.004343f0
mov eax, dword [ebp - 0x284]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x288]
push eax
push ecx
call fcn.007009b8
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 0x53ff90
mov ecx, dword [ebp - 0xd0]
jmp 0x53fc40
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.00700c4b
ret