Function at 0x40183d
Capabilities:
Create thread
Resolve dns
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x419994
mov eax, dword fs:[0]
push eax
sub esp, 0x744
mov eax, dword [0x4250c0]
xor eax, esp
mov dword [esp + 0x740], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4250c0]
xor eax, esp
push eax
lea eax, [esp + 0x758]
mov dword fs:[0], eax
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x4c0], 7
mov dword [esp + 0x4bc], ebx
mov word [esp + 0x4ac], ax
push ebx
mov dword [esp + 0x764], ebx
push ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
call fcn.00403bf7
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
push 2
pop eax
mov byte [esp + 0x760], al
push 8
lea ecx, [esp + 0x30]
mov dword [esp + 0x4c], 0x3f800000
call fcn.00403670
push ebx
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x768], 3
mov edi, dword [sym.imp.IPHLPAPI.DLL_GetIpAddrTable]
push ebx
mov dword [esp + 0x28], ebx
call edi
cmp eax, 0x7a
jne 0x401f68
push dword [esp + 0x20]
call fcn.004086ea
pop ecx
mov esi, eax
push ebx
lea eax, [esp + 0x24]
push eax
push esi
call edi
mov ebp, eax
test ebp, ebp
jne 0x401977
mov edi, ebx
cmp dword [esi], ebx
jbe 0x401977
lea ebx, [esi + 4]
push dword [ebx]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [esp + 0x468]
call fcn.00402b48
lea eax, [esp + 0x464]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x764], 4
call fcn.00402e7b
lea ecx, [esp + 0x464]
mov dword [eax], 1
mov byte [esp + 0x760], 3
call fcn.00402b75
inc edi
lea ebx, [ebx + 0x18]
cmp edi, dword [esi]
jb 0x401925
xor ebx, ebx
push esi
call fcn.00408674
pop ecx
test ebp, ebp
jne 0x401f68
mov esi, dword [sym.imp.WS2_32.dll_gethostbyname]
push 0x420478
call esi
push dword [eax]
call esi
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
push dword [eax]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [esp + 0x450]
call fcn.00402b48
push ecx
push ecx
lea ecx, [esp + 0x454]
mov byte [esp + 0x768], 5
call fcn.00402b96
push eax
push ecx
lea eax, [esp + 0x46c]
push eax
lea ecx, [esp + 0x458]
call fcn.00402c10
mov esi, eax
lea eax, [esp + 0x44c]
cmp eax, esi
je 0x401a27
cmp dword [esp + 0x460], 0x10
jb 0x401a01
push dword [esp + 0x44c]
call fcn.00407eff
pop ecx
push esi
lea ecx, [esp + 0x450]
mov dword [esp + 0x464], 0xf
mov dword [esp + 0x460], ebx
mov byte [esp + 0x450], bl
call fcn.00402faf
lea ecx, [esp + 0x464]
call fcn.00402b75
push 0x4205dc
call fcn.004010b3
pop ecx
push eax
push ecx
lea ecx, [esp + 0x454]
call fcn.0040329f
mov esi, ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esp + esi*4 + 0x4c], eax
inc esi
cmp esi, 0x100
jl 0x401a4e
mov eax, ebx
lea ebx, [esp + 0x4c]
mov dword [esp + 0x18], ebx
mov ebp, 0x4204d4
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], eax
mov edi, 0x427734
mov ebx, eax
lea esi, [edi - 4]
push ebp
and dword [esi], 0
lea ecx, [edi + 0x18]
call fcn.00403085
cmp dword [esp + 0x460], 0x10
lea eax, [esp + 0x44c]
cmovae eax, dword [esp + 0x44c]
push ebx
push eax
lea eax, [esp + 0x61c]
push eax
call fcn.00407f13
lea eax, [esp + 0x620]
push eax
call fcn.004010b3
add esp, 0x10
mov ecx, edi
push eax
lea eax, [esp + 0x618]
push eax
call fcn.004033cf
lea eax, [esp + 0x614]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
push 2
mov dword [edi + 0x34], eax
pop eax
push 0x50
mov word [edi + 0x30], ax
call dword [sym.imp.WS2_32.dll_htons]
mov word [edi + 0x32], ax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [edi + 0x44], eax
xor eax, eax
push eax
push eax
push esi
push 0x401747
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
add dword [esp + 0x14], 4
add edi, 0x4c
inc ebx
cmp edi, 0x428a34
jl 0x401a83
push 0x9c4
push 1
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x20]
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
xor edi, edi
xor eax, eax
mov dword [esp + 0x490], 7
mov dword [esp + 0x48c], edi
mov word [esp + 0x47c], ax
mov dword [esp + 0x4a8], 7
mov dword [esp + 0x4a4], edi
mov word [esp + 0x494], ax
mov ebp, dword [esp + 0x1c]
mov byte [esp + 0x760], 7
mov esi, 0x427734
cmp dword [esi + 0x14], 0x10
jb 0x401b97
mov eax, dword [esi]
jmp 0x401b99
mov eax, esi
lea ecx, [esp + 0x510]
push 3
mov dword [esp + 0x510], ecx
push eax
lea ecx, [esp + 0x514]
call fcn.004031f8
lea eax, [esp + 0x510]
cmp dword [esp + 0x50c], eax
je 0x401bd3
push dword [esp + 0x50c]
call fcn.00408674
pop ecx
cmp dword [esi - 4], edi
je 0x401e35
cmp dword [esi + 0x14], 0x10
jb 0x401be6
mov eax, dword [esi]
jmp 0x401be8
mov eax, esi
lea ecx, [esp + 0x510]
push 3
mov dword [esp + 0x510], ecx
push eax
lea ecx, [esp + 0x514]
call fcn.004031f8
mov byte [esp + 0x760], 8
push dword [esp + 0x50c]
lea ecx, [esp + 0x498]
call fcn.00403085
lea eax, [esp + 0x510]
mov byte [esp + 0x760], 7
cmp dword [esp + 0x50c], eax
je 0x401c45
push dword [esp + 0x50c]
call fcn.00408674
pop ecx
lea eax, [esi + 0x18]
lea ecx, [esp + 0x47c]
cmp ecx, eax
je 0x401c5c
push 0xffffffffffffffff
push edi
push eax
call fcn.004034d9
mov eax, dword [esp + 0x48c]
test eax, eax
jne 0x401c85
push 0xffffffffffffffff
push edi
lea eax, [esp + 0x49c]
push eax
lea ecx, [esp + 0x488]
call fcn.004034d9
mov eax, dword [esp + 0x48c]
cmp eax, 0x13
jbe 0x401cbd
push 0x13
push edi
lea eax, [esp + 0x46c]
push eax
lea ecx, [esp + 0x488]
call fcn.00402d01
push eax
lea ecx, [esp + 0x480]
call fcn.00402c5e
push edi
push 1
lea ecx, [esp + 0x46c]
call fcn.004030f4
cmp dword [esi + 0x14], 0x10
jb 0x401cc7
mov eax, dword [esi]
jmp 0x401cc9
mov eax, esi
push eax
lea ecx, [esp + 0x468]
call fcn.00402b48
lea eax, [esp + 0x464]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x764], 9
call fcn.00402e7b
cmp dword [eax], 1
lea ecx, [esp + 0x464]
setne bl
mov byte [esp + 0x760], 7
call fcn.00402b75
test bl, bl
je 0x401e35
cmp dword [esp + 0x4a8], 8
lea eax, [esp + 0x494]
cmovae eax, dword [esp + 0x494]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00402c3c
call fcn.004013db
add esp, 0x18
test eax, eax
je 0x401e35
lea eax, [esp + 0x47c]
push eax
mov edx, str.name_
lea ecx, [esp + 0x4c8]
call fcn.00403e30
mov byte [esp + 0x764], 0xa
mov edx, eax
lea ecx, [esp + 0x468]
mov dword [esp], 0x4205e0
call fcn.00403ee1
pop ecx
push edi
push 1
lea ecx, [esp + 0x4cc]
mov byte [esp + 0x768], 0xc
call fcn.004030f4
lea eax, [esp + 0x494]
push eax
mov edx, 0x4205c4
lea ecx, [esp + 0x4e0]
call fcn.00403e30
mov byte [esp + 0x764], 0xd
mov edx, eax
lea ecx, [esp + 0x4f8]
mov dword [esp], 0x4205e8
call fcn.00403ee1
pop ecx
push 0xffffffffffffffff
push edi
push eax
lea ecx, [esp + 0x470]
mov byte [esp + 0x76c], 0xe
call fcn.00403447
push edi
push 1
lea ecx, [esp + 0x4fc]
call fcn.004030f4
push edi
push 1
lea ecx, [esp + 0x4e4]
mov byte [esp + 0x768], 0xc
call fcn.004030f4
push 0xffffffffffffffff
push edi
lea eax, [esp + 0x46c]
push eax
lea ecx, [esp + 0x4b8]
call fcn.00403447
push edi
push 1
lea ecx, [esp + 0x46c]
inc ebp
mov byte [esp + 0x768], 7
call fcn.004030f4
add esi, 0x4c
cmp esi, 0x428a34
jl 0x401b8d
push edi
push 1
lea ecx, [esp + 0x49c]
mov dword [esp + 0x24], ebp
call fcn.004030f4
push edi
push 1
lea ecx, [esp + 0x484]
mov byte [esp + 0x768], 5
call fcn.004030f4
mov eax, dword [esp + 0x14]
mov ebx, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov edi, 0x100
mov ebp, 0x4204d4
cmp eax, edi
jl 0x401a74
xor ebx, ebx
mov esi, ebx
push dword [esp + esi*4 + 0x4c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, edi
jl 0x401e92
lea eax, [esp + 0x28]
push eax
push 3
push ebx
push str.SoftwareJPLAY
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x401ef5
cmp dword [esp + 0x4c0], 8
mov eax, dword [esp + 0x4bc]
lea ecx, [esp + 0x4ac]
cmovae ecx, dword [esp + 0x4ac]
add eax, eax
push eax
push ecx
push 1
push ebx
push str.AudioPC
push dword [esp + 0x3c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x401f01
push dword [esp + 0x28]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x401f5c
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x401f20
lea eax, [esp + 0x654]
push str.Could_not_find_JPLAY_on_LAN_n_nCheck_if_JPLAY_is_running_and_if_Firewall_is_not_blocking_port_48168
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
pop ecx
pop ecx
jmp 0x401f43
cmp eax, 1
mov ecx, 0x4206b4
cmovne ebp, ecx
push ebp
push eax
lea eax, [esp + 0x65c]
push str.JPLAY_found_on__d_address_s_nRestart_JPLAYSettings_and_you_should_be_able_to_select_your_AudioPC_
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push 0x50040
push str.JPLAY_Settings
lea eax, [esp + 0x65c]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x44c]
call fcn.00402b75
cmp dword [esp + 0x34], 0
je 0x401f85
push dword [esp + 0x34]
call fcn.00407eff
pop ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
lea ecx, [esp + 0x2c]
call fcn.004031a1
push ebx
push 1
lea ecx, [esp + 0x4b4]
call fcn.004030f4
mov ecx, dword [esp + 0x758]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x740]
xor ecx, esp
call fcn.00407f04
add esp, 0x750
ret