Function at 0x403248
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
cmp byte [0x41f238], 0
jne 0x4034be
call sub.kernel32.dll_GetCurrentProcessId
mov ebx, eax
xor eax, eax
mov ecx, eax
shl ecx, 2
mov edx, ebx
shr edx, cl
and edx, 0xf
mov dl, byte [edx + 0x41c020]
mov ecx, 0x18
sub ecx, eax
mov byte [ecx + 0x41c734], dl
mov ecx, 8
sub ecx, eax
mov byte [ecx + 0x41c74f], dl
mov byte [ecx + 0x41c763], dl
inc eax
cmp eax, 8
jne 0x403263
push 0x41c750
push 0x4034c4
call sub.user32.dll_FindWindowA
mov dword [0x41f22c], eax
push 0x41c764
push 0x4034c4
call sub.user32.dll_FindWindowA
mov dword [0x41f230], eax
push 0x41c734
push 0
push 4
call sub.kernel32.dll_OpenFileMappingA
mov dword [0x41f234], eax
mov eax, dword [0x41f22c]
or eax, dword [0x41f230]
or eax, dword [0x41f234]
jne 0x4033e8
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [section.BSS]
push eax
push 0
mov edx, 0x41c750
mov eax, 0x4034c4
mov ecx, 0x80000000
call fcn.004013f0
mov dword [0x41f22c], eax
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [section.BSS]
push eax
push 0
mov edx, 0x41c764
mov eax, 0x4034c4
mov ecx, 0x80000000
call fcn.004013f0
mov dword [0x41f230], eax
cmp dword [0x41f22c], 0
je 0x403362
push 0x41f220
push 0xffffffffffffffeb
mov eax, dword [0x41f22c]
push eax
call sub.user32.dll_SetWindowLongA
cmp dword [0x41f230], 0
je 0x40337d
push 0x41f220
push 0xffffffffffffffeb
mov eax, dword [0x41f230]
push eax
call sub.user32.dll_SetWindowLongA
push 0x41c734
push 4
push 0
push 4
push 0
push 0xffffffffffffffff
call sub.kernel32.dll_CreateFileMappingA
mov dword [0x41f234], eax
push 0
push 0
push 0
push 2
mov eax, dword [0x41f234]
push eax
call sub.kernel32.dll_MapViewOfFile
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [eax], 0x41f220
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_UnmapViewOfFile
mov dword [0x41f220], 0x401edc
mov dword [0x41f224], 0x4021d8
mov dword [0x41f228], 0x402374
mov byte [0x41f239], 1
jmp 0x4034a3
cmp dword [0x41f234], 0
je 0x403431
push 0
push 0
push 0
push 4
mov eax, dword [0x41f234]
push eax
call sub.kernel32.dll_MapViewOfFile
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [0x41f220], edx
mov edx, dword [eax + 4]
mov dword [0x41f224], edx
mov edx, dword [eax + 8]
mov dword [0x41f228], edx
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_UnmapViewOfFile
jmp 0x40348a
cmp dword [0x41f22c], 0
je 0x403463
push 0xffffffffffffffeb
mov eax, dword [0x41f22c]
push eax
call sub.user32.dll_GetWindowLongA
mov edx, dword [eax]
mov dword [0x41f220], edx
mov edx, dword [eax + 4]
mov dword [0x41f224], edx
mov edx, dword [eax + 8]
mov dword [0x41f228], edx
jmp 0x40348a
push 0xffffffffffffffeb
mov eax, dword [0x41f230]
push eax
call sub.user32.dll_GetWindowLongA
mov edx, dword [eax]
mov dword [0x41f220], edx
mov edx, dword [eax + 4]
mov dword [0x41f224], edx
mov edx, dword [eax + 8]
mov dword [0x41f228], edx
mov eax, dword [0x41f234]
push eax
call sub.kernel32.dll_CloseHandle
xor eax, eax
mov dword [0x41f234], eax
mov byte [0x41f239], 0
mov eax, 0x41f214
call sub.rtl70.bpl__System_GetMemoryManager_qqrr21System_TMemoryManager
mov eax, 0x41f220
call sub.rtl70.bpl__System_SetMemoryManager_qqrrx21System_TMemoryManager
mov byte [0x41f238], 1
pop ebx
pop ecx
pop ebp
ret