Function at 0x446d10
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x4791e4
mov eax, dword fs:[0]
push eax
mov eax, 0x213c
call fcn.00472150
mov eax, dword [0x49eef8]
xor eax, esp
mov dword [esp + 0x2138], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49eef8]
xor eax, esp
push eax
lea eax, [esp + 0x2150]
mov dword fs:[0], eax
mov eax, dword [esp + 0x2168]
mov esi, dword [esp + 0x2164]
mov dword [esp + 0x30], eax
push 0x49f214
mov dword [esp + 0x215c], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x2160]
mov byte [esp + 0x2158], 1
test eax, eax
jne 0x446d94
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 0x1388
push eax
call edx
mov eax, dword [0x49f474]
mov edx, dword [eax + 0xc]
mov ecx, 0x49f474
call edx
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [0x49f474]
mov edx, dword [eax + 0xc]
mov ecx, 0x49f474
mov byte [esp + 0x2158], 2
call edx
add eax, 0x10
mov dword [esp + 0x24], eax
mov eax, dword [0x49f474]
mov edx, dword [eax + 0xc]
mov ecx, 0x49f474
mov byte [esp + 0x2158], 3
call edx
lea ebx, [eax + 0x10]
mov dword [esp + 0x34], ebx
mov eax, dword [0x49f474]
mov edx, dword [eax + 0xc]
mov ecx, 0x49f474
mov byte [esp + 0x2158], 4
call edx
add eax, 0x10
mov dword [esp + 0x28], eax
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x64
mov byte [esp + 0x215c], 5
mov dword [esp + 0x3c], 0x421be0
mov dword [esp + 0x40], 0x421cc0
mov dword [esp + 0x44], 0x421d50
call ebp
push 5
push 0x4840ec
lea ecx, [esp + 0x30]
call fcn.00402b30
mov edi, dword [esp + 0x28]
mov eax, dword [edi - 0xc]
push 0x1388
push eax
mov eax, dword [esp + 0x2168]
push edi
push eax
call fcn.00421a70
test eax, eax
jl 0x446ea0
push 3
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x2168]
push 0x1388
lea edx, [esp + 0x38]
push edx
push 0x2000
lea eax, [esp + 0x160]
push eax
push ecx
call fcn.00421b20
add esp, 0x1c
test eax, eax
je 0x447251
cmp eax, 1
jne 0x446f58
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x14c]
push str.ERROR:
push eax
mov byte [esp + edx + 0x154], 0
call dword [sym.imp.MSVCR90.dll_strstr]
add esp, 8
push eax
lea ecx, [esp + 0x20]
call fcn.00403450
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x24]
mov byte [esp + 0x2160], 6
call fcn.00428c40
mov ecx, eax
call fcn.00426bf0
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
cmp eax, 0xa
je 0x446f7d
mov edx, dword [esp + 0x1c]
push edx
call fcn.00428020
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 4
mov byte [esp + 0x2158], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x446f3f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x44717e
push 0x80004003
call fcn.004634f0
cmp eax, 2
je 0x446f3f
cmp eax, 0x8007048f
jne 0x446f3f
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x4470ab
push 0x80004003
call fcn.004634f0
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x446f92
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47ddf8
call fcn.00403100
push 1
push 0x482c88
call fcn.00403100
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2168], 5
add esp, 0x10
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x446fe0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 4
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447004
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 3
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447028
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 2
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447050
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 1
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447078
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f214
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x4470a1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 6
jmp 0x447fad
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 4
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4470d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 3
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4470fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 2
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447123
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 1
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44714b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f214
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x447174
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x447fad
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [edi - 0x10]
mov byte [esp + 0x2158], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4471aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0x2158], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4471ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4471f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44721e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f214
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x447247
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 5
jmp 0x447fad
push 0x64
call ebp
push 7
push str.ATGMM_r
lea ecx, [esp + 0x30]
call fcn.00402b30
mov edi, dword [esp + 0x28]
mov eax, dword [edi - 0xc]
push 0x1388
push eax
mov eax, dword [esp + 0x2168]
push edi
push eax
call fcn.00421a70
push 3
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x2168]
push 0x2710
lea edx, [esp + 0x38]
push edx
push 0x2000
lea eax, [esp + 0x160]
push eax
push ecx
call fcn.00421b20
add esp, 0x1c
cmp eax, 2
jne 0x44730c
push 8
push str.ATCGMM_r
lea ecx, [esp + 0x30]
call fcn.00402b30
mov edi, dword [esp + 0x28]
mov eax, dword [edi - 0xc]
mov edx, dword [esp + 0x2160]
push 0x1388
push eax
push edi
push edx
call fcn.00421a70
push 3
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x2168]
push 0x2710
lea ecx, [esp + 0x38]
push ecx
push 0x2000
lea edx, [esp + 0x160]
push edx
push eax
call fcn.00421b20
add esp, 0x1c
test eax, eax
jne 0x447d0b
mov eax, dword [esp + 0x2c]
mov ebx, dword [sym.imp.MSVCR90.dll_free]
test eax, eax
je 0x44741f
lea ecx, [esp + 0x4c]
push 3
lea edx, [esp + 0x150]
mov dword [esp + 0x4c], ecx
push edx
lea ecx, [esp + 0x50]
mov byte [esp + eax + 0x154], 0
call fcn.00401930
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 8
test edx, edx
jne 0x44735d
xor eax, eax
jmp 0x447371
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x447362
sub eax, edi
sar eax, 1
push eax
push edx
mov ecx, esi
call fcn.00402840
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, ecx
je 0x447394
push eax
call ebx
add esp, 4
push 0x47dd68
push 0x484c08
mov ecx, esi
call fcn.00407a30
push 0x47dd68
push 0x47e360
mov ecx, esi
call fcn.00407a30
push 0x47dd68
push str.ATGMM
mov ecx, esi
call fcn.00407a30
push 0x47dd68
push str.GMM:
mov ecx, esi
call fcn.00407a30
push 0x22
push 0x22
mov ecx, esi
call fcn.0040e840
mov ecx, eax
call fcn.00426ac0
push 0x484d28
push 0x484d28
mov ecx, esi
call fcn.00407cc0
mov ecx, eax
call fcn.00407d40
push 2
push 0
mov ecx, esi
call fcn.00445080
mov edx, dword [esi]
mov eax, dword [edx - 0xc]
push 1
dec eax
push eax
mov ecx, esi
call fcn.00445080
jmp 0x44742d
push 0
push 0x47dd68
mov ecx, esi
call fcn.00402840
push 7
push str.ATGSN_r
lea ecx, [esp + 0x30]
call fcn.00402b30
mov edi, dword [esp + 0x28]
mov eax, dword [edi - 0xc]
push 0x1388
push eax
mov eax, dword [esp + 0x2168]
push edi
push eax
call fcn.00421a70
push 3
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x2168]
push 0x2710
lea edx, [esp + 0x38]
push edx
push 0x2000
lea eax, [esp + 0x160]
push eax
push ecx
call fcn.00421b20
add esp, 0x1c
cmp eax, 2
jne 0x4474e4
push 8
push str.ATCGSN_r
lea ecx, [esp + 0x30]
call fcn.00402b30
mov edi, dword [esp + 0x28]
mov eax, dword [edi - 0xc]
mov edx, dword [esp + 0x2160]
push 0x1388
push eax
push edi
push edx
call fcn.00421a70
push 3
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x2168]
push 0x2710
lea ecx, [esp + 0x38]
push ecx
push 0x2000
lea edx, [esp + 0x160]
push edx
push eax
call fcn.00421b20
add esp, 0x1c
test eax, eax
je 0x4476af
cmp eax, 1
jne 0x44765b
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x14c]
push str.ERROR:
push edx
mov byte [esp + ecx + 0x154], 0
call dword [sym.imp.MSVCR90.dll_strstr]
add esp, 8
push eax
lea ecx, [esp + 0x20]
call fcn.00403450
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x24]
mov byte [esp + 0x2160], 9
call fcn.00428c40
mov ecx, eax
call fcn.00426bf0
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
cmp eax, 0xa
mov eax, dword [esp + 0x2160]
jne 0x4475ed
test eax, eax
jne 0x44756f
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47ddf8
call fcn.00403100
push 3
push 0x482c88
call fcn.00403100
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x2158], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4475bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x2158], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4475e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
jmp 0x447007
test eax, eax
jne 0x4475fb
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44762b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x2158], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44764f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
jmp 0x447e1b
cmp eax, 0x8007048f
jne 0x4476af
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x447677
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [edi - 0x10]
mov byte [esp + 0x2158], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4476a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
jmp 0x4470da
mov eax, dword [esp + 0x2c]
test eax, eax
jbe 0x4477bb
push 3
lea ecx, [esp + 0x150]
mov byte [esp + eax + 0x150], 0
lea eax, [esp + 0x50]
push ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x50], eax
call fcn.00401930
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 0xa
test edx, edx
jne 0x4476f2
xor eax, eax
jmp 0x447706
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4476f7
sub eax, edi
sar eax, 1
mov edi, dword [esp + 0x30]
push eax
push edx
mov ecx, edi
call fcn.00402840
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, edx
je 0x44772d
push eax
call ebx
add esp, 4
lea eax, [esp + 0x1c]
push eax
push 0x484c08
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
mov dword [esp + 0x28], 0
call fcn.0040b1a0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44776b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x1c]
push ecx
push 0x484c08
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.0040b1a0
push eax
mov ecx, edi
mov byte [esp + 0x215c], 0xb
call fcn.004043f0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4477cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4477cb
mov ecx, dword [esp + 0x30]
push 1
push 0x47e360
call fcn.00402840
lea ecx, [esp + 0x20]
push ecx
push 0x47fad0
lea edx, [esp + 0x24]
push edx
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.0040b1a0
push eax
mov ecx, esi
mov byte [esp + 0x215c], 0xc
call fcn.004043f0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447821
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x64
call ebp
push 9
push str.ATPBYN__r
lea ecx, [esp + 0x30]
call fcn.00402b30
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx - 0xc]
mov ecx, dword [esp + 0x2160]
push 0x1388
push eax
push ebx
push ecx
call fcn.00421a70
push 3
lea edx, [esp + 0x3c]
push edx
mov edx, dword [esp + 0x2168]
push 0x2710
lea eax, [esp + 0x38]
push eax
push 0x2000
lea ecx, [esp + 0x160]
push ecx
push edx
call fcn.00421b20
add esp, 0x1c
cmp eax, 0x8007048f
jne 0x4478aa
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x44789a
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [ebx - 0x10]
jmp 0x447682
mov eax, dword [esp + 0x2c]
mov ebp, dword [sym.imp.MSVCR90.dll_wcsstr]
test eax, eax
jbe 0x447a10
push 3
lea ecx, [esp + 0x150]
mov byte [esp + eax + 0x150], 0
lea eax, [esp + 0x50]
push ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x50], eax
call fcn.00401930
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 0xd
test edx, edx
jne 0x4478f3
xor eax, eax
jmp 0x44790f
mov eax, edx
lea esi, [eax + 2]
jmp 0x447900
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x447900
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00402840
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, edx
je 0x447938
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
lea eax, [esp + 0x1c]
push eax
push 0x484c08
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], 0
call fcn.0040b1a0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x447978
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x1c]
push ecx
push 0x484c08
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x24]
call fcn.0040b1a0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x215c], 0xe
call fcn.004043f0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4479ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
jl 0x447a14
push str.PBYN
push ecx
call ebp
add esp, 8
test eax, eax
je 0x447a10
mov ecx, dword [esp + 0x18]
sub eax, ecx
sar eax, 1
js 0x447a14
push 0x47dd68
push str.PBYN:
lea ecx, [esp + 0x20]
call fcn.00407a30
lea ecx, [esp + 0x18]
call fcn.004030a0
mov ecx, eax
call fcn.004029a0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x447a39
jl 0x447a4d
push str.ERROR
push ecx
call ebp
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x447a4d
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
jle 0x447a4d
push 1
push 0x47e360
lea ecx, [esp + 0x20]
call fcn.00402840
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x447b07
jl 0x447a78
push str.ERROR
push ecx
call ebp
add esp, 8
test eax, eax
je 0x447a78
sub eax, dword [esp + 0x18]
sar eax, 1
cmp eax, 0xffffffff
jne 0x447b07
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.004043f0
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x447a9b
push 0x80004003
call fcn.004634f0
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x20]
mov edi, eax
call fcn.00406700
mov esi, eax
push str.PhoneNumber
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0xf
call fcn.00406670
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x10
test ecx, ecx
je 0x447ad5
mov ecx, dword [ecx]
jmp 0x447ad7
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x447ae1
mov eax, dword [eax]
jmp 0x447ae3
xor eax, eax
mov edx, dword [edi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push edi
call eax
lea ecx, [esp + 0x20]
call fcn.00407820
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2158], 5
call fcn.00407820
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x447ba3
push str.ERROR
push eax
call ebp
add esp, 8
test eax, eax
je 0x447ba3
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
jle 0x447ba3
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x447b44
push 0x80004003
call fcn.004634f0
push str.TRUE
lea ecx, [esp + 0x34]
call fcn.00406670
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x11
call fcn.00406670
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x12
test ecx, ecx
je 0x447b7c
mov ecx, dword [ecx]
jmp 0x447b7e
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x447b88
mov eax, dword [eax]
jmp 0x447b8a
xor eax, eax
mov edx, dword [edi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push edi
call eax
lea ecx, [esp + 0x20]
call fcn.00407820
lea ecx, [esp + 0x30]
jmp 0x447c15
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x447bb8
push 0x80004003
call fcn.004634f0
push 0x484e24
lea ecx, [esp + 0x48]
call fcn.00406670
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x13
call fcn.00406670
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x14
test ecx, ecx
je 0x447bf0
mov ecx, dword [ecx]
jmp 0x447bf2
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x447bfc
mov eax, dword [eax]
jmp 0x447bfe
xor eax, eax
mov edx, dword [edi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push edi
call eax
lea ecx, [esp + 0x20]
call fcn.00407820
lea ecx, [esp + 0x44]
mov byte [esp + 0x2158], 5
call fcn.00407820
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x447c37
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [ebx - 0x10]
mov byte [esp + 0x2158], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447c63
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447c8b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447cb3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447cdb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f214
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x447d04
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x447fad
cmp eax, 1
jne 0x447ebf
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x14c]
push str.ERROR:
push ecx
mov byte [esp + eax + 0x154], 0
call dword [sym.imp.MSVCR90.dll_strstr]
add esp, 8
push eax
lea ecx, [esp + 0x34]
call fcn.00403450
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x38]
mov byte [esp + 0x2160], 7
call fcn.00428c40
mov ecx, eax
call fcn.00426bf0
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
cmp eax, 0xa
mov eax, dword [esp + 0x2160]
jne 0x447db6
test eax, eax
jne 0x447d8a
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47ddf8
call fcn.00403100
push 2
push 0x482c88
call fcn.00403100
mov eax, dword [esp + 0x40]
jmp 0x446fb9
test eax, eax
jne 0x447dc4
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447df4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x2158], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447e18
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 3
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447e3c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 2
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447e64
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2158], 1
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447e8c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f214
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x447eb5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 2
jmp 0x447fad
cmp eax, 0x8007048f
mov eax, dword [esp + 0x2160]
je 0x446f6b
test eax, eax
jne 0x447edf
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [edi - 0x10]
mov byte [esp + 0x2158], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447f0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0x2158], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447f2f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447f57
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x2158], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447f7f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f214
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x447fa8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0xa
mov ecx, dword [esp + 0x2150]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2138]
xor ecx, esp
call fcn.00472076
add esp, 0x2148
ret