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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x569879
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x20d4
call fcn.0053da30
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.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415863
push 0x2f
jmp 0x415873
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x41587e
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415880
mov eax, ebx
push 1
push 0x73
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
xor esi, esi
push str.CEventPipe::WaitEventData
push esi
mov ecx, eax
mov dword [esp + 0x20f8], esi
call fcn.00404c1a
mov edi, eax
call fcn.004027b4
or dword [esp + 0x20f4], 0xffffffff
pop ecx
lea ecx, [esp + 0x3c]
call fcn.00404ba8
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.00415f7b
test eax, eax
je 0x415f4b
push 0x2f
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415917
push 0x2f
jmp 0x415927
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415932
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415934
mov eax, ebx
xor edi, edi
inc edi
push edi
push 0x7e
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
push str.ConnectNamedPipe_succeeded
push 0
mov ecx, eax
mov dword [esp + 0x20f8], edi
call fcn.00404c1a
mov edi, eax
call fcn.004027b4
or dword [esp + 0x20f4], 0xffffffff
pop ecx
mov ecx, esi
call fcn.00404ba8
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 0x415eb8
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x4159ab
push 0x2f
jmp 0x4159bb
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x4159c6
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x4159c8
mov eax, ebx
push 1
push 0x89
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
push str.ReadFile_succeeded
push 0
mov ecx, eax
mov dword [esp + 0x20f8], 2
call fcn.00404c1a
mov edi, eax
call fcn.004027b4
or dword [esp + 0x20f4], 0xffffffff
pop ecx
mov ecx, esi
call fcn.00404ba8
cmp dword [esp + 0x14], 0x28c
push 0x2f
push ebx
jne 0x415e51
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415a29
push 0x2f
jmp 0x415a39
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415a44
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415a46
mov eax, ebx
push 1
push 0x8c
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
push str.WaitEventData_Received
push 0
mov ecx, eax
mov dword [esp + 0x20f8], 3
call fcn.00404c1a
mov edi, eax
call fcn.004027b4
or dword [esp + 0x20f4], 0xffffffff
pop ecx
mov ecx, esi
call fcn.00404ba8
push dword [esp + 0x14]
mov edi, dword [esp + 0x14]
lea eax, [esp + 0xe0]
push eax
add edi, 0x14
push 0x28c
push edi
call fcn.00537e11
push 0x2f
push ebx
call fcn.005385d0
add esp, 0x18
test eax, eax
je 0x415ab8
push 0x2f
jmp 0x415ac8
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415ad3
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415ad5
mov eax, ebx
push 1
push 0x8f
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
mov dword [esp + 0x20f0], 4
push dword [edi]
mov ecx, eax
push str.m_EventInfo.Size:__d
push 0
call fcn.00404c1a
mov edi, eax
call fcn.004027b4
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
mov ecx, esi
call fcn.00404ba8
push 0x2f
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415b2b
push 0x2f
jmp 0x415b3b
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415b46
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415b48
mov eax, ebx
push 1
push 0x90
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
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.00404c1a
mov edi, eax
call fcn.004027b4
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
mov ecx, esi
call fcn.00404ba8
push 0x2f
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415ba3
push 0x2f
jmp 0x415bb3
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415bbe
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415bc0
mov eax, ebx
push 1
push 0x91
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
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.00404c1a
mov edi, eax
call fcn.004027b4
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
mov ecx, esi
call fcn.00404ba8
push 0x2f
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415c1b
push 0x2f
jmp 0x415c2b
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415c36
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415c38
mov eax, ebx
push 1
push 0x92
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
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.00404c1a
mov edi, eax
call fcn.0040cbfa
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
mov ecx, esi
call fcn.00404ba8
push 0x2f
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415c94
push 0x2f
jmp 0x415ca4
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415caf
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415cb1
mov eax, ebx
push 1
push 0x93
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
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.00404c1a
mov edi, eax
call fcn.0040cbfa
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
mov ecx, esi
call fcn.00404ba8
push 0x2f
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415d10
push 0x2f
jmp 0x415d20
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415d2b
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415d2d
mov eax, ebx
push 1
push 0x94
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
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.00404c1a
mov edi, eax
call fcn.0040cbfa
or dword [esp + 0x20f8], 0xffffffff
pop ecx
pop ecx
lea ecx, [esp + 0x3c]
call fcn.00404ba8
xor edi, edi
cmp dword [esi + 8], edi
je 0x415f3b
cmp dword [esi + 0x18], 4
jne 0x415dcd
push ecx
lea eax, [esi + 0x20]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00402372
push ecx
mov dword [esp + 0x20f8], 0xa
lea eax, [esi + 0x220]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.00402372
or dword [esp + 0x20f8], 0xffffffff
call fcn.0041e297
jmp 0x415f3b
push 0x3c
call fcn.004378c8
pop ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20f0], 0xb
cmp eax, edi
je 0x415e2c
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x599080
call fcn.00402372
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.00402372
push dword [esi + 0x1c]
mov byte [esp + 0x2104], 0xb
push dword [esp + 0x30]
call fcn.00412ccf
mov edi, eax
or dword [esp + 0x20f0], 0xffffffff
lea eax, [esi + 0x20]
push eax
lea ecx, [edi + 8]
call fcn.0040234c
push dword [esi + 0x1c]
mov esi, dword [esi + 8]
push edi
call fcn.00419983
jmp 0x415f37
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415e60
push 0x2f
jmp 0x415e70
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415e7b
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415e7d
mov eax, ebx
push 4
push 0xad
push eax
lea esi, [esp + 0x48]
call fcn.00404b3c
mov dword [esp + 0x20f0], 0xd
push dword [esp + 0x14]
mov ecx, eax
push str.Data_size_is_invalid:__d
push 0
call fcn.00404c1a
mov edi, eax
call fcn.004027b4
pop ecx
pop ecx
mov ecx, esi
jmp 0x415f2a
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415ec7
push 0x2f
jmp 0x415ed7
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
test eax, eax
je 0x415ee2
push 0x5c
push ebx
call fcn.005385d0
pop ecx
pop ecx
inc eax
jmp 0x415ee4
mov eax, ebx
push 4
push 0xb0
push eax
lea esi, [esp + 0x98]
call fcn.00404b3c
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.00404c1a
mov edi, eax
call fcn.004027b4
pop ecx
pop ecx
lea ecx, [esp + 0x8c]
or dword [esp + 0x20f0], 0xffffffff
call fcn.00404ba8
mov esi, dword [esp + 0x10]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_DisconnectNamedPipe]
xor esi, esi
jmp 0x4158cb
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.0053780e
mov esp, ebp
pop ebp
ret 4