Function at 0x4176c0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x424050]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
cmp dword [0x1826460], 0
je 0x417701
cmp dword [0x1826460], 0xffffffff
jne 0x4176ed
xor al, al
jmp 0x417aac
mov eax, dword [0x1826460]
add eax, 1
mov dword [0x1826460], eax
mov al, 1
jmp 0x417aac
xor ecx, ecx
mov word [ebp - 0x210], cx
push 0x206
push 0
lea edx, [ebp - 0x20e]
push edx
call fcn.00401c60
add esp, 0xc
push 0x103
lea eax, [ebp - 0x210]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x41773f
xor al, al
jmp 0x417aac
push 0x5c
lea ecx, [ebp - 0x210]
push ecx
call fcn.00401000
add esp, 8
xor edx, edx
mov word [eax + 2], dx
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
push 0x421ffc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add esi, eax
cmp esi, 0x104
jl 0x417781
xor al, al
jmp 0x417aac
push 0x422014
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 8
push 0
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [0x182645c], eax
cmp dword [0x182645c], 0
jne 0x4178a7
push 0x208
lea eax, [ebp - 0x210]
push eax
call fcn.00418640
add esp, 8
test eax, eax
je 0x4177d9
movzx ecx, word [ebp - 0x210]
test ecx, ecx
jne 0x4177e0
xor al, al
jmp 0x417aac
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0x104
jb 0x417806
xor al, al
jmp 0x417aac
mov eax, dword [ebp - 0x214]
movzx ecx, word [ebp + eax*2 - 0x212]
cmp ecx, 0x5c
je 0x41784e
push 0x421e9c
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, dword [ebp - 0x214]
cmp eax, 0x104
jae 0x417845
push 0x421f7c
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
jmp 0x41784c
xor al, al
jmp 0x417aac
jmp 0x417881
push 0x42202c
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, dword [ebp - 0x214]
cmp eax, 0x104
jae 0x41787a
push str.openipc.dll
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
jmp 0x417881
xor al, al
jmp 0x417aac
push 8
push 0
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [0x182645c], eax
cmp dword [0x182645c], 0
jne 0x4178a7
xor al, al
jmp 0x417aac
push str.ipcGetVersion
mov edx, dword [0x182645c]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x425590], eax
cmp dword [0x425590], 0
jne 0x4178d1
mov dword [0x425590], 0x4175c0
push str.ipcServerStart
mov eax, dword [0x182645c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x425594], eax
cmp dword [0x425594], 0
jne 0x4178fa
mov dword [0x425594], 0x4175b0
push str.ipcServerStop
mov ecx, dword [0x182645c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x425598], eax
cmp dword [0x425598], 0
jne 0x417924
mov dword [0x425598], 0x4175a0
push str.ipcServerWaitForConnection
mov edx, dword [0x182645c]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x42559c], eax
cmp dword [0x42559c], 0
jne 0x41794e
mov dword [0x42559c], 0x417590
push str.ipcConnect
mov eax, dword [0x182645c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4255a0], eax
cmp dword [0x4255a0], 0
jne 0x417977
mov dword [0x4255a0], 0x417580
push str.ipcCloseConnection
mov ecx, dword [0x182645c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4255a4], eax
cmp dword [0x4255a4], 0
jne 0x4179a1
mov dword [0x4255a4], 0x417570
push str.ipcRecv
mov edx, dword [0x182645c]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4255a8], eax
cmp dword [0x4255a8], 0
jne 0x4179cb
mov dword [0x4255a8], 0x417560
push str.ipcSend
mov eax, dword [0x182645c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4255ac], eax
cmp dword [0x4255ac], 0
jne 0x4179f4
mov dword [0x4255ac], 0x417550
push str.ipcSetEvents
mov ecx, dword [0x182645c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4255b0], eax
cmp dword [0x4255b0], 0
jne 0x417a1e
mov dword [0x4255b0], 0x417540
push str.ipcGetEvents
mov edx, dword [0x182645c]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4255b4], eax
cmp dword [0x4255b4], 0
jne 0x417a48
mov dword [0x4255b4], 0x417530
push str.ipcResetEvents
mov eax, dword [0x182645c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4255b8], eax
cmp dword [0x4255b8], 0
jne 0x417a71
mov dword [0x4255b8], 0x417520
push str.ipcGetConnectionLastErr
mov ecx, dword [0x182645c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4255bc], eax
cmp dword [0x4255bc], 0
jne 0x417a9b
mov dword [0x4255bc], 0x417510
mov edx, dword [0x1826460]
add edx, 1
mov dword [0x1826460], edx
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004013ae
mov esp, ebp
pop ebp
ret