Function at 0x40c620
Capabilities:
Contain obfuscated stackstrings
Create thread

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x43453e
push eax
mov dword fs:[0], esp
sub esp, 0x1e0
cmp dword [ebp + 8], 2
push esi
push edi
jge 0x40c66d
push str._BROADCAST__invalid_command_line
push 0x446460
call fcn.004013b0
add esp, 8
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
mov dword [ebp - 0x128], 0x30
lea eax, [ebp - 0x128]
mov dword [ebp - 0x124], 0
xorps xmm0, xmm0
mov dword [ebp - 0x120], 0x404900
push eax
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], esi
movups xmmword [ebp - 0x110], xmm0
mov dword [ebp - 0x100], str.BonjourExample
mov dword [ebp - 0xfc], 0
call dword [sym.imp.USER32.dll_RegisterClassExW]
mov eax, dword [ebp - 0x100]
push 0
push esi
push 0
push 0
push 0
push 0x80000000
push 0
push 0x80000000
push 0
push eax
push eax
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x40c736
push 0x4354bc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._BROADCAST__CreateWindow_Failed:
push 0x446460
call fcn.004013b0
add esp, 8
mov ecx, eax
call fcn.00403c60
push eax
call fcn.004013b0
add esp, 8
mov eax, dword [ebp + 0xc]
sub esp, 0x18
mov edx, esp
mov esi, dword [eax + 4]
mov ecx, esi
mov dword [edx], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
lea edi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40c760
sub ecx, edi
push ecx
push esi
mov ecx, edx
call fcn.00409010
mov ecx, 0x446144
call fcn.0040e740
push 0x272f
sub esp, 0x18
mov esi, esp
push 7
push str.version
push esi
mov dword [esi], 0
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 7
call fcn.00413320
add esp, 0xc
mov byte [esi + 7], 0
mov ecx, 0x446144
call fcn.0040e470
push eax
mov dword [0x446140], eax
lea eax, [ebp - 0x50]
push eax
call fcn.0040c1e0
add esp, 8
push 0x14
push str._blizzard._udp__w3xp
push 0
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.0040b4d0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x68], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x58], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [ebp - 0x3c]
mov byte [ebp - 4], 2
cmp edx, 0x10
jb 0x40c850
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40c846
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40d98a
push edx
push ecx
call fcn.00411dbb
add esp, 8
mov edx, dword [ebp - 0x54]
lea ecx, [ebp - 0x68]
mov eax, dword [ebp - 0x58]
lea edi, [ebp - 0x68]
cmp edx, 0x10
mov dword [ebp - 0x40], 0
lea esi, [ebp - 0x68]
mov dword [ebp - 0x3c], 0xf
cmovae ecx, dword [ebp - 0x68]
cmovae edi, dword [ebp - 0x68]
add eax, ecx
mov ecx, dword [ebp - 0x68]
cmp edx, 0x10
mov byte [ebp - 0x50], 0
cmovae esi, ecx
mov dword [ebp - 0x34], eax
cmp esi, eax
je 0x40c8ab
sub edi, esi
movsx eax, byte [esi]
push eax
call fcn.0041bb6e
mov byte [esi + edi], al
add esp, 4
inc esi
cmp esi, dword [ebp - 0x34]
jne 0x40c890
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x68]
push 0
push 0x404460
cmp edx, 0x10
lea eax, [ebp - 0x68]
push 0
cmovae eax, ecx
push eax
push 0
push 0
push 0x446130
call sub.dnssd.dll_DNSServiceBrowse
test eax, eax
je 0x40c8f8
push 0x4354bc
push eax
push str._BROADCAST__error:
push 0x446460
call fcn.004013b0
add esp, 8
mov ecx, eax
call fcn.00403a70
push eax
call fcn.004013b0
add esp, 8
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
mov esi, dword [ebp + 0xc]
cmovae eax, dword [ebp - 0x68]
push 0
push 0x404600
push 0
push 0
push 0xf0f
push 0
push 0
push eax
push dword [esi + 4]
push 0
push 8
push 0x446134
call sub.dnssd.dll_DNSServiceRegister
test eax, eax
je 0x40c958
push 0x4354bc
push eax
push str._BROADCAST__error:
push 0x446460
call fcn.004013b0
add esp, 8
mov ecx, eax
call fcn.00403a70
push eax
call fcn.004013b0
add esp, 8
cmp dword [ebp + 8], 3
jne 0x40c9a1
mov eax, dword [esi + 8]
mov ecx, str.show
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40c986
test dl, dl
je 0x40c982
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40c986
add eax, 2
add ecx, 2
test dl, dl
jne 0x40c966
xor ecx, ecx
jmp 0x40c98b
sbb ecx, ecx
or ecx, 1
movzx eax, byte [0x44613c]
test ecx, ecx
mov edx, 1
cmove eax, edx
mov byte [0x44613c], al
sub esp, 0x18
mov eax, esp
mov dword [ebp + 8], esp
mov dword [eax], 0
mov dword [eax + 0x14], 0xf
mov dword [eax + 0x10], 0
sub esp, 0x18
mov byte [ebp - 4], 3
mov esi, esp
push 0xb
push str.game_secret
push esi
mov dword [esi], 0
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0xb
call fcn.00413320
add esp, 0xc
mov byte [esi + 0xb], 0
lea eax, [ebp - 0x140]
mov byte [ebp - 4], 2
mov ecx, 0x446144
push eax
call fcn.0040e560
sub esp, 0x18
mov eax, esp
mov dword [ebp + 8], esp
mov dword [eax], 0
mov dword [eax + 0x14], 0xf
mov dword [eax + 0x10], 1
mov byte [eax], 0x31
sub esp, 0x18
mov byte [ebp - 4], 5
mov esi, esp
push 5
push str._type
push esi
mov dword [esi], 0
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 5
call fcn.00413320
add esp, 0xc
mov byte [esi + 5], 0
lea eax, [ebp - 0x1ec]
mov byte [ebp - 4], 4
mov ecx, 0x446144
push eax
call fcn.0040e560
sub esp, 0x18
mov eax, esp
mov dword [ebp + 8], esp
mov dword [eax], 0
mov dword [eax + 0x14], 0xf
mov dword [eax + 0x10], 1
mov byte [eax], 0x30
sub esp, 0x18
mov byte [ebp - 4], 7
mov esi, esp
push 8
push str._subtype
push esi
mov dword [esi], 0
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 8
call fcn.00413320
add esp, 0xc
mov byte [esi + 8], 0
lea eax, [ebp - 0x1d4]
mov byte [ebp - 4], 6
mov ecx, 0x446144
push eax
call fcn.0040e560
sub esp, 0x18
mov eax, esp
mov dword [ebp + 8], esp
mov dword [eax], 0
mov dword [eax + 0x14], 0xf
mov dword [eax + 0x10], 1
mov byte [eax], 0x31
sub esp, 0x18
mov byte [ebp - 4], 9
mov esi, esp
push 7
push str.game_id
push esi
mov dword [esi], 0
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 7
call fcn.00413320
add esp, 0xc
mov byte [esi + 7], 0
lea eax, [ebp - 0x1bc]
mov byte [ebp - 4], 8
mov ecx, 0x446144
push eax
call fcn.0040e560
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov ecx, esp
mov dword [ebp + 8], esp
push 0
push 0x4352e4
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0xb
mov ecx, esp
push 5
push str._name
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 0xa
push eax
mov ecx, 0x446144
call fcn.0040e560
push 0x18
sub esp, 0x18
mov byte [ebp - 4], 0xc
mov ecx, esp
push 0xb
push str.players_max
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
mov ecx, 0x446144
call fcn.0040e470
sub esp, 0x18
mov dword [ebp - 0x34], eax
mov ecx, esp
mov dword [ebp + 8], esp
push 1
push 0x4354ac
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0xd
mov ecx, esp
push 6
push str._flags
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
lea eax, [ebp - 0x1a4]
push eax
mov ecx, 0x446144
mov byte [ebp - 4], 0xc
call fcn.0040e560
sub esp, 0x18
mov byte [ebp - 4], 0xe
mov ecx, esp
mov dword [ebp + 8], esp
push 1
push 0x435570
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0xf
mov ecx, esp
push 0xb
push str.players_num
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
lea eax, [ebp - 0x18c]
mov byte [ebp - 4], 0xe
push eax
mov ecx, 0x446144
call fcn.0040e560
sub esp, 0x18
mov byte [ebp - 4], 0x10
mov ecx, esp
mov dword [ebp + 8], esp
push 1
push 0x4354ac
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0x11
mov ecx, esp
push 0x10
push str.game_create_time
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
lea eax, [ebp - 0x174]
mov byte [ebp - 4], 0x10
push eax
mov ecx, 0x446144
call fcn.0040e560
push 4
sub esp, 0x18
mov byte [ebp - 4], 0x12
mov esi, esp
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push 0
push 0x4352e4
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov ecx, esp
push 0x14
push str.gamedata_mapGameType
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
push esi
mov ecx, 0x446144
mov byte [ebp - 4], 0x12
call fcn.0040e560
lea eax, [ebp - 0x80]
push eax
call fcn.004047d0
add esp, 0x20
push 4
sub esp, 0x18
mov byte [ebp - 4], 0x14
mov esi, esp
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push 0
push 0x4352e4
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0x15
mov ecx, esp
push 0x13
push str.statstring_mapflags
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
push esi
mov ecx, 0x446144
mov byte [ebp - 4], 0x14
call fcn.0040e560
lea eax, [ebp - 0x74]
push eax
call fcn.004047d0
add esp, 0x20
push 2
sub esp, 0x18
mov byte [ebp - 4], 0x16
mov esi, esp
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push 3
push 0x4355f8
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0x17
mov ecx, esp
push 0x13
push str.statstring_mapwidth
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
push esi
mov ecx, 0x446144
mov byte [ebp - 4], 0x16
call fcn.0040e560
lea eax, [ebp - 0xb0]
push eax
call fcn.004047d0
add esp, 0x20
push 2
sub esp, 0x18
mov byte [ebp - 4], 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
push 3
push 0x4355f8
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0x19
mov ecx, esp
push 0x14
push str.statstring_mapheight
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
push esi
mov ecx, 0x446144
mov byte [ebp - 4], 0x18
call fcn.0040e560
lea eax, [ebp - 0xa4]
push eax
call fcn.004047d0
add esp, 0x20
push 4
sub esp, 0x18
mov byte [ebp - 4], 0x1a
mov esi, esp
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push 0
push 0x4352e4
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0x1b
mov ecx, esp
push 0x11
push str.statstring_mapcrc
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
push esi
mov ecx, 0x446144
mov byte [ebp - 4], 0x1a
call fcn.0040e560
lea eax, [ebp - 0x98]
push eax
call fcn.004047d0
add esp, 8
mov byte [ebp - 4], 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push 0
push 0x4352e4
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0x1d
mov ecx, esp
push 0x12
push str.statstring_mappath
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 0x1c
push eax
mov ecx, 0x446144
call fcn.0040e560
mov byte [ebp - 4], 0x1e
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push 0
push 0x4352e4
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0x1f
mov ecx, esp
push 0x13
push str.statstring_hostname
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0x1e
push eax
mov ecx, 0x446144
call fcn.0040e560
push 0x14
sub esp, 0x18
mov byte [ebp - 4], 0x20
mov esi, esp
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push 0x27
push str.0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0x21
mov ecx, esp
push 0x12
push str.statstring_mapsha1
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.00409010
push esi
mov ecx, 0x446144
mov byte [ebp - 4], 0x20
call fcn.0040e560
lea eax, [ebp - 0x8c]
push eax
call fcn.004047d0
add esp, 0x20
cmp dword [ebp - 0xe8], 0
mov byte [ebp - 4], 0x22
je 0x40d887
cmp dword [ebp - 0x130], 0
je 0x40d887
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x7c]
je 0x40d887
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x70]
je 0x40d887
cmp dword [ebp - 0xd0], 0
je 0x40d887
cmp dword [ebp - 0xb8], 0
je 0x40d887
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
push 0x17e1
sub esp, 0x18
mov byte [ebp - 4], 0x23
mov ecx, esp
push str.port
call fcn.00402d90
mov ecx, 0x446144
call fcn.0040e470
push dword [ebp - 0x70]
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x20]
push dword [ebp - 0x74]
lea eax, [ebp + 8]
push 0
push eax
call fcn.00402570
mov eax, dword [ebp - 0x1c]
mov byte [ebp + 0xb], 0
cmp eax, dword [ebp - 0x18]
je 0x40d168
mov byte [eax], 0
inc eax
mov dword [ebp - 0x1c], eax
jmp 0x40d178
lea ecx, [ebp + 0xb]
push ecx
push eax
lea ecx, [ebp - 0x20]
call fcn.00401b70
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0xac]
lea ecx, [ebp - 0x20]
push dword [ebp - 0xb0]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00402570
push dword [ebp - 0xa0]
lea eax, [ebp + 8]
push dword [ebp - 0xa4]
lea ecx, [ebp - 0x20]
push dword [ebp - 0x1c]
push eax
call fcn.00402570
push dword [ebp - 0x94]
lea eax, [ebp + 8]
push dword [ebp - 0x98]
lea ecx, [ebp - 0x20]
push dword [ebp - 0x1c]
push eax
call fcn.00402570
cmp dword [ebp - 0xcc], 0x10
lea eax, [ebp + 8]
lea esi, [ebp - 0xe0]
cmovae esi, dword [ebp - 0xe0]
lea ecx, [ebp - 0xe0]
push eax
call fcn.0040b190
lea ecx, [ebp - 0x20]
push dword [eax]
lea eax, [ebp - 0x14]
push esi
push dword [ebp - 0x1c]
push eax
call fcn.00402570
mov edi, dword [ebp - 0x1c]
mov byte [ebp + 0xb], 0
cmp edi, dword [ebp - 0x18]
je 0x40d211
mov byte [edi], 0
inc edi
mov dword [ebp - 0x1c], edi
jmp 0x40d221
lea eax, [ebp + 0xb]
push eax
push edi
lea ecx, [ebp - 0x20]
call fcn.00401b70
mov edi, dword [ebp - 0x1c]
cmp dword [ebp - 0xb4], 0x10
lea eax, [ebp + 8]
lea esi, [ebp - 0xc8]
cmovae esi, dword [ebp - 0xc8]
lea ecx, [ebp - 0xc8]
push eax
call fcn.0040b190
lea ecx, [ebp - 0x20]
push dword [eax]
lea eax, [ebp - 0x14]
push esi
push edi
push eax
call fcn.00402570
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov byte [ebp + 0xb], 0
cmp eax, ecx
je 0x40d26b
mov byte [eax], 0
inc eax
mov dword [ebp - 0x1c], eax
jmp 0x40d27e
lea ecx, [ebp + 0xb]
push ecx
push eax
lea ecx, [ebp - 0x20]
call fcn.00401b70
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov byte [ebp + 0xb], 0
cmp eax, ecx
je 0x40d28f
mov byte [eax], 0
inc eax
mov dword [ebp - 0x1c], eax
jmp 0x40d29f
lea ecx, [ebp + 0xb]
push ecx
push eax
lea ecx, [ebp - 0x20]
call fcn.00401b70
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0x88]
lea ecx, [ebp - 0x20]
push dword [ebp - 0x8c]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00402570
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 0x24
push eax
lea ecx, [ebp - 0x50]
call fcn.00402c70
lea eax, [ebp + 0xb]
mov byte [ebp - 4], 0x25
push eax
push 0
lea ecx, [ebp - 0x2c]
mov byte [ebp + 0xb], 0xa
call fcn.00401b70
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
mov byte [ebp + 0xb], al
cmp edi, dword [ebp - 0x24]
je 0x40d30c
mov byte [edi], al
inc edi
mov dword [ebp - 0x28], edi
jmp 0x40d31c
lea eax, [ebp + 0xb]
push eax
push edi
lea ecx, [ebp - 0x2c]
call fcn.00401b70
mov edi, dword [ebp - 0x28]
cmp dword [ebp - 0x3c], 0x10
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x2c]
cmovae edx, dword [ebp - 0x50]
push dword [ebp + 8]
add eax, edx
cmp dword [ebp - 0x3c], 0x10
lea edx, [ebp - 0x50]
cmovae edx, dword [ebp - 0x50]
push eax
push edx
push edi
call fcn.00402090
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov byte [ebp + 0xb], 0x10
cmp eax, ecx
je 0x40d35c
mov byte [eax], 0x10
inc eax
mov dword [ebp - 0x28], eax
jmp 0x40d36f
lea ecx, [ebp + 0xb]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00401b70
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov byte [ebp + 0xb], 0
cmp eax, ecx
je 0x40d380
mov byte [eax], 0
inc eax
mov dword [ebp - 0x28], eax
jmp 0x40d38d
lea ecx, [ebp + 0xb]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00401b70
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x24
call fcn.00403670
push 0
sub esp, 0x18
lea eax, [ebp - 0x140]
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.00402c70
sub esp, 0x18
mov byte [ebp - 4], 0x26
mov ecx, esp
push str.game_secret
call fcn.00402d90
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x24
push eax
call fcn.00408730
add esp, 0x38
lea eax, [ebp - 0x1ec]
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.00402c70
sub esp, 0x18
mov byte [ebp - 4], 0x27
mov ecx, esp
push str._type
call fcn.00402d90
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x24
push eax
call fcn.00408730
add esp, 0x38
lea eax, [ebp - 0x1d4]
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.00402c70
sub esp, 0x18
mov byte [ebp - 4], 0x28
mov ecx, esp
push str._subtype
call fcn.00402d90
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x24
push eax
call fcn.00408730
add esp, 0x38
lea eax, [ebp - 0x1bc]
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.00402c70
sub esp, 0x18
mov byte [ebp - 4], 0x29
mov ecx, esp
push str.game_id
call fcn.00402d90
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x24
push eax
call fcn.00408730
add esp, 0x38
lea eax, [ebp - 0xf8]
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.00402c70
sub esp, 0x18
mov byte [ebp - 4], 0x2a
mov ecx, esp
push str._name
call fcn.00402d90
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x24
push eax
call fcn.00408730
add esp, 0x38
push 0
sub esp, 0x18
mov esi, esp
mov dword [ebp + 8], esp
mov dword [ebp - 0x14], esi
mov edi, dword [ebp - 0x34]
test edi, edi
jns 0x40d4e1
mov eax, edi
neg eax
push eax
lea eax, [ebp - 0x3b]
push eax
call fcn.00402530
mov byte [eax - 1], 0x2d
lea ecx, [eax - 1]
jmp 0x40d4ed
lea eax, [ebp - 0x3b]
push edi
push eax
call fcn.00402530
mov ecx, eax
lea eax, [ebp - 0x3b]
mov dword [esi], 0
add esp, 8
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
cmp ecx, eax
je 0x40d519
sub eax, ecx
push eax
push ecx
mov ecx, esi
call fcn.00409010
sub esp, 0x18
mov byte [ebp - 4], 0x2b
mov ecx, esp
push str.players_max
call fcn.00402d90
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x24
push eax
call fcn.00408730
add esp, 0x38
lea eax, [ebp - 0x1a4]
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.00402c70
sub esp, 0x18
mov byte [ebp - 4], 0x2c
mov ecx, esp
push str._flags
call fcn.00402d90
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x24
push eax
call fcn.00408730
add esp, 0x38
lea eax, [ebp - 0x18c]
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.00402c70
sub esp, 0x18
mov byte [ebp - 4], 0x2d
mov ecx, esp
push str.players_num
call fcn.00402d90
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x24
push eax
call fcn.00408730
add esp, 0x38
lea eax, [ebp - 0x174]
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.00402c70
sub esp, 0x18
mov byte [ebp - 4], 0x2e
mov ecx, esp
push str.game_create_time
call fcn.00402d90
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x24
push eax
call fcn.00408730
add esp, 0x38
lea eax, [ebp - 0xf8]
push dword [ebp - 0x10]
sub esp, 0x18
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.00402c70
push edi
sub esp, 0xc
mov byte [ebp - 4], 0x2f
lea eax, [ebp - 0x20]
mov dword [ebp - 0x14], esp
mov ecx, esp
push eax
call fcn.00402f60
sub esp, 0xc
mov byte [ebp - 4], 0x30
lea eax, [ebp - 0x80]
mov ecx, esp
push eax
call fcn.00402f60
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x24
push eax
call fcn.00408950
mov edi, dword [ebp - 0x28]
lea eax, [ebp + 0xb]
mov esi, dword [ebp - 0x2c]
lea ecx, [ebp - 0x50]
add esp, 0x3c
push eax
push edi
push esi
call fcn.00401140
push 0
mov ecx, eax
sub edi, esi
call fcn.00409690
push eax
push edi
push 0x42
push 0
push 0x446138
push dword [0x446134]
call sub.dnssd.dll_DNSServiceAddRecord
lea ecx, [ebp - 0x50]
mov esi, eax
call fcn.00403670
test esi, esi
je 0x40d6a1
push 0x4354bc
push esi
push str._BROADCAST__error:
push 0x446460
call fcn.004013b0
add esp, 8
mov ecx, eax
call fcn.00403a70
push eax
call fcn.004013b0
add esp, 8
mov esi, dword [ebp - 0x30]
push 0x21
push 0x500
push esi
push dword [0x446130]
call sub.dnssd.dll_DNSServiceRefSockFD
mov edi, dword [sym.imp.WS2_32.dll_WSAAsyncSelect]
push eax
call edi
test eax, eax
je 0x40d6ec
push 0x4354bc
push eax
push str._BROADCAST__error:
push 0x446460
call fcn.004013b0
add esp, 8
mov ecx, eax
call fcn.00403a70
push eax
call fcn.004013b0
add esp, 8
push 0x21
push 0x500
push esi
push dword [0x446134]
call sub.dnssd.dll_DNSServiceRefSockFD
push eax
call edi
test eax, eax
je 0x40d72e
push 0x4354bc
push eax
push str._BROADCAST__error:
push 0x446460
call fcn.004013b0
add esp, 8
mov ecx, eax
call fcn.00403a70
push eax
call fcn.004013b0
add esp, 8
push 0x10
call fcn.00411d8b
mov esi, eax
add esp, 4
mov dword [ebp + 8], esi
mov byte [ebp - 4], 0x31
test esi, esi
je 0x40d759
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.00402f60
mov dword [esi + 0xc], 0x40b6b0
jmp 0x40d75b
xor esi, esi
lea ecx, [ebp + 8]
mov dword [ebp + 8], 0
call fcn.00403790
mov dword [ebp + 8], 0
mov dword [ebp - 0x14], esi
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x32
call fcn.00403790
lea eax, [ebp - 0x34]
push eax
push 0
push esi
push 0x4024b0
push 0
push 0
call fcn.0041bd52
add esp, 0x18
mov dword [ebp - 0x38], eax
test eax, eax
je 0x40d99c
mov ecx, dword [ebp - 0x34]
mov byte [ebp - 4], 0x33
test ecx, ecx
je 0x40d98f
push ecx
push eax
call fcn.0041068c
add esp, 8
test eax, eax
jne 0x40d996
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
push eax
push eax
push eax
lea eax, [ebp - 0x15c]
push eax
call esi
test eax, eax
je 0x40d80f
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x15c]
push eax
call edi
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [ebp - 0x15c]
push eax
call esi
test eax, eax
jne 0x40d7e0
mov edi, dword [sym.imp.WS2_32.dll_WSAAsyncSelect]
mov eax, dword [0x446138]
test eax, eax
je 0x40d826
push 0
push eax
push dword [0x446134]
call sub.dnssd.dll_DNSServiceRemoveRecord
mov eax, dword [0x446130]
mov esi, dword [ebp - 0x30]
test eax, eax
je 0x40d84e
push 0
push 0x500
push esi
push eax
call sub.dnssd.dll_DNSServiceRefSockFD
push eax
call edi
push dword [0x446130]
call sub.dnssd.dll_DNSServiceRefDeallocate
mov eax, dword [0x446134]
test eax, eax
je 0x40d873
push 0
push 0x500
push esi
push eax
call sub.dnssd.dll_DNSServiceRefSockFD
push eax
call edi
push dword [0x446134]
call sub.dnssd.dll_DNSServiceRefDeallocate
lea ecx, [ebp - 0x2c]
xor esi, esi
call fcn.00403800
lea ecx, [ebp - 0x20]
call fcn.00403800
jmp 0x40d89e
push str._BROADCAST__invalid_config
push 0x446460
call fcn.004013b0
add esp, 8
mov esi, 1
lea ecx, [ebp - 0x8c]
call fcn.00403800
lea ecx, [ebp - 0xc8]
call fcn.00403670
lea ecx, [ebp - 0xe0]
call fcn.00403670
lea ecx, [ebp - 0x98]
call fcn.00403800
lea ecx, [ebp - 0xa4]
call fcn.00403800
lea ecx, [ebp - 0xb0]
call fcn.00403800
lea ecx, [ebp - 0x74]
call fcn.00403800
lea ecx, [ebp - 0x80]
call fcn.00403800
lea ecx, [ebp - 0x174]
call fcn.00403670
lea ecx, [ebp - 0x18c]
call fcn.00403670
lea ecx, [ebp - 0x1a4]
call fcn.00403670
lea ecx, [ebp - 0xf8]
call fcn.00403670
lea ecx, [ebp - 0x1bc]
call fcn.00403670
lea ecx, [ebp - 0x1d4]
call fcn.00403670
lea ecx, [ebp - 0x1ec]
call fcn.00403670
lea ecx, [ebp - 0x140]
call fcn.00403670
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x40d978
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40d96e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40d9aa
push edx
push ecx
call fcn.00411dbb
add esp, 8
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret
call fcn.004161af
push 1
call fcn.004107ca
push eax
call fcn.0041079d
push 6
mov dword [ebp - 0x34], 0
call fcn.004107ca
call fcn.004161af
int3