Function at 0x49fb40
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x67d78b
mov eax, dword fs:[0]
push eax
sub esp, 0x9e8
mov eax, dword [0x70df38]
xor eax, esp
mov dword [esp + 0x9b0], eax
push ebx
push esi
push edi
mov eax, dword [0x70df38]
xor eax, esp
push eax
lea eax, [esp + 0x9f8]
mov dword fs:[0], eax
mov esi, ecx
xor edi, edi
cmp dword [esi + 0x5c], edi
mov dword [esp + 0x30], esi
je 0x4a025b
lea ecx, [esi + 0x30]
call fcn.004c75d0
fcomp qword [0x6fa138]
fnstsw ax
test ah, 0x41
jne 0x49fbad
mov ecx, esi
call fcn.0049eab0
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
lea ecx, [esi + 0x18]
mov dword [esp + 0xa00], edi
call fcn.00477c80
mov esi, eax
cmp esi, edi
mov dword [esp + 0x40], esi
je 0x4a0241
cmp byte [esi + 0x1c], 0
lea ebx, [esi + 0x30]
je 0x49fc7e
lea ecx, [esi + 0x20]
call fcn.004c75b0
fcomp dword [0x693ce4]
fnstsw ax
test ah, 0x41
jne 0x49fc7e
mov ecx, dword [esi + 8]
push 0x64
lea eax, [esp + 0x158]
push eax
call fcn.00483190
mov ecx, eax
call fcn.004773a0
lea ecx, [esp + 0x154]
push ecx
push str.Request_to__s_has_been_pending_for_too_long._Allocated_bandwidth_inconsistent_with_request_rate.
push str.bdSocket_nat
push str.dw_warn_
push 0x19b
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0xe0]
call fcn.00475a90
push eax
call fcn.00475c30
mov eax, dword [esi + 8]
add esp, 0xc
test eax, eax
mov ecx, esp
mov dword [esp + 0x30], esp
mov dword [ecx], eax
je 0x49fc63
add dword [eax + 4], 1
mov ecx, esi
call fcn.0049e3a0
mov edx, dword [esp + 0x38]
push ebx
push edx
lea ecx, [esp + 0x3c]
call fcn.0049e9d0
jmp 0x4a01f4
lea edi, [esi + 0x18]
mov ecx, edi
call fcn.004c88e0
fcomp qword [0x6f9f78]
fnstsw ax
test ah, 0x41
jne 0x4a01f4
mov ecx, edi
call fcn.004c88e0
sub esp, 8
fstp qword [esp]
push str._f_seconds_since_last_send__retrying..
push str.bdSocket_nat
push str.dw_info_
push 0x1a2
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0x84]
call fcn.00475a90
push eax
call fcn.00475c30
mov eax, dword [esi]
mov edi, 1
add esp, 0x14
sub eax, edi
je 0x49ffc6
sub eax, edi
je 0x49fe6d
sub eax, edi
je 0x49fd45
mov al, byte [0x77ffcc]
lea esp, [esp]
test al, al
jne 0x49fd00
push str.Invalid_state.
push 0x6f8dcb
push str.dw_err
push 0x203
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0x15c]
call fcn.00475a90
push eax
call fcn.00475c30
mov al, byte [0x77ffcc]
add esp, 0xc
test al, al
jne 0x49fd02
jmp 0x4a01f4
cmp dword [esi + 0x14], 3
jbe 0x49fdcd
push str.NAT_traversal_failed.__Stage_3_failed_
push str.bdSocket_nat
push str.dw_info_
push 0x1ee
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0x9c]
call fcn.00475a90
push eax
call fcn.00475c30
add esp, 0xc
push 0x400
lea eax, [esp + 0x1c0]
push eax
mov eax, dword [esi + 8]
test eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
mov dword [ecx], eax
je 0x49fda2
add dword [eax + 4], edi
call fcn.00475790
add esp, 0xc
lea ecx, [esp + 0x1bc]
push ecx
push str.bdSocket_nat
push str.dw_info_
push 0x1f1
lea ecx, [esp + 0x114]
jmp 0x4a0126
push str.Request_timed_out._Retrying.__stage_3_
push str.bdSocket_nat
push str.dw_info_
push 0x1f8
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0xbc]
call fcn.00475a90
push eax
call fcn.00475c30
add esp, 0xc
push 0x400
lea eax, [esp + 0x5c0]
push eax
mov eax, dword [esi + 8]
test eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
mov dword [ecx], eax
je 0x49fe20
add dword [eax + 4], edi
call fcn.00475790
add esp, 0xc
lea ecx, [esp + 0x5bc]
push ecx
push str.bdSocket_nat
push str.dw_info_
push 0x1fb
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0x14c]
call fcn.00475a90
push eax
call fcn.00475c30
mov ecx, dword [esp + 0x3c]
add esp, 0xc
push esi
call fcn.0049fa50
jmp 0x4a01f4
mov eax, dword [esi + 0x14]
cmp eax, 4
lea edx, [eax + 1]
mov dword [esi + 0x14], edx
jbe 0x49ff29
push str.Stage_2_failed._Starting_stage_3.
push str.bdSocket_nat
push str.dw_info_
push 0x1d3
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0x5c]
call fcn.00475a90
push eax
call fcn.00475c30
add esp, 0xc
push 0x400
lea eax, [esp + 0x1c0]
push eax
mov eax, dword [esi + 8]
test eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
mov dword [ecx], eax
je 0x49fecf
add dword [eax + 4], edi
call fcn.00475790
add esp, 0xc
lea ecx, [esp + 0x1bc]
push ecx
push str.bdSocket_nat
push str.dw_info_
push 0x1d6
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0x13c]
call fcn.00475a90
push eax
call fcn.00475c30
mov ecx, dword [esp + 0x3c]
add esp, 0xc
push esi
mov dword [esi + 0x14], 0
mov dword [esi], 3
call fcn.0049fa50
jmp 0x4a01f4
push str.Request_timed_out._Retrying.__stage_2_
push str.bdSocket_nat
push str.dw_info_
push 0x1df
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0xfc]
call fcn.00475a90
push eax
call fcn.00475c30
mov eax, dword [esi + 8]
add esp, 0xc
test eax, eax
push 0x400
lea edx, [esp + 0x1c0]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
mov dword [ecx], eax
je 0x49ff7c
add dword [eax + 4], edi
call fcn.00475790
add esp, 0xc
lea eax, [esp + 0x1bc]
push eax
push str.bdSocket_nat
push str.dw_info_
push 0x1e2
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0x6c]
call fcn.00475a90
push eax
call fcn.00475c30
mov ecx, dword [esp + 0x3c]
add esp, 0xc
push esi
call fcn.0049ec70
jmp 0x4a01f4
cmp dword [esi + 0x14], 3
jbe 0x4a0159
mov ecx, dword [esi + 8]
call fcn.00483190
mov ecx, eax
call fcn.00477200
mov ecx, eax
call fcn.004763a0
test al, al
je 0x4a00ad
mov edi, dword [esp + 0x30]
cmp dword [edi + 0x10], 0
je 0x4a00a8
push str.Stage_1_failed._Starting_stage_2.
push str.bdSocket_nat
push str.dw_info_
push 0x1ae
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0x8c]
call fcn.00475a90
push eax
call fcn.00475c30
mov eax, dword [esi + 8]
add esp, 0xc
test eax, eax
lea ecx, [esp + 0x1bc]
push 0x400
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
mov dword [ecx], eax
je 0x4a0050
add dword [eax + 4], 1
call fcn.00475790
add esp, 0xc
lea edx, [esp + 0x1bc]
push edx
push str.bdSocket_nat
push str.dw_info_
push 0x1b1
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0xac]
call fcn.00475a90
push eax
call fcn.00475c30
add esp, 0xc
push esi
mov ecx, edi
mov dword [esi + 0x14], 0
mov dword [esi], 2
call fcn.0049ec70
jmp 0x4a01f4
mov edi, 1
push str.Address_lookup_failed.__Stage_1_failed._No_public_address_so_finished._
push str.bdSocket_nat
push str.dw_warn_
push 0x1bb
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0xcc]
call fcn.00475a90
push eax
call fcn.00475c30
add esp, 0xc
push 0x400
lea eax, [esp + 0x1c0]
push eax
mov eax, dword [esi + 8]
test eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
mov dword [ecx], eax
je 0x4a0100
add dword [eax + 4], edi
call fcn.00475790
add esp, 0xc
lea ecx, [esp + 0x1bc]
push ecx
push str.bdSocket_nat
push str.dw_info_
push 0x1be
lea ecx, [esp + 0xe4]
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
call fcn.00475a90
push eax
call fcn.00475c30
mov eax, dword [esi + 8]
add esp, 8
test eax, eax
mov ecx, esp
mov dword [esp + 0x30], esp
mov dword [ecx], eax
je 0x49fc63
add dword [eax + 4], edi
jmp 0x49fc63
push str.Request_timed_out._Retrying.__stage_1_
push str.bdSocket_nat
push str.dw_info_
push 0x1c6
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0x10c]
call fcn.00475a90
push eax
call fcn.00475c30
add esp, 0xc
push 0x400
lea eax, [esp + 0x1c0]
push eax
mov eax, dword [esi + 8]
test eax, eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
mov dword [ecx], eax
je 0x4a01ac
add dword [eax + 4], edi
call fcn.00475790
add esp, 0xc
lea ecx, [esp + 0x1bc]
push ecx
push str.bdSocket_nat
push str.dw_info_
push 0x1c9
push str.void___thiscall_bdNATTravClient::pump_void_
push str.._bdNAT_bdNATTravClient.cpp
lea ecx, [esp + 0x12c]
call fcn.00475a90
push eax
call fcn.00475c30
mov ecx, dword [esp + 0x3c]
add esp, 0xc
push esi
call fcn.0049f5f0
mov edi, dword [esp + 0x30]
lea edx, [esp + 0x40]
add edi, 0x18
push edx
mov ecx, edi
call fcn.0049e7b0
mov esi, dword [esp + 0x40]
test esi, esi
jne 0x49fbd6
cmp dword [esp + 0x3c], esi
je 0x4a0241
lea esp, [esp]
lea ecx, [esp + 0x34]
call fcn.0049f1c0
push eax
mov ecx, edi
call fcn.0049f390
lea ecx, [esp + 0x34]
call fcn.0049f420
cmp dword [esp + 0x3c], 0
jne 0x4a0220
lea ecx, [esp + 0x34]
mov dword [esp + 0xa00], 0xffffffff
call fcn.00487bf0
mov esi, dword [esp + 0x30]
xor edi, edi
cmp dword [esi + 0x18], edi
jne 0x4a0267
mov dword [esi + 0x5c], 1
mov ecx, dword [esp + 0x9f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x9b0]
xor ecx, esp
call fcn.004ad31a
mov esp, ebp
pop ebp
ret