Function at 0x4156c5
Capabilities:
Connect pipe
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x569ba6
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x20d4
call fcn.0053db60
mov eax, dword [0x5c9030]
xor eax, esp
mov dword [esp + 0x20d0], eax
push ebx
push esi
push edi
mov eax, dword [0x5c9030]
xor eax, esp
push eax
lea eax, [esp + 0x20e8]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 0x2f
mov ebx, str.EventPipe.cpp
push ebx
mov dword [esp + 0x18], eax
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415728
push 0x2f
jmp 0x415738
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415743
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x415745
mov eax, ebx
push 1
push 0x73
push eax
lea esi, [esp + 0x48]
call fcn.00404558
xor esi, esi
push str.CEventPipe::WaitEventData
push esi
mov ecx, eax
mov dword [esp + 0x20f8], esi
call fcn.00404636
mov edi, eax
call fcn.0040a124
or dword [esp + 0x20f4], 0xffffffff
pop ecx
lea ecx, [esp + 0x3c]
call fcn.004045c4
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x10]
lea edi, [esp + 0x2c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x28]
push eax
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
mov ecx, dword [esp + 0x18]
push esi
call fcn.00415e40
test eax, eax
je 0x415e10
push 0x2f
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x4157dc
push 0x2f
jmp 0x4157ec
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x4157f7
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x4157f9
mov eax, ebx
xor edi, edi
inc edi
push edi
push 0x7e
push eax
lea esi, [esp + 0x48]
call fcn.00404558
push str.ConnectNamedPipe_succeeded
push 0
mov ecx, eax
mov dword [esp + 0x20f8], edi
call fcn.00404636
mov edi, eax
call fcn.0040a124
or dword [esp + 0x20f4], 0xffffffff
pop ecx
mov ecx, esi
call fcn.004045c4
push 0
lea eax, [esp + 0x18]
push eax
push 0x2000
lea eax, [esp + 0xe8]
push eax
mov eax, dword [esp + 0x20]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0x2f
push ebx
test eax, eax
je 0x415d7d
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415870
push 0x2f
jmp 0x415880
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x41588b
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x41588d
mov eax, ebx
push 1
push 0x89
push eax
lea esi, [esp + 0x48]
call fcn.00404558
push str.ReadFile_succeeded
push 0
mov ecx, eax
mov dword [esp + 0x20f8], 2
call fcn.00404636
mov edi, eax
call fcn.0040a124
or dword [esp + 0x20f4], 0xffffffff
pop ecx
mov ecx, esi
call fcn.004045c4
cmp dword [esp + 0x14], 0x28c
push 0x2f
push ebx
jne 0x415d16
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x4158ee
push 0x2f
jmp 0x4158fe
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415909
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x41590b
mov eax, ebx
push 1
push 0x8c
push eax
lea esi, [esp + 0x48]
call fcn.00404558
push str.WaitEventData_Received
push 0
mov ecx, eax
mov dword [esp + 0x20f8], 3
call fcn.00404636
mov edi, eax
call fcn.0040a124
or dword [esp + 0x20f4], 0xffffffff
pop ecx
mov ecx, esi
call fcn.004045c4
push dword [esp + 0x14]
mov edi, dword [esp + 0x14]
lea eax, [esp + 0xe0]
push eax
add edi, 0x14
push 0x28c
push edi
call fcn.00537f31
push 0x2f
push ebx
call fcn.00539190
add esp, 0x18
test eax, eax
je 0x41597d
push 0x2f
jmp 0x41598d
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415998
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x41599a
mov eax, ebx
push 1
push 0x8f
push eax
lea esi, [esp + 0x48]
call fcn.00404558
mov dword [esp + 0x20f0], 4
push dword [edi]
mov ecx, eax
push str.m_EventInfo.Size:__d
push 0
call fcn.00404636
mov edi, eax
call fcn.0040a124
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
mov ecx, esi
call fcn.004045c4
push 0x2f
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x4159f0
push 0x2f
jmp 0x415a00
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415a0b
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x415a0d
mov eax, ebx
push 1
push 0x90
push eax
lea esi, [esp + 0x48]
call fcn.00404558
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20f0], 5
push dword [ecx + 0x18]
mov ecx, eax
push str.m_EventInfo.EventType:__d
push 0
call fcn.00404636
mov edi, eax
call fcn.0040a124
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
mov ecx, esi
call fcn.004045c4
push 0x2f
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415a68
push 0x2f
jmp 0x415a78
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415a83
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x415a85
mov eax, ebx
push 1
push 0x91
push eax
lea esi, [esp + 0x48]
call fcn.00404558
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20f0], 6
push dword [ecx + 0x1c]
mov ecx, eax
push str.m_EventInfo.EventId:__d
push 0
call fcn.00404636
mov edi, eax
call fcn.0040a124
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
mov ecx, esi
call fcn.004045c4
push 0x2f
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415ae0
push 0x2f
jmp 0x415af0
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415afb
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x415afd
mov eax, ebx
push 1
push 0x92
push eax
lea esi, [esp + 0x48]
call fcn.00404558
mov edx, dword [esp + 0x10]
add edx, 0x20
push edx
push str.m_EventInfo.DeviceInternalName:__s
push 0
mov ecx, eax
mov dword [esp + 0x20fc], 7
call fcn.00404636
mov edi, eax
call fcn.0040c58b
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
mov ecx, esi
call fcn.004045c4
push 0x2f
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415b59
push 0x2f
jmp 0x415b69
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415b74
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x415b76
mov eax, ebx
push 1
push 0x93
push eax
lea esi, [esp + 0x48]
call fcn.00404558
mov ecx, dword [esp + 0x10]
add ecx, 0x120
push ecx
push str.m_EventInfo.DeviceName:__s
push 0
mov ecx, eax
mov dword [esp + 0x20fc], 8
call fcn.00404636
mov edi, eax
call fcn.0040c58b
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
mov ecx, esi
call fcn.004045c4
push 0x2f
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415bd5
push 0x2f
jmp 0x415be5
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415bf0
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x415bf2
mov eax, ebx
push 1
push 0x94
push eax
lea esi, [esp + 0x48]
call fcn.00404558
mov esi, dword [esp + 0x10]
lea edx, [esi + 0x220]
push edx
push str.m_EventInfo.TwainDriverName:__s
push 0
mov ecx, eax
mov dword [esp + 0x20fc], 9
call fcn.00404636
mov edi, eax
call fcn.0040c58b
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
lea ecx, [esp + 0x3c]
call fcn.004045c4
xor edi, edi
cmp dword [esi + 8], edi
je 0x415e00
cmp dword [esi + 0x18], 4
jne 0x415c92
push ecx
lea eax, [esi + 0x20]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.0040235d
push ecx
mov dword [esp + 0x20f8], 0xa
lea eax, [esi + 0x220]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0040235d
or dword [esp + 0x20f8], 0xffffffff
call fcn.0041e1b8
jmp 0x415e00
push 0x3c
call fcn.004379fd
pop ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20f0], 0xb
cmp eax, edi
je 0x415cf1
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x598e70
call fcn.0040235d
push edi
push edi
push ecx
lea eax, [esi + 0x220]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
mov byte [esp + 0x2104], 0xc
call fcn.0040235d
push dword [esi + 0x1c]
mov byte [esp + 0x2104], 0xb
push dword [esp + 0x30]
call fcn.00412a40
mov edi, eax
or dword [esp + 0x20f0], 0xffffffff
lea eax, [esi + 0x20]
push eax
lea ecx, [edi + 8]
call fcn.00402337
push dword [esi + 0x1c]
mov esi, dword [esi + 8]
push edi
call fcn.004198a4
jmp 0x415dfc
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415d25
push 0x2f
jmp 0x415d35
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415d40
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x415d42
mov eax, ebx
push 4
push 0xad
push eax
lea esi, [esp + 0x48]
call fcn.00404558
mov dword [esp + 0x20f0], 0xd
push dword [esp + 0x14]
mov ecx, eax
push str.Data_size_is_invalid:__d
push 0
call fcn.00404636
mov edi, eax
call fcn.0040a124
pop ecx
pop ecx
mov ecx, esi
jmp 0x415def
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415d8c
push 0x2f
jmp 0x415d9c
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
test eax, eax
je 0x415da7
push 0x5c
push ebx
call fcn.00539190
pop ecx
pop ecx
inc eax
jmp 0x415da9
mov eax, ebx
push 4
push 0xb0
push eax
lea esi, [esp + 0x98]
call fcn.00404558
mov esi, eax
mov dword [esp + 0x20f0], 0xe
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ReadFile_failed___d_
push 0
mov ecx, esi
call fcn.00404636
mov edi, eax
call fcn.0040a124
pop ecx
pop ecx
lea ecx, [esp + 0x8c]
or dword [esp + 0x20f0], 0xffffffff
call fcn.004045c4
mov esi, dword [esp + 0x10]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_DisconnectNamedPipe]
xor esi, esi
jmp 0x415790
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x20e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20d0]
xor ecx, esp
call fcn.0053792d
mov esp, ebp
pop ebp
ret 4