Function at 0x424ad0
Capabilities:
Connect pipe
Create pipe
Read file on windows
Write file on windows
Write pipe

Disassembly:
push ebp
lea ebp, [esp - 0x2404]
mov eax, 0x2404
call fcn.004b2660
push 0xffffffffffffffff
push 0x638931
mov eax, dword fs:[0]
push eax
sub esp, 0xf4
mov eax, dword [0x6eed24]
xor eax, ebp
mov dword [ebp + 0x2400], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
push edi
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [edi + 0x24], 0
lea ebx, [edi + 0x24]
jne 0x424bd9
mov ecx, 0xd
lea edi, [ebp + 0x2000]
mov esi, str.D:_A__GA___WD__A__GA___AN_
lea eax, [ebp + 0x2036]
rep movsd dword es:[edi], dword [esi]
push 0x3ca
push 0
push eax
movsw word es:[edi], word [esi]
call fcn.004b40a0
add esp, 0xc
lea eax, [ebp - 0x18]
push 0
push eax
push 1
lea eax, [ebp + 0x2000]
push eax
call sub.ADVAPI32.dll_ConvertStringSecurityDescriptorToSecurityDescriptorW
test eax, eax
jne 0x424bc3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Pipe::ConvertStringSecurityDescriptorToSecurityDescriptor_failed__Error0x_X.
push 1
push 0x6e
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x14
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [ebx], 0xc
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], 0
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [ebp - 0x68]
mov dword [ebp - 0x68], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
call dword [sym.imp.KERNEL32.dll_ProcessIdToSessionId]
push dword [ebp - 0x68]
lea eax, [ebp - 0x84]
push str..pipeTrackerUpdatePipe_d
push eax
call fcn.004034c0
mov eax, dword [ebp - 0x84]
add esp, 0xc
test eax, eax
jne 0x424c1e
mov eax, 0x649aa0
push ebx
push 0
push 0x2000
push 0x2000
push 0xff
push 0
push 3
push eax
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
mov esi, eax
mov dword [ebp - 0x18], esi
cmp esi, 0xffffffff
jne 0x424c92
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0x84]
mov ecx, eax
mov eax, 0x649aa0
test ebx, ebx
je 0x424c5e
mov eax, ebx
push ecx
push eax
push str.Pipe::CreateNamedPipe__s__failed__Error0x_X.
push 1
push 0x82
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x18
mov byte [ebp - 4], 2
test ebx, ebx
je 0x424c8a
push ebx
call fcn.00446420
add esp, 4
or eax, 0xffffffff
jmp 0x425581
mov eax, dword [ebp - 0x84]
test eax, eax
jne 0x424ca1
mov eax, 0x649aa0
push eax
push str.Pipe::Server_at_NamedPipe__s__started.
push 2
push 0x85
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x14
push 0
push dword [edi + 0x1c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x425512
mov edi, edi
push 0
push esi
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
test eax, eax
jne 0x424d0f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [ebp - 0x10], ebx
cmp ebx, 0x217
je 0x424d0f
push ebx
push str.Pipe::_r_ConnectNamedPipe_failed_____Error0x_X.
push 1
push 0x116
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x14
jmp 0x4254ff
push str.Pipe::Client_connected_to_Server.
push 4
push 0x94
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x10
mov dword [ebp - 0x6c], 0
lea eax, [ebp - 0x6c]
push 0
push eax
push 0x2000
lea eax, [ebp]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4255d4
cmp dword [ebp - 0x6c], 0
je 0x4255d4
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x10], 0
call fcn.004487c0
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 4
call fcn.0046adc0
push 0
lea eax, [ebp]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x100]
call fcn.0046ca40
test eax, eax
jne 0x424dfe
lea eax, [ebp]
mov dword [ebp + 0xa0], 0x2e002e
push eax
lea eax, [ebp - 0x34]
mov dword [ebp + 0xa4], 0x2e
push str.Cant_parse_request:__s
mov ebx, 0x80070057
push eax
mov dword [ebp - 0x10], ebx
call fcn.004034c0
mov esi, dword [ebp - 0x34]
add esp, 0xc
mov eax, 0x649aa0
test esi, esi
je 0x424dd0
mov eax, esi
push eax
push str.Pipe::_s
push 1
push 0xaf
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x14
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x100]
call fcn.0046af60
jmp 0x425084
mov esi, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0xf4]
cmp esi, edi
jae 0x424e1b
mov eax, dword [ebx + esi*4]
test eax, eax
jne 0x424e21
lea eax, [ebp - 0x100]
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x424e2d
mov eax, 0x649aa0
mov ecx, str.UpdaterRequest
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x424e58
test dx, dx
je 0x424e54
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x424e58
add eax, 4
add ecx, 4
test dx, dx
jne 0x424e32
xor eax, eax
jmp 0x424e5d
sbb eax, eax
or eax, 1
test eax, eax
je 0x424ed9
mov dword [ebp - 0x10], 0x80070057
cmp esi, edi
jae 0x424e73
mov eax, dword [ebx + esi*4]
test eax, eax
jne 0x424e79
lea eax, [ebp - 0x100]
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x424e85
mov eax, 0x649aa0
push eax
lea eax, [ebp - 0x34]
push str.Wrong_requests_xml_root_tag___s_.
push eax
call fcn.004034c0
mov esi, dword [ebp - 0x34]
add esp, 0xc
mov eax, 0x649aa0
test esi, esi
je 0x424ea5
mov eax, esi
push eax
push str.Pipe::_s
push 1
push 0xb6
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x14
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x100]
call fcn.0046af60
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
jmp 0x425084
cmp esi, edi
jae 0x424ee4
mov eax, dword [ebx + esi*4]
test eax, eax
jne 0x424eea
lea eax, [ebp - 0x100]
mov ebx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
lea eax, [ebx + eax*4]
mov dword [ebp - 0x88], eax
cmp ebx, eax
je 0x425038
mov edi, dword [ebx]
test edi, edi
je 0x42502d
cmp dword [edi + 0x28], 1
jne 0x42502d
mov esi, dword [edi + 0x18]
mov eax, 0x649aa0
test esi, esi
je 0x424f23
mov eax, esi
mov ecx, str.StartCheckForUpdate
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x424f4e
test dx, dx
je 0x424f4a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x424f4e
add eax, 4
add ecx, 4
test dx, dx
jne 0x424f28
xor eax, eax
jmp 0x424f53
sbb eax, eax
or eax, 1
test eax, eax
je 0x425387
mov eax, 0x649aa0
test esi, esi
je 0x424f66
mov eax, esi
mov ecx, str.GetCheckForUpdate
jmp 0x424f70
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x424f96
test dx, dx
je 0x424f92
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x424f96
add eax, 4
add ecx, 4
test dx, dx
jne 0x424f70
xor eax, eax
jmp 0x424f9b
sbb eax, eax
or eax, 1
test eax, eax
je 0x4252e6
mov eax, 0x649aa0
test esi, esi
je 0x424fae
mov eax, esi
mov ecx, str.StartUpdate
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x424fd9
test dx, dx
je 0x424fd5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x424fd9
add eax, 4
add ecx, 4
test dx, dx
jne 0x424fb3
xor eax, eax
jmp 0x424fde
sbb eax, eax
or eax, 1
test eax, eax
je 0x425215
test esi, esi
jne 0x424fef
mov esi, 0x649aa0
mov eax, str.ShowUI
mov cx, word [esi]
cmp cx, word [eax]
jne 0x42501a
test cx, cx
je 0x425016
mov cx, word [esi + 2]
cmp cx, word [eax + 2]
jne 0x42501a
add esi, 4
add eax, 4
test cx, cx
jne 0x424ff4
xor eax, eax
jmp 0x42501f
sbb eax, eax
or eax, 1
test eax, eax
je 0x42512e
mov eax, dword [ebp - 0x88]
add ebx, 4
cmp ebx, eax
jne 0x424f01
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
cmp dword [ebp - 0x30], 0
mov esi, dword [ebp - 0x34]
je 0x42506c
mov eax, 0x649aa0
test esi, esi
je 0x425052
mov eax, esi
push eax
push str.Pipe::_s
push 4
push 0xf9
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x14
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 4
call fcn.0046af60
test ebx, ebx
jne 0x425084
cmp dword [ebp - 0x30], ebx
je 0x4250b0
lea ecx, [ebp - 0xa8]
call fcn.004491a0
or eax, edx
jne 0x4250b0
mov eax, 0x649aa0
test esi, esi
je 0x42509e
mov eax, esi
lea ecx, [ebp - 0xa8]
push ecx
push eax
push ebx
push 1
mov ecx, edi
call fcn.00424740
lea ecx, [ebp - 0xa8]
call fcn.004491a0
test edx, edx
jl 0x4254cd
jg 0x4250cd
test eax, eax
je 0x4254cd
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x78], 0
call fcn.004491a0
lea ecx, [ebp - 0xa8]
mov esi, eax
call fcn.00449190
push 0
lea ecx, [ebp - 0x78]
push ecx
push esi
mov esi, dword [ebp - 0x18]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4255a4
lea ecx, [ebp - 0xa8]
call fcn.004491a0
cmp eax, dword [ebp - 0x78]
jne 0x4255a4
test edx, edx
jne 0x4255a4
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
jmp 0x4254e9
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
push str.ShowCode
call fcn.0046b260
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0xe
push eax
push str.ProductID
mov ecx, edi
call fcn.0046b6b0
test eax, eax
jne 0x425190
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x42517b
push eax
call fcn.00446420
add esp, 4
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
push dword [ebp - 0x70]
push str.Pipe::Called_ShowUI__d_
push 4
push 0xf0
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
mov eax, dword [ebp - 0x24]
add esp, 0x14
test eax, eax
jne 0x4251b8
mov eax, 0x649aa0
push eax
push dword [ebp - 0x70]
mov ecx, 0x6f50d0
call fcn.0043c3f0
mov ebx, eax
mov dword [ebp - 0x10], ebx
test ebx, ebx
js 0x4251e3
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0xa8]
push eax
push 0
push ebx
push 0
call fcn.00424740
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 0xf
test eax, eax
je 0x4251f7
push eax
call fcn.00446420
add esp, 4
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov byte [ebp - 4], 5
jmp 0x42503b
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xc
push eax
push str.ProductID
mov ecx, edi
call fcn.0046b6b0
lea eax, [ebp - 0x74]
mov ecx, edi
push eax
push 0x64f87c
call fcn.0046b260
mov eax, dword [ebp - 0x40]
test eax, eax
jne 0x42525a
mov eax, 0x649aa0
push dword [ebp - 0x74]
push eax
push str.Pipe::Called_StartUpdate__s__d_
push 4
push 0xe1
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
inc byte [0x6f5505]
add esp, 0x18
mov eax, dword [ebp - 0x40]
test eax, eax
jne 0x425289
mov eax, 0x649aa0
push dword [ebp - 0x74]
mov ecx, 0x6f50d0
push eax
call fcn.0043c810
mov ebx, eax
mov dword [ebp - 0x10], ebx
test ebx, ebx
js 0x4252b4
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0xa8]
push eax
push 0
push ebx
push 0
call fcn.00424740
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 0xd
test eax, eax
je 0x4252c8
push eax
call fcn.00446420
add esp, 4
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov byte [ebp - 4], 5
jmp 0x42503b
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0xa
push eax
push str.ProductID
mov ecx, edi
call fcn.0046b6b0
inc byte [0x6f5505]
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x425321
mov eax, 0x649aa0
push eax
push str.Pipe::Called_GetCheckForUpdate__s_..._
push 4
push 0xd5
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0xa8]
add esp, 0x14
mov ecx, edi
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.00424850
mov ebx, eax
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 4], 0xb
test eax, eax
je 0x425369
push eax
call fcn.00446420
add esp, 4
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov byte [ebp - 4], 5
jmp 0x42503e
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 6
push eax
push str.FinishedEvtName
mov ecx, edi
call fcn.0046b6b0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 7
push eax
push str.ProductID
mov ecx, edi
call fcn.0046b6b0
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0
push eax
push 0x64f87c
mov ecx, edi
call fcn.0046b260
inc byte [0x6f5505]
mov ecx, dword [ebp - 0x58]
test ecx, ecx
jne 0x425402
mov ecx, 0x649aa0
mov eax, dword [ebp - 0x64]
test eax, eax
jne 0x42540e
mov eax, 0x649aa0
push dword [ebp - 0x28]
push ecx
push eax
push str.Pipe::Called_StartCheckForUpdate__s__s__d_
push 4
push 0xc8
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
mov ecx, dword [ebp - 0x58]
add esp, 0x1c
test ecx, ecx
jne 0x425438
mov ecx, 0x649aa0
mov eax, dword [ebp - 0x64]
test eax, eax
jne 0x425444
mov eax, 0x649aa0
push dword [ebp - 0x28]
push ecx
push eax
mov ecx, 0x6f50d0
call fcn.0043c540
mov edi, dword [ebp - 0x14]
mov ebx, eax
mov dword [ebp - 0x10], ebx
test ebx, ebx
js 0x425472
lea eax, [ebp - 0xa8]
mov ecx, edi
push eax
push 0
push ebx
push 0
call fcn.00424740
mov eax, dword [ebp - 0x58]
mov byte [ebp - 4], 8
test eax, eax
je 0x425486
push eax
call fcn.00446420
add esp, 4
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 9
test eax, eax
je 0x4254af
push eax
call fcn.00446420
add esp, 4
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov byte [ebp - 4], 5
jmp 0x42503e
push str.Pipe::_r_Not_created_any_answer____by_request.
push 1
push 0x10f
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
mov esi, dword [ebp - 0x18]
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_DisconnectNamedPipe]
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 1
call fcn.00448820
push 0
push dword [edi + 0x1c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x424cd0
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
mov dword [edi + 0x18], 0xffffffff
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push str.Pipe::Server_stopped_by_request.
push 4
push 0x8e
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x10
mov ebx, dword [ebp - 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x18], 0xffffffff
mov eax, dword [ebp - 0x84]
mov byte [ebp - 4], 0x10
test eax, eax
je 0x425568
push eax
call fcn.00446420
add esp, 4
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], 0x11
test eax, eax
je 0x42557f
push eax
call fcn.00446420
add esp, 4
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x2400]
xor ecx, ebp
call fcn.004b2558
lea esp, [ebp + 0x2404]
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Pipe::Answering_by__r_WriteFile_failed_____Error0x_X.
push 1
push 0x107
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x14
lea ecx, [ebp - 0xa8]
call fcn.00448820
jmp 0x425540
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp ebx, 0x6d
jne 0x4255ff
push str.Pipe::Client_disconnected__by_ERROR_BROKEN_PIPE_
push 1
push 0x9b
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x10
jmp 0x425543
push ebx
push str.Pipe::Cant_read_data_from_client._Error0x_X.
push 1
push 0x9d
push str.e:workprgpdf5_builds_rc.328_trackerupdatepipeserver.cpp
call fcn.00431810
add esp, 0x14
jmp 0x425543