Function at 0x406da0
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4217a8
push 0x40934c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c8
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov ebx, ecx
mov dword [ebp - 0x3c4], 0
push str._____StartTransaction:_start_of_function
call fcn.00401320
add esp, 4
mov eax, dword [ebx + 0xaa4]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push 0x7530
mov ecx, dword [ebx + 0xaa0]
push ecx
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call edi
mov esi, eax
test esi, esi
je 0x406e8d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp esi, 0x80
je 0x406e52
cmp esi, 0x102
je 0x406e44
mov edx, dword [ebx + 0xaa0]
push edx
push edi
push str._____StartTransaction:_WaitForSingleObject_failed_with_error__u__handle0x_8.8lX
lea eax, [ebp - 0x3b8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x406e67
push str._____StartTransaction:_WaitForSingleObject___timeout_occured.
lea ecx, [ebp - 0x3b8]
push ecx
jmp 0x406e5e
push str._____StartTransaction:_WaitForSingleObject_is_abandoned
lea edx, [ebp - 0x3b8]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
lea eax, [ebp - 0x3b8]
push eax
call fcn.00401320
add esp, 4
push edi
push 0xae
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004010d0
add esp, 0xc
jmp 0x407472
mov edx, dword [ebx + 0xa9c]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push 4
mov esi, dword [ebp + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x406ecc
push 0
push 0xaf
mov eax, dword [ebp + 0xc]
push eax
call fcn.004010d0
push str._____StartTransaction:_Bad_input_parameter
call fcn.00401320
add esp, 0x10
jmp 0x407472
mov dword [esi], 0
mov esi, dword [ebp + 8]
test esi, esi
je 0x406f40
push str._____StartTransaction:_sending_message_to_manager
call fcn.00401320
add esp, 4
mov ecx, dword [ebx + 0xab4]
push ecx
push 0
push esi
push 0xffff
call dword [sym.imp.USER32.dll_PostMessageA]
test eax, eax
jne 0x406f4d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push str._____StartTransaction:_PostMessage_failed_with_error__u
lea edx, [ebp - 0x3b8]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x3b8]
push eax
call fcn.00401320
add esp, 0x10
push esi
push 0xb0
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004010d0
add esp, 0xc
jmp 0x407472
mov edx, dword [ebx + 0xaa8]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
push str._____StartTransaction:_Waiting_for_CreateMMF...
call fcn.00401320
add esp, 4
push 0x7530
mov eax, dword [ebx + 0xaa4]
push eax
call edi
mov esi, eax
test esi, esi
je 0x406fe7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp esi, 0x80
je 0x406fac
cmp esi, 0x102
je 0x406f9e
push edi
push str._____StartTransaction:_WaitForSingleObject_failed_with_error__u
lea ecx, [ebp - 0x3b8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x406fc1
push str._____StartTransaction:_WaitForSingleObject___timeout_occured.
lea edx, [ebp - 0x3b8]
push edx
jmp 0x406fb8
push str._____StartTransaction:_WaitForSingleObject_is_abandoned
lea eax, [ebp - 0x3b8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
lea ecx, [ebp - 0x3b8]
push ecx
call fcn.00401320
add esp, 4
push edi
push 0xb1
mov edx, dword [ebp + 0xc]
push edx
call fcn.004010d0
add esp, 0xc
jmp 0x407472
push str._____StartTransaction:_Connecting_to_pipe...
call fcn.00401320
add esp, 4
mov edi, dword [ebp + 8]
test edi, edi
je 0x4070c4
lea eax, [ebx + 0x588]
push eax
push 1
push 0xf001f
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov dword [ebx + 0xaac], eax
test eax, eax
jne 0x40705e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push str._____StartTransaction:_OpenFileMapping_failed_with_error__u
lea ecx, [ebp - 0x3b8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea edx, [ebp - 0x3b8]
push edx
call fcn.00401320
add esp, 0x10
push esi
push 0xb2
mov eax, dword [ebp + 0xc]
push eax
call fcn.004010d0
add esp, 0xc
jmp 0x407472
push 0
push 0
push 0
push 0xf001f
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebx + 0xab0], eax
push 4
push eax
call dword [sym.imp.KERNEL32.dll_IsBadWritePtr]
test eax, eax
je 0x4070c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push str._____StartTransaction:_MapViewOfFile_failed_with_error__u
lea ecx, [ebp - 0x3b8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea edx, [ebp - 0x3b8]
push edx
call fcn.00401320
add esp, 0x10
push esi
push 0xb3
mov eax, dword [ebp + 0xc]
push eax
call fcn.004010d0
add esp, 0xc
jmp 0x407472
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x407108
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x407108
mov edi, eax
mov dword [ebp - 0x3bc], edi
push eax
mov ecx, dword [ebx + 0xaac]
push ecx
push str._____StartTransaction:_Writing_to_MMF_buffer__hMMF__0x_8.8lX__nBytes___u
lea edx, [ebp - 0x3b8]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x3b8]
push eax
call fcn.00401320
add esp, 0x14
jmp 0x4071c4
cmp edi, dword [0x42f044]
jne 0x407183
mov ecx, 0x21
mov esi, ebx
lea edi, [ebp - 0x2a8]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0xabc]
lea edx, [ebp - 0x120]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx + 0xebc]
lea edx, [ebp - 0x224]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp - 0x2a8]
mov dword [ebp - 0x3bc], 0x28c
jmp 0x40718f
mov esi, ebx
mov dword [ebp - 0x3bc], 0x84
mov ecx, dword [ebp - 0x3bc]
push ecx
mov edx, dword [ebx + 0xaac]
push edx
push str._____StartTransaction:_Writing_to_MMF_SessionID__hMMF__0x_8.8lX__nBytes___u
lea eax, [ebp - 0x3b8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [ebp - 0x3b8]
push ecx
call fcn.00401320
add esp, 0x14
mov edi, dword [ebp - 0x3bc]
mov dword [ebp - 4], 0
mov edx, dword [ebx + 0xab0]
mov dword [edx], edi
mov ecx, edi
mov edi, dword [ebx + 0xab0]
add edi, 4
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or edi, 0xffffffff
mov dword [ebp - 4], edi
mov ecx, dword [ebp - 0x3bc]
push ecx
mov edx, dword [ebx + 0xab0]
push edx
call dword [sym.imp.KERNEL32.dll_FlushViewOfFile]
test eax, eax
jne 0x40724b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push str._____StartTransaction:_write_to_MMF_failed_with_error__u
lea eax, [ebp - 0x3b8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [ebp - 0x3b8]
push ecx
call fcn.00401320
add esp, 0x10
push esi
push 0xb5
mov edx, dword [ebp + 0xc]
push edx
call fcn.004010d0
add esp, 0xc
jmp 0x407472
push str._____StartTransaction:_WriteFile_finished_successfully.
call fcn.00401320
add esp, 4
mov eax, dword [ebx + 0xaa0]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test eax, eax
je 0x407270
push str._____StartTransaction:_Waiting_for_returned_result_from_Manager...
jmp 0x407275
push str._____StartTransaction:_failed_to_release_read_mutex
call fcn.00401320
add esp, 4
push 0x7530
mov ecx, dword [ebx + 0xa9c]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov esi, eax
test esi, esi
je 0x407326
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp esi, 0x80
je 0x4072d7
cmp esi, 0x102
je 0x4072c9
push edi
push str._____StartTransaction:_WaitForSingleObject_failed_with_error__u
lea edx, [ebp - 0x3b8]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4072ec
push str._____StartTransaction:_WaitForSingleObject___timeout_occured.
lea eax, [ebp - 0x3b8]
push eax
jmp 0x4072e3
push str._____StartTransaction:_WaitForSingleObject_is_abandoned
lea ecx, [ebp - 0x3b8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
lea edx, [ebp - 0x3b8]
push edx
call fcn.00401320
add esp, 4
push edi
push 0xb6
mov eax, dword [ebp + 0xc]
push eax
call fcn.004010d0
add esp, 0xc
mov eax, dword [ebp - 0x3c4]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov esi, 1
mov dword [ebp - 4], esi
mov ebx, dword [ebx + 0xab0]
mov eax, dword [ebx]
mov dword [ebp - 0x3c8], eax
mov dword [ebp - 4], edi
cmp eax, 4
je 0x407391
push str._____StartTransaction:_Read_MMF_failed
lea ecx, [ebp - 0x3b8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea edx, [ebp - 0x3b8]
push edx
call fcn.00401320
add esp, 0xc
push 0
push 0xb8
mov eax, dword [ebp + 0xc]
push eax
call fcn.004010d0
add esp, 0xc
mov eax, dword [ebp - 0x3c4]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebx + 4]
mov edx, dword [ebp + 0x18]
mov dword [edx], ecx
push str._____StartTransaction:_function_finished_with_successfully
lea eax, [ebp - 0x3b8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [ebp - 0x3b8]
push ecx
call fcn.00401320
add esp, 0xc
mov dword [ebp - 0x3c4], esi
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14