Function at 0x40a420
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x66a377
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.00407700
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.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b700
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.00402920
test al, al
jne 0x40a4bc
push 8
push str.UpExeUrl
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 2
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b70a
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.00402920
test al, al
jne 0x40a501
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 2
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
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.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b714
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push 0x6911ac
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.00402920
test al, al
jne 0x40a585
push 7
push 0x6911ac
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 6
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b71e
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.00402920
test al, al
jne 0x40a5ca
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 6
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
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.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b728
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.00402920
test al, al
jne 0x40a64e
push 8
push str.CompelUp
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b732
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.00402920
test al, al
jne 0x40a693
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0xa
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
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.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b73c
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.00402920
test al, al
jne 0x40a717
push 0xd
push str.CheckFileAddr
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b746
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.00402920
test al, al
jne 0x40a75c
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0xe
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
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.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b750
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.00402920
test al, al
jne 0x40a7e0
push 0xc
push str.CheckDirName
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b75a
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.00402920
test al, al
jne 0x40a825
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x12
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
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.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b764
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.00402920
test al, al
jne 0x40a8a9
push 0xe
push str.ForceCheckFile
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b76e
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.00402920
test al, al
jne 0x40a8ee
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x16
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
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.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b778
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.00402920
test al, al
jne 0x40a972
push 8
push str.homepage
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x1a
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b782
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.00402920
test al, al
jne 0x40a9b7
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x1a
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
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.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b78c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push 0x6911fc
mov ecx, esi
mov byte [ebp - 4], 0x1d
call fcn.00402920
test al, al
jne 0x40aa3b
push 3
push 0x6911fc
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x1e
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b796
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.00402920
test al, al
jne 0x40aa80
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x1e
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xfc]
mov dword [ebp - 4], 0x20
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b7a0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push str.paihang
mov ecx, esi
mov byte [ebp - 4], 0x21
call fcn.00402920
test al, al
jne 0x40ab04
push 7
push str.paihang
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b7aa
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.00402920
test al, al
jne 0x40ab49
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x22
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xf8]
mov dword [ebp - 4], 0x24
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b7b4
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], 0x25
call fcn.00402920
test al, al
jne 0x40abcd
push 4
push str.more
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x26
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b7be
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.00402920
test al, al
jne 0x40ac12
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x26
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0x100]
mov dword [ebp - 4], 0x28
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b7c8
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], 0x29
call fcn.00402920
test al, al
jne 0x40ac96
push 6
push str.Tnotce
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x2a
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b7d2
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.00402920
test al, al
jne 0x40acdb
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x2a
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xec]
mov dword [ebp - 4], 0x2c
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b7dc
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], 0x2d
call fcn.00402920
test al, al
jne 0x40ad5f
push 6
push str.notice
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x2e
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b7e6
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.00402920
test al, al
jne 0x40ada4
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x2e
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xf0]
mov dword [ebp - 4], 0x30
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b7f0
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], 0x31
call fcn.00402920
test al, al
jne 0x40ae28
push 0xb
push str.DelFileList
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x32
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b7fa
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.00402920
test al, al
jne 0x40ae6d
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x32
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
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.00407700
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebx + 0xf4]
mov dword [ebp - 4], 0x34
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x44], esp
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b804
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], 0x35
call fcn.00402920
test al, al
jne 0x40aef1
push 8
push str.KillList
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x36
mov dword [ebp - 0x40], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b80e
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], 0x37
call fcn.00402920
test al, al
jne 0x40af36
push 9
push str.UpdataSet
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x36
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.0040d280
push dword [edi]
call fcn.0063e42b
fstp qword [ebp - 0x60]
push str.22.15
call fcn.0063e42b
add esp, 8
mov ecx, ebx
fstp qword [ebp - 0x58]
push str.22.15
push 0x3ff
call fcn.0042d783
mov ecx, eax
call fcn.0042e467
push dword [edi]
mov ecx, ebx
push 0x3fe
call fcn.0042d783
mov ecx, eax
call fcn.0042e467
movsd xmm0, qword [ebp - 0x60]
comisd xmm0, xmmword [ebp - 0x58]
jbe 0x40b0e0
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b818
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
push 0x691240
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x38
call fcn.00402920
test al, al
jne 0x40afe0
push 1
push 0x691240
lea ecx, [ebp - 0x1c]
call fcn.00408780
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x40b818
push esi
push dword [ebx + 0xd4]
call fcn.0062c66c
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 0x40b021
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xd], 0
jne 0x40b0b1
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b818
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
push 0x691250
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x39
call fcn.00402920
test al, al
jne 0x40b06c
push 0x12
push 0x691250
lea ecx, [ebp - 0x1c]
call fcn.00408780
mov esi, dword [ebp - 0x1c]
mov ecx, ebx
push 4
push 0x691244
push esi
mov dword [ebp - 4], 0x3a
call fcn.004285c0
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 0x40b0ad
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov al, byte [ebp - 0xd]
test al, al
je 0x40b0c3
push dword [ebp + 8]
mov ecx, ebx
call fcn.00411980
test eax, eax
je 0x40b6ec
push 0
mov ecx, ebx
call fcn.0042ed46
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.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b818
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], 0x3b
push eax
call fcn.00407700
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0x3c
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x44], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b822
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], 0x3d
call fcn.00402920
test al, al
jne 0x40b16d
push 0xb
push str.ServerCount
mov ecx, esi
call fcn.00408780
push ecx
mov esi, esp
mov byte [ebp - 4], 0x3e
mov dword [ebp - 0x44], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b82c
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], 0x3f
call fcn.00402920
test al, al
jne 0x40b1b2
push 6
push str.IPLIST
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x3e
mov ecx, ebx
mov byte [ebp - 4], 0x3b
call fcn.0040d280
mov edi, dword [ebp - 0x20]
push edi
call fcn.0062e676
add esp, 4
or esi, 0xffffffff
test eax, eax
jle 0x40b6a1
mov eax, 1
mov dword [ebp - 0x18], 0x72b0b4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], 0x72b150
nop
push 0x560
mov dword [ebp - 0x48], eax
call fcn.0042078b
add esp, 4
mov dword [ebp - 0x4c], eax
mov byte [ebp - 4], 0x40
test eax, eax
je 0x40b212
mov ecx, eax
call fcn.004038c0
mov byte [ebp - 4], 0x3b
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b700
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0x41
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b700
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 0x42
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b700
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 0x43
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b700
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], 0x44
push str.ServerName_i
push eax
call fcn.00402b10
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.00407700
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x45
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.00407700
add eax, 0x10
mov dword [esi], eax
mov esi, esp
mov byte [ebp - 4], 0x46
mov dword [ebp - 0x50], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b700
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], 0x47
call fcn.00402920
test al, al
jne 0x40b327
push 6
push str.IPLIST
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x46
mov ecx, ebx
mov byte [ebp - 4], 0x44
call fcn.0040d280
push 0
push 0x68ffcf
lea ecx, [ebp + 8]
call fcn.00408780
push dword [ebp - 0x14]
lea eax, [ebp + 8]
push str.ServerAddr_i
push eax
call fcn.00402b10
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.00407700
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x48
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.00407700
add eax, 0x10
mov dword [esi], eax
mov esi, esp
mov byte [ebp - 4], 0x49
mov dword [ebp - 0x54], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b700
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], 0x4a
call fcn.00402920
test al, al
jne 0x40b3de
push 6
push str.IPLIST
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x49
mov ecx, ebx
mov byte [ebp - 4], 0x44
call fcn.0040d280
push 0
push 0x68ffcf
lea ecx, [ebp + 8]
call fcn.00408780
push dword [ebp - 0x14]
lea eax, [ebp + 8]
push str.port_i
push eax
call fcn.00402b10
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.00407700
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x4b
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.00407700
add eax, 0x10
mov dword [esi], eax
mov esi, esp
mov byte [ebp - 4], 0x4c
mov dword [ebp - 0x5c], esi
call fcn.00423b74
mov ecx, eax
test ecx, ecx
je 0x40b700
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], 0x4d
call fcn.00402920
test al, al
jne 0x40b498
push 6
push str.IPLIST
mov ecx, esi
call fcn.00408780
mov byte [ebp - 4], 0x4c
mov ecx, ebx
mov byte [ebp - 4], 0x44
call fcn.0040d280
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
push esi
call fcn.0042e467
mov ecx, dword [ebp - 0x1c]
push 5
call fcn.0042e4b9
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 0x40b52e
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x20]
jl 0x40b523
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x40b523
push dword [ebp - 0x34]
call fcn.00407700
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 0x40b516
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 0x40b52e
push dword [esi - 0xc]
mov ecx, edx
push esi
call fcn.00408780
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 0x40b591
cmp dword [esi + 0xc], 0
jl 0x40b588
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x40b585
push edx
call fcn.00407700
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 0x40b578
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 0x40b591
mov ecx, dword [ebp - 0x2c]
push dword [eax - 0xc]
push eax
call fcn.00408780
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 0x40b5f4
cmp dword [esi + 0xc], 0
jl 0x40b5eb
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x40b5e8
push edx
call fcn.00407700
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 0x40b5db
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 0x40b5f4
mov ecx, dword [ebp - 0x2c]
push dword [eax - 0xc]
push eax
call fcn.00408780
mov eax, dword [ebp - 0x14]
push 0
push 0
dec eax
push eax
push 0x40ee60
push 0x2800
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [ebp - 0x40]
or esi, 0xffffffff
mov byte [ebp - 4], 0x43
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b62d
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], 0x42
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b648
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], 0x41
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b663
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], 0x3b
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b67e
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.0062e676
add esp, 4
cmp dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x14]
jl 0x40b1f0
push 0
push 0
push 0
push 0
push 0
push dword [ebx + 0xec]
lea ecx, [ebx + 0x268]
call fcn.0043790f
push 0
lea ecx, [ebx + 0x570]
call fcn.0042e4b9
mov ecx, ebx
call fcn.004110f0
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], esi
dec esi
test esi, esi
jg 0x40b6ec
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
push 0x80004005
call fcn.004020e0
push 0x80004005
call fcn.004020e0
int3