Function at 0x40a4d0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x66a2f7
mov eax, dword fs:[0]
push eax
sub esp, 0x54
push ebx
push esi
push edi
mov eax, dword [0x71cf78]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xcc]
mov dword [ebp - 4], 0
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b6f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpExeUrl
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.00402ad0
test al, al
jne 0x40a56c
push 8
push str.UpExeUrl
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 2
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b6fa
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.00402ad0
test al, al
jne 0x40a5b1
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 2
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea edi, [ebx + 0xd0]
mov dword [ebp - 4], 4
push edi
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b704
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push 0x691124
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.00402ad0
test al, al
jne 0x40a635
push 7
push 0x691124
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 6
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b70e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 7
call fcn.00402ad0
test al, al
jne 0x40a67a
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 6
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xd4]
mov dword [ebp - 4], 8
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b718
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.CompelUp
mov ecx, esi
mov byte [ebp - 4], 9
call fcn.00402ad0
test al, al
jne 0x40a6fe
push 8
push str.CompelUp
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b722
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0xb
call fcn.00402ad0
test al, al
jne 0x40a743
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0xa
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xd8]
mov dword [ebp - 4], 0xc
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b72c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.CheckFileAddr
mov ecx, esi
mov byte [ebp - 4], 0xd
call fcn.00402ad0
test al, al
jne 0x40a7c7
push 0xd
push str.CheckFileAddr
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b736
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0xf
call fcn.00402ad0
test al, al
jne 0x40a80c
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0xe
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xdc]
mov dword [ebp - 4], 0x10
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b740
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.CheckDirName
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.00402ad0
test al, al
jne 0x40a890
push 0xc
push str.CheckDirName
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b74a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0x13
call fcn.00402ad0
test al, al
jne 0x40a8d5
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x12
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xe0]
mov dword [ebp - 4], 0x14
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b754
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.ForceCheckFile
mov ecx, esi
mov byte [ebp - 4], 0x15
call fcn.00402ad0
test al, al
jne 0x40a959
push 0xe
push str.ForceCheckFile
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b75e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0x17
call fcn.00402ad0
test al, al
jne 0x40a99e
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x16
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xe4]
mov dword [ebp - 4], 0x18
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b768
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.homepage
mov ecx, esi
mov byte [ebp - 4], 0x19
call fcn.00402ad0
test al, al
jne 0x40aa22
push 8
push str.homepage
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0x1a
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b772
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0x1b
call fcn.00402ad0
test al, al
jne 0x40aa67
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x1a
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xe8]
mov dword [ebp - 4], 0x1c
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b77c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push 0x691174
mov ecx, esi
mov byte [ebp - 4], 0x1d
call fcn.00402ad0
test al, al
jne 0x40aaeb
push 3
push 0x691174
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0x1e
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b786
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0x1f
call fcn.00402ad0
test al, al
jne 0x40ab30
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x1e
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xf8]
mov dword [ebp - 4], 0x20
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b790
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.more
mov ecx, esi
mov byte [ebp - 4], 0x21
call fcn.00402ad0
test al, al
jne 0x40abb4
push 4
push str.more
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b79a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0x23
call fcn.00402ad0
test al, al
jne 0x40abf9
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x22
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xfc]
mov dword [ebp - 4], 0x24
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7a4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.Tnotce
mov ecx, esi
mov byte [ebp - 4], 0x25
call fcn.00402ad0
test al, al
jne 0x40ac7d
push 6
push str.Tnotce
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0x26
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7ae
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0x27
call fcn.00402ad0
test al, al
jne 0x40acc2
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x26
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xec]
mov dword [ebp - 4], 0x28
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7b8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.notice
mov ecx, esi
mov byte [ebp - 4], 0x29
call fcn.00402ad0
test al, al
jne 0x40ad46
push 6
push str.notice
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0x2a
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7c2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0x2b
call fcn.00402ad0
test al, al
jne 0x40ad8b
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x2a
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xf0]
mov dword [ebp - 4], 0x2c
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7cc
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.DelFileList
mov ecx, esi
mov byte [ebp - 4], 0x2d
call fcn.00402ad0
test al, al
jne 0x40ae0f
push 0xb
push str.DelFileList
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0x2e
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7d6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0x2f
call fcn.00402ad0
test al, al
jne 0x40ae54
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x2e
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xf4]
mov dword [ebp - 4], 0x30
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7e0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.KillList
mov ecx, esi
mov byte [ebp - 4], 0x31
call fcn.00402ad0
test al, al
jne 0x40aed8
push 8
push str.KillList
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0x32
mov dword [ebp - 0x40], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7ea
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.UpdataSet
mov ecx, esi
mov byte [ebp - 4], 0x33
call fcn.00402ad0
test al, al
jne 0x40af1d
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x32
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d290
push dword [edi]
call fcn.0063e38c
fstp qword [ebp - 0x60]
push str.23.05
call fcn.0063e38c
add esp, 8
mov ecx, ebx
fstp qword [ebp - 0x58]
push str.23.05
push 0x3ff
call fcn.0042d63d
mov ecx, eax
call fcn.0042e321
push dword [edi]
mov ecx, ebx
push 0x3fe
call fcn.0042d63d
mov ecx, eax
call fcn.0042e321
movsd xmm0, qword [ebp - 0x60]
comisd xmm0, xmmword [ebp - 0x58]
jbe 0x40b0c7
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7f4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
push 0x6911b0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x34
call fcn.00402ad0
test al, al
jne 0x40afc7
push 1
push 0x6911b0
lea ecx, [ebp - 0x1c]
call fcn.00408790
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x40b7f4
push esi
push dword [ebx + 0xd4]
call fcn.0062c5cc
add esp, 8
test eax, eax
sete byte [ebp - 0xd]
or edi, 0xffffffff
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40b008
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xd], 0
jne 0x40b098
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7f4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
push 0x6911c0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x35
call fcn.00402ad0
test al, al
jne 0x40b053
push 0x12
push 0x6911c0
lea ecx, [ebp - 0x1c]
call fcn.00408790
mov esi, dword [ebp - 0x1c]
mov ecx, ebx
push 4
push 0x6911b4
push esi
mov dword [ebp - 4], 0x36
call fcn.0042847a
cmp eax, 6
mov dword [ebp - 4], 0xffffffff
sete al
add esi, 0xfffffff0
mov byte [ebp - 0xd], al
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x40b094
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov al, byte [ebp - 0xd]
test al, al
je 0x40b0aa
push dword [ebp + 8]
mov ecx, ebx
call fcn.00411740
test eax, eax
je 0x40b6dc
push 0
mov ecx, ebx
call fcn.0042ec00
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7f4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
push ecx
mov esi, esp
mov dword [ebp + 8], esp
mov dword [ebp - 0x48], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
mov dword [ebp - 4], 0x37
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x38
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b7fe
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.ServerCount
mov ecx, esi
mov byte [ebp - 4], 0x39
call fcn.00402ad0
test al, al
jne 0x40b154
push 0xb
push str.ServerCount
mov ecx, esi
call fcn.00408790
push ecx
mov esi, esp
mov byte [ebp - 4], 0x3a
mov dword [ebp - 0x44], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b808
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.IPLIST
mov ecx, esi
mov byte [ebp - 4], 0x3b
call fcn.00402ad0
test al, al
jne 0x40b199
push 6
push str.IPLIST
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x3a
mov ecx, ebx
mov byte [ebp - 4], 0x37
call fcn.0040d290
mov edi, dword [ebp - 0x20]
push edi
call fcn.0062e5d6
add esp, 4
or esi, 0xffffffff
test eax, eax
jle 0x40b691
mov eax, 1
mov dword [ebp - 0x18], 0x72b0bc
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], 0x72b158
nop word [eax + eax]
push 0x560
mov dword [ebp - 0x48], eax
call fcn.00420669
add esp, 4
mov dword [ebp - 0x4c], eax
mov byte [ebp - 4], 0x3c
test eax, eax
je 0x40b202
mov ecx, eax
call fcn.004038e0
mov byte [ebp - 4], 0x37
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b6f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0x3d
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b6f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 0x3e
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b6f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 0x3f
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b6f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push dword [ebp - 0x14]
lea eax, [ebp + 8]
mov byte [ebp - 4], 0x40
push str.ServerName_i
push eax
call fcn.00402cc0
add esp, 8
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x41
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x40], esp
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
push eax
call fcn.00407710
add eax, 0x10
mov dword [esi], eax
mov esi, esp
mov byte [ebp - 4], 0x42
mov dword [ebp - 0x50], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b6f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.IPLIST
mov ecx, esi
mov byte [ebp - 4], 0x43
call fcn.00402ad0
test al, al
jne 0x40b317
push 6
push str.IPLIST
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x42
mov ecx, ebx
mov byte [ebp - 4], 0x40
call fcn.0040d290
push 0
push 0x68ffbf
lea ecx, [ebp + 8]
call fcn.00408790
push dword [ebp - 0x14]
lea eax, [ebp + 8]
push str.ServerAddr_i
push eax
call fcn.00402cc0
add esp, 8
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x44
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x40], esp
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
push eax
call fcn.00407710
add eax, 0x10
mov dword [esi], eax
mov esi, esp
mov byte [ebp - 4], 0x45
mov dword [ebp - 0x54], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b6f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.IPLIST
mov ecx, esi
mov byte [ebp - 4], 0x46
call fcn.00402ad0
test al, al
jne 0x40b3ce
push 6
push str.IPLIST
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x45
mov ecx, ebx
mov byte [ebp - 4], 0x40
call fcn.0040d290
push 0
push 0x68ffbf
lea ecx, [ebp + 8]
call fcn.00408790
push dword [ebp - 0x14]
lea eax, [ebp + 8]
push str.port_i
push eax
call fcn.00402cc0
add esp, 8
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
mov eax, dword [ebx + 0xc8]
sub eax, 0x10
push eax
call fcn.00407710
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x47
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x3c], esp
mov dword [ebp - 0x40], esi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
push eax
mov dword [ebp - 0x40], eax
call fcn.00407710
add eax, 0x10
mov dword [esi], eax
mov esi, esp
mov byte [ebp - 4], 0x48
mov dword [ebp - 0x5c], esi
call fcn.00423a7b
mov ecx, eax
test ecx, ecx
je 0x40b6f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.IPLIST
mov ecx, esi
mov byte [ebp - 4], 0x49
call fcn.00402ad0
test al, al
jne 0x40b488
push 6
push str.IPLIST
mov ecx, esi
call fcn.00408790
mov byte [ebp - 4], 0x48
mov ecx, ebx
mov byte [ebp - 4], 0x40
call fcn.0040d290
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
push esi
call fcn.0042e321
mov ecx, dword [ebp - 0x1c]
push 5
call fcn.0042e373
mov edx, dword [ebp - 0x18]
lea eax, [esi - 0x10]
mov dword [ebp - 0x34], eax
mov dword [edx - 4], 0
mov ecx, dword [edx]
sub ecx, 0x10
mov dword [ebp - 0x38], ecx
cmp eax, ecx
je 0x40b51e
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x20]
jl 0x40b513
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x40b513
push dword [ebp - 0x34]
call fcn.00407710
mov dword [ebp - 0x3c], eax
add esp, 4
mov eax, dword [ebp - 0x2c]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40b506
mov esi, dword [ebp - 0x38]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
add eax, 0x10
mov dword [edx], eax
jmp 0x40b51e
push dword [esi - 0xc]
mov ecx, edx
push esi
call fcn.00408790
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
add ecx, 8
mov dword [ebp - 0x2c], ecx
mov esi, dword [ecx]
lea edx, [eax - 0x10]
sub esi, 0x10
mov dword [ebp - 0x38], edx
cmp edx, esi
je 0x40b581
cmp dword [esi + 0xc], 0
jl 0x40b578
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x40b575
push edx
call fcn.00407710
mov dword [ebp - 0x3c], eax
add esp, 4
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40b568
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
add eax, 0x10
mov dword [ecx], eax
jmp 0x40b581
mov ecx, dword [ebp - 0x2c]
push dword [eax - 0xc]
push eax
call fcn.00408790
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
add ecx, 4
mov dword [ebp - 0x2c], ecx
mov esi, dword [ecx]
lea edx, [eax - 0x10]
sub esi, 0x10
mov dword [ebp - 0x44], edx
cmp edx, esi
je 0x40b5e4
cmp dword [esi + 0xc], 0
jl 0x40b5db
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x40b5d8
push edx
call fcn.00407710
mov dword [ebp - 0x3c], eax
add esp, 4
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40b5cb
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
add eax, 0x10
mov dword [ecx], eax
jmp 0x40b5e4
mov ecx, dword [ebp - 0x2c]
push dword [eax - 0xc]
push eax
call fcn.00408790
mov eax, dword [ebp - 0x14]
push 0
push 0
dec eax
push eax
push 0x40ee70
push 0x2800
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [ebp - 0x40]
or esi, 0xffffffff
mov byte [ebp - 4], 0x3f
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b61d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x38]
mov eax, esi
mov byte [ebp - 4], 0x3e
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b638
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x44]
mov eax, esi
mov byte [ebp - 4], 0x3d
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b653
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x34]
mov eax, esi
mov byte [ebp - 4], 0x37
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b66e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc dword [ebp - 0x14]
add dword [ebp - 0x1c], 0x560
add dword [ebp - 0x18], 0x10
push edi
call fcn.0062e5d6
add esp, 4
cmp dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x14]
jl 0x40b1e0
push 0
push 0
push 0
push 0
push 0
push dword [ebx + 0xec]
lea ecx, [ebx + 0x260]
call fcn.004377c9
push 0
lea ecx, [ebx + 0x568]
call fcn.0042e373
mov ecx, ebx
call fcn.00410eb0
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], esi
dec esi
test esi, esi
jg 0x40b6dc
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
int3