Function at 0x40c318
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
mov dword [ebp - 0x14], ecx
mov byte [ebp - 4], 1
and dword [ebp - 0xc], 0
and dword [ebp - 8], 0
pushfd
pushal
mov dword [ebp - 8], esp
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x8f34], 0
jne 0x40c366
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x8f2c], ecx
call 0x40c352
pop eax
mov dword [ebp - 0xc], eax
add dword [ebp - 0xc], 0x14
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword [eax + 0x8f30], ecx
popal
popfd
pushfd
pushal
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x8610], 0
jne 0x40c3d2
push 5
push dword [0x454730]
mov eax, dword [ebp + 8]
add eax, 0x1a
push eax
call fcn.0042459f
add esp, 0xc
push 5
push 0
mov eax, dword [ebp + 8]
add eax, 0x1f
push eax
call fcn.0042459f
add esp, 0xc
push 0xffffffffffffffff
push 0x16
mov eax, dword [ebp - 0x14]
add eax, 0x20
push eax
push dword [ebp - 0x14]
call fcn.0040b8e7
add esp, 0x10
mov eax, dword [ebp - 0x14]
add eax, 0x174
push eax
push dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
call fcn.0040c7e4
mov byte [ebp - 4], al
jmp 0x40c7d0
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x8610], 1
jne 0x40c3e7
mov byte [ebp - 4], 1
jmp 0x40c7d0
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x8610], 2
jne 0x40c7d0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x8c80]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x8c84]
mov dword [eax + 0xc], ecx
push 0x18
mov eax, dword [ebp - 0x14]
add eax, 0x8c88
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
add eax, 0x10
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
push 0x18
mov eax, dword [ebp - 0x14]
add eax, 0x8ca1
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
add eax, 0x29
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
push 9
mov eax, dword [ebp - 0x14]
add eax, 0x8cba
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
add eax, 0x42
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
push 0x20
mov eax, dword [ebp - 0x14]
add eax, 0x8cc4
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
add eax, 0x4c
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
push 0xf
mov eax, dword [ebp - 0x14]
add eax, 0x8ce5
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
add eax, 0x6d
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
push 8
mov eax, dword [ebp - 0x14]
add eax, 0x8d10
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
add eax, 0x98
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x8d1c]
mov dword [eax + 0xa4], ecx
push 0x200
mov eax, dword [ebp - 0x14]
add eax, 0x8d20
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
add eax, 0xe8
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x33c]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x8c7c]
cmp ecx, dword [eax + 0xb4]
je 0x40c579
mov eax, dword [0x454704]
mov eax, dword [eax + 0x20]
mov eax, dword [eax + 0x9c]
mov dword [ebp - 0x10], eax
push str.CAppServer::DeputyStub_async_answer_has_an_invalid_timestamp
push dword [ebp - 0x10]
push 0
call fcn.00426a9a
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x44c], 0x42b
and byte [ebp - 4], 0
jmp 0x40c7db
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x885c]
mov dword [eax + 0x8f34], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x8860]
mov dword [eax + 0x8f2c], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x8864]
mov dword [eax + 0x8f30], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov cl, byte [ecx + 0x8868]
mov byte [eax + 0x85f4], cl
mov esi, dword [ebp - 0x14]
add esi, 0x8869
mov edi, dword [ebp - 0x14]
add edi, 0x8528
push 0x1a
pop ecx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x14]
add esi, 0x88d4
mov edi, dword [ebp - 0x14]
add edi, 0x3d0
push 0x1e
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x14]
add esi, 0x894c
mov edi, dword [ebp - 0x14]
add edi, 0x20
mov ecx, 0xc6
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x14]
add esi, 0x8c64
mov edi, dword [ebp - 0x14]
add edi, 0x85f8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x8c70]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x8c74]
mov dword [eax + 0x85a4], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov cl, byte [ecx + 0x8c78]
mov byte [eax + 0x8604], cl
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov cl, byte [ecx + 0x8c79]
mov byte [eax + 0x8605], cl
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov cl, byte [ecx + 0x8c7a]
mov byte [eax + 0x8606], cl
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x862c]
mov dword [eax + 0x8f38], ecx
mov eax, dword [ebp - 0x14]
add eax, 0x8649
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x8750]
inc eax
push eax
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x8f24], eax
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x8f24], 0
je 0x40c6d6
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x8f24], 0
je 0x40c6f6
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40c6f6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CAppServer::DeputyStub_CreateFileMapping_for_stack_fail__GetLastError_d
push 0x7d1
push 0
call fcn.00426a9a
add esp, 0x10
jmp 0x40c7d9
push 0
push 0
push 0
push 6
mov eax, dword [ebp - 0x14]
push dword [eax + 0x8f24]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x8f20], eax
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x8f20], 0
jne 0x40c74a
push str.CAppServer::DeputyStub_MapViewOfFile_for_stack_return_NULL
push 0x7d1
push 0
call fcn.00426a9a
add esp, 0xc
mov eax, dword [ebp - 0x14]
push dword [eax + 0x8f24]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40c7d7
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
sub ecx, dword [eax + 0x8750]
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x860c], ecx
mov esp, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
push dword [eax + 0x8750]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x8f20]
inc eax
push eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0x860c]
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x8f20]
mov byte [eax], 1
mov eax, dword [ebp - 0x14]
push dword [eax + 0x8f20]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [ebp - 0x14]
push dword [eax + 0x8f24]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x8608]
mov dword [ebp - 0xc], eax
push dword [ebp - 0xc]
pop eax
pop ebx
mov dword [ebp - 0xc], ebx
jmp eax
popal
popfd
mov al, byte [ebp - 4]
jmp 0x40c7dd
jmp 0x40c7d0
jmp 0x40c7d0
jmp 0x40c7d0
pop edi
pop esi
pop ebx
leave
ret 4