Function at 0x446af0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x4790f4
mov eax, dword fs:[0]
push eax
mov eax, 0x213c
call fcn.00472040
mov eax, dword [0x49ef38]
xor eax, esp
mov dword [esp + 0x2138], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49ef38]
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 0x49f288
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 0x446b74
push 0x80004003
call fcn.004633e0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 0x1388
push eax
call edx
mov eax, dword [0x49f4e4]
mov edx, dword [eax + 0xc]
mov ecx, 0x49f4e4
call edx
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [0x49f4e4]
mov edx, dword [eax + 0xc]
mov ecx, 0x49f4e4
mov byte [esp + 0x2158], 2
call edx
add eax, 0x10
mov dword [esp + 0x24], eax
mov eax, dword [0x49f4e4]
mov edx, dword [eax + 0xc]
mov ecx, 0x49f4e4
mov byte [esp + 0x2158], 3
call edx
lea ebx, [eax + 0x10]
mov dword [esp + 0x34], ebx
mov eax, dword [0x49f4e4]
mov edx, dword [eax + 0xc]
mov ecx, 0x49f4e4
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], 0x4213d0
mov dword [esp + 0x40], 0x4214b0
mov dword [esp + 0x44], 0x421540
call ebp
push 5
push 0x483ed4
lea ecx, [esp + 0x30]
call fcn.00402bd0
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.00421260
test eax, eax
jl 0x446c80
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.00421310
add esp, 0x1c
test eax, eax
je 0x447031
cmp eax, 1
jne 0x446d38
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.004034f0
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x24]
mov byte [esp + 0x2160], 6
call fcn.004283c0
mov ecx, eax
call fcn.00426430
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
cmp eax, 0xa
je 0x446d5d
mov edx, dword [esp + 0x1c]
push edx
call fcn.00427430
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 0x446d1f
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 0x446f5e
push 0x80004003
call fcn.004633e0
cmp eax, 2
je 0x446d1f
cmp eax, 0x8007048f
jne 0x446d1f
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x446e8b
push 0x80004003
call fcn.004633e0
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x446d72
push 0x80004003
call fcn.004633e0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47ddf0
call fcn.004031a0
push 1
push 0x482a00
call fcn.004031a0
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 0x446dc0
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 0x446de4
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 0x446e08
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 0x446e30
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 0x446e58
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f288
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x446e81
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 6
jmp 0x447d8d
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 0x446eb7
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 0x446edb
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 0x446f03
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 0x446f2b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f288
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x446f54
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x447d8d
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 0x446f8a
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 0x446fae
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 0x446fd6
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 0x446ffe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f288
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x447027
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 5
jmp 0x447d8d
push 0x64
call ebp
push 7
push str.ATGMM_r
lea ecx, [esp + 0x30]
call fcn.00402bd0
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.00421260
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.00421310
add esp, 0x1c
cmp eax, 2
jne 0x4470ec
push 8
push str.ATCGMM_r
lea ecx, [esp + 0x30]
call fcn.00402bd0
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.00421260
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.00421310
add esp, 0x1c
test eax, eax
jne 0x447aeb
mov eax, dword [esp + 0x2c]
mov ebx, dword [sym.imp.MSVCR90.dll_free]
test eax, eax
je 0x4471ff
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.00401940
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 8
test edx, edx
jne 0x44713d
xor eax, eax
jmp 0x447151
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x447142
sub eax, edi
sar eax, 1
push eax
push edx
mov ecx, esi
call fcn.004028e0
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, ecx
je 0x447174
push eax
call ebx
add esp, 4
push 0x47dd5c
push 0x4849b0
mov ecx, esi
call fcn.00407b20
push 0x47dd5c
push 0x47e358
mov ecx, esi
call fcn.00407b20
push 0x47dd5c
push str.ATGMM
mov ecx, esi
call fcn.00407b20
push 0x47dd5c
push str.GMM:
mov ecx, esi
call fcn.00407b20
push 0x22
push 0x22
mov ecx, esi
call fcn.0040e960
mov ecx, eax
call fcn.00426300
push 0x484ad0
push 0x484ad0
mov ecx, esi
call fcn.00407db0
mov ecx, eax
call fcn.00407e30
push 2
push 0
mov ecx, esi
call fcn.00444e60
mov edx, dword [esi]
mov eax, dword [edx - 0xc]
push 1
dec eax
push eax
mov ecx, esi
call fcn.00444e60
jmp 0x44720d
push 0
push 0x47dd5c
mov ecx, esi
call fcn.004028e0
push 7
push str.ATGSN_r
lea ecx, [esp + 0x30]
call fcn.00402bd0
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.00421260
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.00421310
add esp, 0x1c
cmp eax, 2
jne 0x4472c4
push 8
push str.ATCGSN_r
lea ecx, [esp + 0x30]
call fcn.00402bd0
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.00421260
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.00421310
add esp, 0x1c
test eax, eax
je 0x44748f
cmp eax, 1
jne 0x44743b
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.004034f0
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x24]
mov byte [esp + 0x2160], 9
call fcn.004283c0
mov ecx, eax
call fcn.00426430
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 0x4473cd
test eax, eax
jne 0x44734f
push 0x80004003
call fcn.004633e0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47ddf0
call fcn.004031a0
push 3
push 0x482a00
call fcn.004031a0
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 0x44739d
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 0x4473c1
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 0x446de7
test eax, eax
jne 0x4473db
push 0x80004003
call fcn.004633e0
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 0x44740b
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 0x44742f
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 0x447bfb
cmp eax, 0x8007048f
jne 0x44748f
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x447457
push 0x80004003
call fcn.004633e0
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 0x447483
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 0x446eba
mov eax, dword [esp + 0x2c]
test eax, eax
jbe 0x44759b
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.00401940
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 0xa
test edx, edx
jne 0x4474d2
xor eax, eax
jmp 0x4474e6
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4474d7
sub eax, edi
sar eax, 1
mov edi, dword [esp + 0x30]
push eax
push edx
mov ecx, edi
call fcn.004028e0
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, edx
je 0x44750d
push eax
call ebx
add esp, 4
lea eax, [esp + 0x1c]
push eax
push 0x4849b0
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
mov dword [esp + 0x28], 0
call fcn.0040b1e0
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 0x44754b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x1c]
push ecx
push 0x4849b0
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.0040b1e0
push eax
mov ecx, edi
mov byte [esp + 0x215c], 0xb
call fcn.00404480
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 0x4475ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4475ab
mov ecx, dword [esp + 0x30]
push 1
push 0x47e358
call fcn.004028e0
lea ecx, [esp + 0x20]
push ecx
push 0x47fac8
lea edx, [esp + 0x24]
push edx
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.0040b1e0
push eax
mov ecx, esi
mov byte [esp + 0x215c], 0xc
call fcn.00404480
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 0x447601
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.00402bd0
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.00421260
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.00421310
add esp, 0x1c
cmp eax, 0x8007048f
jne 0x44768a
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x44767a
push 0x80004003
call fcn.004633e0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [ebx - 0x10]
jmp 0x447462
mov eax, dword [esp + 0x2c]
mov ebp, dword [sym.imp.MSVCR90.dll_wcsstr]
test eax, eax
jbe 0x4477f0
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.00401940
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 0xd
test edx, edx
jne 0x4476d3
xor eax, eax
jmp 0x4476ef
mov eax, edx
lea esi, [eax + 2]
jmp 0x4476e0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4476e0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.004028e0
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, edx
je 0x447718
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
lea eax, [esp + 0x1c]
push eax
push 0x4849b0
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], 0
call fcn.0040b1e0
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 0x447758
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x1c]
push ecx
push 0x4849b0
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x24]
call fcn.0040b1e0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x215c], 0xe
call fcn.00404480
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 0x4477aa
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 0x4477f4
push str.PBYN
push ecx
call ebp
add esp, 8
test eax, eax
je 0x4477f0
mov ecx, dword [esp + 0x18]
sub eax, ecx
sar eax, 1
js 0x4477f4
push 0x47dd5c
push str.PBYN:
lea ecx, [esp + 0x20]
call fcn.00407b20
lea ecx, [esp + 0x18]
call fcn.00403140
mov ecx, eax
call fcn.00402a40
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x447819
jl 0x44782d
push str.ERROR
push ecx
call ebp
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x44782d
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
jle 0x44782d
push 1
push 0x47e358
lea ecx, [esp + 0x20]
call fcn.004028e0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x4478e7
jl 0x447858
push str.ERROR
push ecx
call ebp
add esp, 8
test eax, eax
je 0x447858
sub eax, dword [esp + 0x18]
sar eax, 1
cmp eax, 0xffffffff
jne 0x4478e7
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00404480
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x44787b
push 0x80004003
call fcn.004633e0
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x20]
mov edi, eax
call fcn.00406780
mov esi, eax
push str.PhoneNumber
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0xf
call fcn.004066f0
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x10
test ecx, ecx
je 0x4478b5
mov ecx, dword [ecx]
jmp 0x4478b7
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x4478c1
mov eax, dword [eax]
jmp 0x4478c3
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.00407910
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2158], 5
call fcn.00407910
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x447983
push str.ERROR
push eax
call ebp
add esp, 8
test eax, eax
je 0x447983
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
jle 0x447983
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x447924
push 0x80004003
call fcn.004633e0
push str.TRUE
lea ecx, [esp + 0x34]
call fcn.004066f0
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x11
call fcn.004066f0
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x12
test ecx, ecx
je 0x44795c
mov ecx, dword [ecx]
jmp 0x44795e
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x447968
mov eax, dword [eax]
jmp 0x44796a
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.00407910
lea ecx, [esp + 0x30]
jmp 0x4479f5
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x447998
push 0x80004003
call fcn.004633e0
push 0x484bcc
lea ecx, [esp + 0x48]
call fcn.004066f0
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x13
call fcn.004066f0
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x14
test ecx, ecx
je 0x4479d0
mov ecx, dword [ecx]
jmp 0x4479d2
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x4479dc
mov eax, dword [eax]
jmp 0x4479de
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.00407910
lea ecx, [esp + 0x44]
mov byte [esp + 0x2158], 5
call fcn.00407910
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x447a17
push 0x80004003
call fcn.004633e0
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 0x447a43
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 0x447a6b
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 0x447a93
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 0x447abb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f288
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x447ae4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x447d8d
cmp eax, 1
jne 0x447c9f
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.004034f0
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x38]
mov byte [esp + 0x2160], 7
call fcn.004283c0
mov ecx, eax
call fcn.00426430
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 0x447b96
test eax, eax
jne 0x447b6a
push 0x80004003
call fcn.004633e0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47ddf0
call fcn.004031a0
push 2
push 0x482a00
call fcn.004031a0
mov eax, dword [esp + 0x40]
jmp 0x446d99
test eax, eax
jne 0x447ba4
push 0x80004003
call fcn.004633e0
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 0x447bd4
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 0x447bf8
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 0x447c1c
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 0x447c44
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 0x447c6c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f288
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x447c95
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 2
jmp 0x447d8d
cmp eax, 0x8007048f
mov eax, dword [esp + 0x2160]
je 0x446d4b
test eax, eax
jne 0x447cbf
push 0x80004003
call fcn.004633e0
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 0x447ceb
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 0x447d0f
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 0x447d37
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 0x447d5f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x49f288
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x447d88
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.00471f66
add esp, 0x2148
ret