Function at 0x438bd0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d5f42
mov eax, dword fs:[0]
push eax
sub esp, 0x170
mov eax, dword [0x5254e0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x40], ecx
xor ebx, ebx
push eax
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x3c], ebx
call fcn.00434c50
mov dword [ebp - 4], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov byte [ebp - 4], 2
mov edi, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x90]
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x1e
jbe 0x438c7c
lea eax, [esi + 0xd20]
cmp eax, edi
je 0x438c7c
push edi
push eax
call fcn.00437c70
mov edi, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x90]
add esp, 8
mov dword [ebp - 0x34], esi
cmp esi, edi
je 0x438df8
mov esi, dword [ebp - 0x34]
call fcn.004370e0
cmp eax, 0xffffffff
je 0x438de1
push 0xf0
call fcn.004a9f06
mov edi, eax
add esp, 4
mov dword [ebp - 0x68], edi
mov byte [ebp - 4], 3
test edi, edi
je 0x438d07
mov ecx, esi
push ecx
lea edx, [ebp - 0x174]
push edx
call fcn.00433e10
mov eax, dword [ebp - 0x40]
mov esi, dword [eax]
mov ebx, dword [eax + 4]
lea eax, [ebp - 0x174]
push eax
push edi
mov byte [ebp - 4], 4
call fcn.00433e10
mov dword [edi + 0xe8], esi
lea esi, [ebp - 0x174]
mov byte [edi + 0xe0], 0
mov dword [edi + 0xe4], 0xffffffff
mov dword [edi + 0xec], ebx
call fcn.00415110
mov ebx, dword [ebp - 0x74]
jmp 0x438d09
xor edi, edi
push 0
push 0
push edi
push 0x438a40
push 0
mov byte [ebp - 4], 2
push 0
mov dword [ebp - 0x38], edi
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov esi, eax
mov dword [ebp - 0x54], esi
test esi, esi
je 0x438de1
lea ecx, [ebp - 0x54]
cmp ecx, ebx
jae 0x438d65
mov edx, ecx
cmp dword [ebp - 0x78], edx
ja 0x438d65
mov esi, ecx
sub esi, dword [ebp - 0x78]
sar esi, 2
cmp ebx, dword [ebp - 0x70]
jne 0x438d57
lea eax, [ebp - 0x78]
call fcn.004395a0
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0x438d7b
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax + esi*4]
mov dword [ebx], ecx
jmp 0x438d7b
cmp ebx, dword [ebp - 0x70]
jne 0x438d75
lea eax, [ebp - 0x78]
call fcn.004395a0
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0x438d7b
mov dword [ebx], esi
mov eax, dword [ebp - 0x4c]
add ebx, 4
lea edx, [ebp - 0x38]
mov dword [ebp - 0x74], ebx
cmp edx, eax
jae 0x438db8
mov ecx, edx
cmp dword [ebp - 0x50], ecx
ja 0x438db8
mov edi, edx
sub edi, dword [ebp - 0x50]
sar edi, 2
cmp eax, dword [ebp - 0x48]
jne 0x438daa
lea eax, [ebp - 0x50]
call fcn.004395a0
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x438dce
mov edx, dword [ebp - 0x50]
mov ecx, dword [edx + edi*4]
mov dword [eax], ecx
jmp 0x438dce
cmp eax, dword [ebp - 0x48]
jne 0x438dc8
lea eax, [ebp - 0x50]
call fcn.004395a0
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x438dce
mov dword [eax], edi
mov edx, ebx
sub edx, dword [ebp - 0x78]
add eax, 4
sar edx, 2
mov dword [ebp - 0x4c], eax
cmp edx, 0x1e
jae 0x438df8
mov eax, dword [ebp - 0x34]
add eax, 0xe0
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x8c]
jne 0x438c87
mov esi, dword [ebp - 0x40]
xor edi, edi
lea ecx, [ecx]
push 0x64
call dword [sym.imp.KERNEL32.DLL_Sleep]
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax]
push 0
push edx
call eax
test eax, eax
jne 0x438e20
inc edi
cmp edi, 0x32
jl 0x438e00
mov ecx, esi
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 8
call eax
mov esi, dword [ebp - 0x78]
cmp esi, ebx
je 0x438e57
mov edi, dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea ebx, [ebx]
mov ecx, dword [esi]
push 0xffffffffffffffff
push ecx
call edi
mov edx, dword [esi]
push edx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
add esi, 4
cmp esi, ebx
jne 0x438e40
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x34], esi
cmp esi, dword [ebp - 0x4c]
je 0x439286
lea eax, [ebp - 0xdc]
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x80], ecx
jmp 0x438e84
mov esi, dword [ebp - 0x34]
mov eax, dword [esi]
cmp byte [eax + 0xe0], 0
mov ebx, 0x4fee9c
jne 0x438e99
mov ebx, 0x4feea4
lea edi, [ebp - 0x30]
call fcn.00433d20
mov edi, 8
mov byte [ebp - 4], 5
cmp dword [eax + 0x14], edi
jb 0x438eb1
mov eax, dword [eax]
mov edx, dword [esi]
mov ecx, dword [edx + 0xe4]
push ecx
push ebx
push eax
push str.server:__s__responded:__s__response_time:__d
push 1
push 1
call fcn.00432650
add esp, 0x18
cmp dword [ebp - 0x1c], edi
jb 0x438ede
mov edx, dword [ebp - 0x30]
push edx
call fcn.004a9dd8
add esp, 4
mov eax, dword [esi]
cmp byte [eax + 0xe0], 0
je 0x438ef7
mov eax, dword [eax + 0xe4]
cmp eax, dword [ebp - 0x40]
jae 0x438ef7
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x12c], 0x4e4be8
mov byte [ebp - 4], 6
or dword [ebp - 0x3c], 1
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0xdc], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
call fcn.00401780
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0x128]
push ecx
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], 0
call fcn.00401740
push eax
mov dword [ebp - 4], edi
call fcn.0040b6e0
mov byte [ebp - 4], 7
mov edi, dword [ebp - 0x38]
add esp, 4
mov ebx, eax
test edi, edi
je 0x438f98
push 0
lea ecx, [ebp - 0x54]
call fcn.004983a4
mov eax, dword [edi + 4]
test eax, eax
je 0x438f76
cmp eax, 0xffffffff
jae 0x438f76
dec eax
mov dword [edi + 4], eax
mov esi, dword [edi + 4]
neg esi
sbb esi, esi
lea ecx, [ebp - 0x54]
not esi
call fcn.004983cc
and esi, edi
je 0x438f95
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov esi, dword [ebp - 0x34]
mov edx, dword [ebx]
mov eax, dword [edx + 0x18]
push 0x20
mov ecx, ebx
call eax
cmp dword [ebp - 0xa4], 0
mov byte [ebp - 0x9c], al
jne 0x438fc9
mov eax, dword [ebp - 0xd0]
or eax, 4
push 0
push eax
lea ecx, [ebp - 0xdc]
call fcn.00401640
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x12c]
mov edx, dword [ecx + 4]
lea ecx, [ebp - 0x128]
mov dword [ebp + edx - method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
call fcn.0040a560
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 4
push 0x4e4b20
push ecx
mov byte [ebp - 4], 0xb
mov eax, dword [esi]
push eax
push ecx
lea ecx, [ebp - 0x12c]
push 0x4fef0c
push ecx
call fcn.0040b990
add esp, 0xc
push eax
call fcn.0040bc40
add esp, 0xc
push eax
call fcn.0040b990
mov edx, dword [esi]
add esp, 8
cmp byte [edx + 0xe0], 0
mov eax, 0x4e1060
jne 0x439056
mov eax, 0x4e1058
push 0x4e4b20
push ecx
push eax
push ecx
lea eax, [ebp - 0x12c]
push str.responded:
push eax
call fcn.0040b990
add esp, 0xc
push eax
call fcn.0040b990
add esp, 0xc
push eax
call fcn.0040b990
add esp, 8
push 0x4e4b18
push ecx
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
mov eax, dword [edx + 0xe4]
push eax
push ecx
lea ecx, [ebp - 0x12c]
push str.responseTime:
push ecx
call fcn.0040b990
add esp, 0xc
mov ecx, eax
call fcn.00423850
add esp, 4
push eax
call fcn.0040b990
add esp, 8
lea esi, [ebp - 0x30]
lea ecx, [ebp - 0x12c]
call fcn.00407a80
mov edi, 0x10
mov byte [ebp - 4], 0xc
cmp dword [eax + 0x14], edi
jb 0x4390dc
mov eax, dword [eax]
push eax
lea edx, [ebp - 0x60]
push edx
call fcn.004887a6
push str.ServerResponseCheck
mov ecx, eax
mov byte [ebp - 4], 0xd
call fcn.00424c30
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x5c]
add esp, 0xc
test eax, eax
je 0x439130
mov esi, eax
add eax, 4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x439130
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x439130
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
cmp dword [ebp - 0x1c], edi
jb 0x439141
mov eax, dword [ebp - 0x30]
push eax
call fcn.004a9dd8
add esp, 4
mov ecx, dword [ebp - 0x12c]
mov edx, dword [ecx + 4]
mov dword [ebp + edx - method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
test byte [ebp - 0xe8], 1
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
je 0x439179
mov eax, dword [ebp - 0x118]
mov eax, dword [eax]
push eax
call fcn.004a9dd8
add esp, 4
mov ecx, dword [ebp - 0x118]
mov dword [ecx], 0
mov edx, dword [ebp - 0x108]
mov dword [edx], 0
mov eax, dword [ebp - 0xf8]
mov dword [eax], 0
mov ecx, dword [ebp - 0x114]
mov dword [ecx], 0
mov edx, dword [ebp - 0x104]
mov dword [edx], 0
mov eax, dword [ebp - 0xf4]
mov dword [eax], 0
and dword [ebp - 0xe8], 0xfffffffe
mov dword [ebp - 0xec], 0
mov dword [ebp - method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0xf0]
mov ebx, eax
test eax, eax
je 0x439234
mov edi, dword [eax]
test edi, edi
je 0x43922b
push 0
lea ecx, [ebp - 0x68]
call fcn.004983a4
mov eax, dword [edi + 4]
test eax, eax
je 0x43920c
cmp eax, 0xffffffff
jae 0x43920c
dec eax
mov dword [edi + 4], eax
mov esi, dword [edi + 4]
neg esi
sbb esi, esi
lea ecx, [ebp - 0x68]
not esi
call fcn.004983cc
and esi, edi
je 0x43922b
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
push ebx
call fcn.004a9dd8
add esp, 4
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0xe
call fcn.004983fd
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x12c]
mov edx, dword [ecx + 4]
lea eax, [ebp - 0xdc]
mov dword [ebp + edx - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
push eax
mov dword [ebp - 0xdc], vtable.std::ios_base.0
call fcn.00497fcd
mov eax, dword [ebp - 0x34]
add eax, 4
add esp, 4
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x4c]
jne 0x438e81
xor edi, edi
xor ebx, ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], edi
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x38], eax
cmp eax, dword [ebp - 0x4c]
je 0x439445
jmp 0x4392b0
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx]
cmp byte [eax + 0xe0], 0
mov dword [ebp - 0x3c], eax
je 0x439425
mov edx, dword [ebp - 0x40]
lea ecx, [edx + edx]
cmp dword [eax + 0xe4], ecx
ja 0x439425
cmp eax, edi
jae 0x439391
cmp ebx, eax
ja 0x439391
sub eax, ebx
mov ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp edi, dword [ebp - 0x5c]
jne 0x439371
mov ecx, edi
sub ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x1249248
ja 0x43955c
mov edx, dword [ebp - 0x5c]
sub edx, ebx
mov dword [ebp - 0x68], edx
mov eax, 0x92492493
imul edx
add edx, dword [ebp - 0x68]
inc ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jbe 0x439371
mov edx, eax
shr edx, 1
mov edi, 0x1249249
sub edi, edx
cmp edi, eax
jae 0x43935a
xor eax, eax
jmp 0x43935c
add eax, edx
cmp eax, ecx
jae 0x439362
mov eax, ecx
push eax
lea ecx, [ebp - 0x64]
call fcn.00437930
mov edi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x64]
imul esi, esi, 0xe0
add esi, ebx
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], edi
mov byte [ebp - 4], 0x11
test edi, edi
je 0x439418
push esi
jmp 0x439412
cmp edi, dword [ebp - 0x5c]
jne 0x439403
mov ecx, edi
sub ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x1249248
ja 0x43955c
mov esi, dword [ebp - 0x5c]
sub esi, ebx
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x439400
mov edx, eax
shr edx, 1
mov esi, 0x1249249
sub esi, edx
cmp esi, eax
jae 0x4393e9
xor eax, eax
jmp 0x4393eb
add eax, edx
cmp eax, ecx
jae 0x4393f1
mov eax, ecx
push eax
lea ecx, [ebp - 0x64]
call fcn.00437930
mov edi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], edi
mov byte [ebp - 4], 0x12
test edi, edi
je 0x439418
push eax
push edi
call fcn.00433e10
add edi, 0xe0
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x60], edi
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x38], eax
cmp eax, dword [ebp - 0x4c]
jne 0x4392b0
cmp ebx, edi
je 0x439445
push edi
push ebx
call fcn.00437c70
add esp, 8
mov ecx, edi
sub ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x43949d
mov ecx, dword [ebp - 0x94]
push 0
lea edx, [ebp - 0x64]
call fcn.00434450
mov edi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x64]
mov ecx, edi
sub ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push str.Preferred_servers:__d
push 1
push 0
call fcn.00432650
add esp, 0x10
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x3c], eax
cmp eax, dword [ebp - 0x4c]
je 0x4394ca
mov esi, dword [eax]
test esi, esi
je 0x4394bf
call fcn.00415110
push esi
call fcn.004a9dd8
mov eax, dword [ebp - 0x3c]
add esp, 4
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, dword [ebp - 0x4c]
jne 0x4394a8
test ebx, ebx
je 0x4394ec
mov esi, ebx
cmp ebx, edi
je 0x4394e3
call fcn.00415110
add esi, 0xe0
cmp esi, edi
jne 0x4394d4
push ebx
call fcn.004a9dd8
add esp, 4
cmp dword [ebp - 0x50], 0
je 0x4394fe
mov edx, dword [ebp - 0x50]
push edx
call fcn.004a9dd8
add esp, 4
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x43950e
push eax
call fcn.004a9dd8
add esp, 4
mov esi, dword [ebp - 0x90]
test esi, esi
je 0x439540
mov edi, dword [ebp - 0x8c]
cmp esi, edi
je 0x439537
call fcn.00415110
add esi, 0xe0
cmp esi, edi
jne 0x439522
mov esi, dword [ebp - 0x90]
push esi
call fcn.004a9dd8
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004a91d2
mov esp, ebp
pop ebp
ret
push str.vector_T__too_long
call fcn.004982b0
int3