Function at 0x404730
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x9c
mov esi, ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x40cff0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov dword [esi], edx
lea ecx, [esi + 8]
mov dword [ebp - 0x30], ecx
call fcn.004050d0
lea eax, [esi + 0x14]
mov dword [ebp - 0x34], eax
lea eax, [esi + 0x50]
mov dword [ebp - 0x70], eax
xorps xmm0, xmm0
movups xmmword [esi + 0x14], xmm0
mov dword [esi + 0x28], 0
mov dword [esi + 0x24], 0
movups xmmword [esi + 0x40], xmm0
movups xmmword [esi + 0x50], xmm0
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0xf
movups xmmword [esi + 0x68], xmm0
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], 0xf
movups xmmword [esi + 0x80], xmm0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0xf
movups xmmword [esi + 0x98], xmm0
mov dword [esi + 0xa8], 0
mov dword [esi + 0xac], 0xf
movups xmmword [esi + 0xb0], xmm0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xc4], 0xf
movups xmmword [esi + 0xc8], xmm0
mov dword [esi + 0xd8], 0
mov dword [esi + 0xdc], 0xf
movups xmmword [esi + 0xe0], xmm0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0xf
movups xmmword [esi + 0xf8], xmm0
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0xf
movups xmmword [esi + 0x110], xmm0
mov dword [esi + 0x120], 0
movdqa xmm0, xmmword [0x42a790]
movdqu xmmword [esi + 0x124], xmm0
mov dword [esi + 0x138], 0
mov dword [esi + 0x13c], 0
mov dword [ebp - 0x10], 0
push 0xf0
mov dword [ebp - 0x24], esi
call fcn.0040d42e
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov esi, dword [ebp - 0x24]
mov dword [esi + 0x138], eax
lea edi, [esi + 0x140]
pxor xmm0, xmm0
movdqu xmmword [esi + 0x140], xmm0
movdqu xmmword [esi + 0x150], xmm0
movdqu xmmword [esi + 0x160], xmm0
push 2
push edi
call fcn.0040e713
add esp, 8
pxor xmm0, xmm0
movdqu xmmword [esi + 0x170], xmm0
mov dword [esi + 0x184], 0
mov dword [esi + 0x180], 0
call fcn.0040e8df
movd xmm0, edx
movd xmm1, eax
punpckldq xmm1, xmm0
pshufd xmm0, xmm1, 0x44
movdqu xmmword [esi + 0x40], xmm0
push str.GM_MDIC_VCI
mov ebx, dword [ebp + 8]
push ebx
call fcn.00411f00
add esp, 8
test eax, eax
je 0x40493b
mov dword [esi + 4], 2
push str.FORD_VCM_VCI
push ebx
call fcn.00411f00
add esp, 8
test eax, eax
mov dword [ebp - 0x6c], edi
je 0x404959
mov dword [esi + 4], 3
jmp 0x404996
push str.PORSCHE_VCI
push ebx
call fcn.00411f00
add esp, 8
test eax, eax
je 0x404974
mov dword [esi + 4], 1
jmp 0x404996
push str.BENZ_VCI
push ebx
call fcn.00411f00
add esp, 8
test eax, eax
je 0x40498f
mov dword [esi + 4], 4
jmp 0x404996
mov dword [esi + 4], 0
lea eax, [esi + 0x138]
mov dword [ebp - 0x68], eax
lea eax, [esi + 0x170]
mov dword [ebp - 0x64], eax
lea eax, [esi + 0x17c]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x10], 1
mov ecx, esi
call fcn.00402560
pxor xmm0, xmm0
movdqu xmmword [ebp - 0xa0], xmm0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0xa8], 2
mov dword [ebp - 0xa4], 0
lea eax, [ebp - 0x8c]
push str.0.0.0.0
push eax
call fcn.0040a720
add esp, 8
movzx eax, word [ebp - 0xa6]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
lea ecx, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.0040b3c0
movdqu xmm0, xmmword [ebp - 0x5c]
movdqu xmm1, xmmword [ebp - 0x50]
movdqu xmmword [ebp - 0xa8], xmm0
movdqu xmmword [ebp - 0x9c], xmm1
push 0x60
call fcn.0040d42e
add esp, 4
mov dword [ebp - 0x10], 3
lea edx, [ebp - 0xa8]
mov dword [ebp - 0x20], eax
mov ecx, eax
push 0
push edx
push dword [ebp - 0x30]
call fcn.0040b610
mov edi, dword [ebp - 0x34]
mov esi, dword [edi]
mov ecx, dword [ebp - 0x20]
mov dword [edi], ecx
test esi, esi
je 0x404a7f
mov ecx, esi
call fcn.0040ad70
push esi
call fcn.0040d45e
add esp, 4
mov ecx, dword [edi]
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x10], 1
lea eax, [ebp - 0x5c]
push eax
call fcn.00405300
push 0x1000
call fcn.0041931b
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x10], 2
push 0x10
call fcn.0040d42e
add esp, 4
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax], vtable.std::_Ref_count_resource_unsigned_char___class__public:_void___thiscall_VciToolServer::constructor_char_const__::_1::_lambda_1__.0
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0xc], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 4
push 0x1c
call fcn.0040d42e
add esp, 4
pxor xmm0, xmm0
movdqu xmmword [eax + 8], xmm0
mov dword [eax + 0x18], 0
mov dword [eax], 2
mov dword [ebp - 0x20], eax
mov dword [eax + 4], 0
mov dword [ebp - 0x10], 5
push 0x10
call fcn.0040d42e
add esp, 4
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax], vtable.std::_Ref_count_class_asio::ip::basic_endpoint_class_asio::ip::udp__.0
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0xc], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
mov dword [ebp - 0x5c], 0x402a80
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
lock inc dword [eax + 4]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x404b92
lock inc dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
jmp 0x404b94
xor ecx, ecx
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x88], 0x1000
mov ecx, dword [edx]
lea esi, [edx + 0x44]
add edx, 4
mov dword [ebp - 0x10], 8
push esi
lea esi, [ebp - 0x5c]
push esi
push 0
push eax
lea eax, [ebp - 0x8c]
push eax
push edx
call fcn.004072c0
mov esi, dword [ebp - 0x4c]
test esi, esi
je 0x404bf7
lock dec dword [esi + 4]
jne 0x404bf7
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock dec dword [esi + 8]
jne 0x404bf7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x54]
test esi, esi
je 0x404c17
lock dec dword [esi + 4]
jne 0x404c17
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock dec dword [esi + 8]
jne 0x404c17
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [ebp - 0x10], 6
push 8
call fcn.0040d42e
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x30]
mov dword [esi], eax
lea eax, [ebp - 0x58]
push eax
push 0
push esi
push 0x40cd00
push 0
push 0
call fcn.00416c92
add esp, 0x18
mov dword [ebp - 0x5c], eax
test eax, eax
je 0x404f51
mov edi, dword [ebp - 0x24]
cmp dword [edi + 0x28], 0
jne 0x404f6c
movq xmm0, qword [ebp - 0x5c]
movq qword [edi + 0x24], xmm0
push str.GlobalVW6154VciShareMemory
push 0
push 0xf001f
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov dword [edi + 0x2c], eax
test eax, eax
jne 0x404ce0
push 1
lea esi, [ebp - 0x5c]
push esi
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
push 0
push 0
push 1
push esi
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
mov dword [ebp - 0x8c], 0xc
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x88], esi
push str.GlobalVW6154VciShareMemory
push 0x400
push 0
push 0x8000004
lea eax, [ebp - 0x8c]
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [edi + 0x2c], eax
test eax, eax
je 0x404ef9
sub esp, 0x14
movdqa xmm0, xmmword [0x42a7a0]
movdqu xmmword [esp + 4], xmm0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [edi + 0x30], eax
push str.GlobalVW6154VciShareMemoryFunc
push 0
push 0xf001f
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov dword [edi + 0x34], eax
test eax, eax
jne 0x404d74
push 1
lea esi, [ebp - 0x5c]
push esi
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
push 0
push 0
push 1
push esi
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
mov dword [ebp - 0x8c], 0xc
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x88], esi
push str.GlobalVW6154VciShareMemoryFunc
push 0x400
push 0
push 0x8000004
lea eax, [ebp - 0x8c]
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [edi + 0x34], eax
test eax, eax
je 0x404ef9
sub esp, 0x14
movdqa xmm0, xmmword [0x42a7a0]
movdqu xmmword [esp + 4], xmm0
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [edi + 0x38], eax
mov ecx, dword [edi + 0x30]
test ecx, ecx
je 0x404ef9
test eax, eax
je 0x404ef9
mov byte [ecx], 0
push 0x400
push 0
push dword [edi + 0x38]
call fcn.00411c70
add esp, 0xc
push 0x16f
call fcn.0040d42e
add esp, 4
mov esi, eax
push 0x16f
push 0x42a3a0
push eax
call fcn.004116f0
add esp, 0xc
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
test ecx, ecx
mov edi, dword [ebp - 0x24]
je 0x404e34
mov eax, dword [edi + 0x178]
sub eax, ecx
cmp eax, 0x1000
jb 0x404e0c
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x404f71
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.0040d463
add esp, 8
mov dword [edi + 0x170], 0
mov dword [edi + 0x174], 0
mov dword [edi + 0x178], 0
mov eax, esi
add eax, 0x16f
mov dword [edi + 0x170], esi
mov dword [edi + 0x174], eax
mov dword [edi + 0x178], eax
push 0x16f
call fcn.0040d42e
add esp, 4
mov esi, eax
push 0x16f
push 0x42a50f
push eax
call fcn.004116f0
add esp, 0xc
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax]
test ecx, ecx
mov edi, dword [ebp - 0x24]
je 0x404ec8
mov eax, dword [edi + 0x184]
sub eax, ecx
cmp eax, 0x1000
jb 0x404ea0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x404f71
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.0040d463
add esp, 8
mov dword [edi + 0x17c], 0
mov dword [edi + 0x180], 0
mov dword [edi + 0x184], 0
mov eax, esi
add eax, 0x16f
mov dword [edi + 0x17c], esi
mov dword [edi + 0x180], eax
mov dword [edi + 0x184], eax
push 0
push str.D:PiwisAppsPIDT250
call fcn.00416a03
add esp, 8
test eax, eax
setne byte [edi + 0x188]
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x404f19
lock dec dword [esi + 4]
jne 0x404f19
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock dec dword [esi + 8]
jne 0x404f19
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x404f39
lock dec dword [esi + 4]
jne 0x404f39
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock dec dword [esi + 8]
jne 0x404f39
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, edi
add esp, 0x9c
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x10], 7
push 6
call fcn.0040d90d
add esp, 4
call fcn.0041954b
call fcn.00417d58
nop word cs:[eax + eax]
push ebp
sub esp, 0x18
add ebp, 0xc
push dword [ebp - 0x20]
call fcn.0040d45e
add esp, 0x1c
pop ebp
ret