Function at 0x441180
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x47bdf4
mov eax, dword fs:[0]
push eax
mov eax, 0x213c
call fcn.004765d0
mov eax, dword [0x4a6eb0]
xor eax, esp
mov dword [esp + 0x2138], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a6eb0]
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 0x4a7184
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 0x441204
push 0x80004003
call fcn.00467970
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 0x2710
push eax
call edx
mov eax, dword [0x4a743c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a743c
call edx
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [0x4a743c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a743c
mov byte [esp + 0x2158], 2
call edx
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [0x4a743c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a743c
mov byte [esp + 0x2158], 3
call edx
lea ebx, [eax + 0x10]
mov dword [esp + 0x34], ebx
mov eax, dword [0x4a743c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a743c
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], 0x4270b0
mov dword [esp + 0x40], 0x427190
mov dword [esp + 0x44], 0x427220
call ebp
push 5
push 0x488874
lea ecx, [esp + 0x30]
call fcn.00402ba0
mov edi, dword [esp + 0x28]
mov eax, dword [edi - 0xc]
push 0x2710
push eax
mov eax, dword [esp + 0x2168]
push edi
push eax
call fcn.00426f40
test eax, eax
jl 0x441310
push 3
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x2168]
push 0x2710
lea edx, [esp + 0x28]
push edx
push 0x2000
lea eax, [esp + 0x160]
push eax
push ecx
call fcn.00426ff0
add esp, 0x1c
test eax, eax
je 0x4416c1
cmp eax, 1
jne 0x4413c8
mov edx, dword [esp + 0x1c]
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.004034c0
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x24]
mov byte [esp + 0x2160], 6
call fcn.0042df00
mov ecx, eax
call fcn.0042bc40
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
cmp eax, 0xa
je 0x4413ed
mov edx, dword [esp + 0x1c]
push edx
call fcn.0042d290
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 0x4413af
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 0x4415ee
push 0x80004003
call fcn.00467970
cmp eax, 2
je 0x4413af
cmp eax, 0x8007048f
jne 0x4413af
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x44151b
push 0x80004003
call fcn.00467970
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x441402
push 0x80004003
call fcn.00467970
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x481e70
call fcn.00403170
push 1
push 0x4825f8
call fcn.00403170
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 0x441450
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 0x441474
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 0x441498
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
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 0x4414c0
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 0x4414e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a7184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x441511
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 6
jmp 0x44241d
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 0x441547
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 0x44156b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
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 0x441593
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 0x4415bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a7184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x4415e4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x44241d
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 0x44161a
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 0x44163e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
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 0x441666
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 0x44168e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a7184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x4416b7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 5
jmp 0x44241d
push 0x64
call ebp
push 7
push str.ATGMM_r
lea ecx, [esp + 0x30]
call fcn.00402ba0
mov edi, dword [esp + 0x28]
mov eax, dword [edi - 0xc]
push 0x2710
push eax
mov eax, dword [esp + 0x2168]
push edi
push eax
call fcn.00426f40
push 3
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x2168]
push 0x2710
lea edx, [esp + 0x28]
push edx
push 0x2000
lea eax, [esp + 0x160]
push eax
push ecx
call fcn.00426ff0
add esp, 0x1c
cmp eax, 2
jne 0x44177c
push 8
push str.ATCGMM_r
lea ecx, [esp + 0x30]
call fcn.00402ba0
mov edi, dword [esp + 0x28]
mov eax, dword [edi - 0xc]
mov edx, dword [esp + 0x2160]
push 0x2710
push eax
push edi
push edx
call fcn.00426f40
push 3
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x2168]
push 0x2710
lea ecx, [esp + 0x28]
push ecx
push 0x2000
lea edx, [esp + 0x160]
push edx
push eax
call fcn.00426ff0
add esp, 0x1c
test eax, eax
jne 0x44217b
mov eax, dword [esp + 0x1c]
mov ebx, dword [sym.imp.MSVCR90.dll_free]
test eax, eax
je 0x44188f
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 0x4417cd
xor eax, eax
jmp 0x4417e1
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4417d2
sub eax, edi
sar eax, 1
push eax
push edx
mov ecx, esi
call fcn.004028b0
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, ecx
je 0x441804
push eax
call ebx
add esp, 4
push 0x481de0
push 0x489328
mov ecx, esi
call fcn.004081f0
push 0x481de0
push 0x48243c
mov ecx, esi
call fcn.004081f0
push 0x481de0
push str.ATGMM
mov ecx, esi
call fcn.004081f0
push 0x481de0
push str.GMM:
mov ecx, esi
call fcn.004081f0
push 0x22
push 0x22
mov ecx, esi
call fcn.00411150
mov ecx, eax
call fcn.0042bb10
push 0x489de0
push 0x489de0
mov ecx, esi
call fcn.00408480
mov ecx, eax
call fcn.00408500
push 2
push 0
mov ecx, esi
call fcn.004070c0
mov edx, dword [esi]
mov eax, dword [edx - 0xc]
push 1
dec eax
push eax
mov ecx, esi
call fcn.004070c0
jmp 0x44189d
push 0
push 0x481de0
mov ecx, esi
call fcn.004028b0
push 7
push str.ATGSN_r
lea ecx, [esp + 0x30]
call fcn.00402ba0
mov edi, dword [esp + 0x28]
mov eax, dword [edi - 0xc]
push 0x2710
push eax
mov eax, dword [esp + 0x2168]
push edi
push eax
call fcn.00426f40
push 3
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x2168]
push 0x2710
lea edx, [esp + 0x28]
push edx
push 0x2000
lea eax, [esp + 0x160]
push eax
push ecx
call fcn.00426ff0
add esp, 0x1c
cmp eax, 2
jne 0x441954
push 8
push str.ATCGSN_r
lea ecx, [esp + 0x30]
call fcn.00402ba0
mov edi, dword [esp + 0x28]
mov eax, dword [edi - 0xc]
mov edx, dword [esp + 0x2160]
push 0x2710
push eax
push edi
push edx
call fcn.00426f40
push 3
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x2168]
push 0x2710
lea ecx, [esp + 0x28]
push ecx
push 0x2000
lea edx, [esp + 0x160]
push edx
push eax
call fcn.00426ff0
add esp, 0x1c
test eax, eax
je 0x441b1f
cmp eax, 1
jne 0x441acb
mov ecx, dword [esp + 0x1c]
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 + 0x28]
call fcn.004034c0
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2160], 9
call fcn.0042df00
mov ecx, eax
call fcn.0042bc40
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
cmp eax, 0xa
mov eax, dword [esp + 0x2160]
jne 0x441a5d
test eax, eax
jne 0x4419df
push 0x80004003
call fcn.00467970
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x481e70
call fcn.00403170
push 3
push 0x4825f8
call fcn.00403170
mov eax, dword [esp + 0x34]
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 0x441a2d
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 0x441a51
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 0x441477
test eax, eax
jne 0x441a6b
push 0x80004003
call fcn.00467970
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
mov eax, dword [esp + 0x24]
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 0x441a9b
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 0x441abf
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 0x44228b
cmp eax, 0x8007048f
jne 0x441b1f
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x441ae7
push 0x80004003
call fcn.00467970
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 0x441b13
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 0x44154a
mov eax, dword [esp + 0x1c]
test eax, eax
jbe 0x441c2b
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 0x441b62
xor eax, eax
jmp 0x441b76
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x441b67
sub eax, edi
sar eax, 1
mov edi, dword [esp + 0x30]
push eax
push edx
mov ecx, edi
call fcn.004028b0
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, edx
je 0x441b9d
push eax
call ebx
add esp, 4
lea eax, [esp + 0x24]
push eax
push 0x489328
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
mov dword [esp + 0x30], 0
call fcn.0040c510
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 0x441bdb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
push 0x489328
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.0040c510
push eax
mov ecx, edi
mov byte [esp + 0x215c], 0xb
call fcn.00404460
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 0x441c3b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x441c3b
mov ecx, dword [esp + 0x30]
push 1
push 0x48243c
call fcn.004028b0
lea ecx, [esp + 0x20]
push ecx
push 0x482e3c
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.0040c510
push eax
mov ecx, esi
mov byte [esp + 0x215c], 0xc
call fcn.00404460
mov eax, dword [esp + 0x24]
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 0x441c91
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.00402ba0
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx - 0xc]
mov ecx, dword [esp + 0x2160]
push 0x2710
push eax
push ebx
push ecx
call fcn.00426f40
push 3
lea edx, [esp + 0x3c]
push edx
mov edx, dword [esp + 0x2168]
push 0x2710
lea eax, [esp + 0x28]
push eax
push 0x2000
lea ecx, [esp + 0x160]
push ecx
push edx
call fcn.00426ff0
add esp, 0x1c
cmp eax, 0x8007048f
jne 0x441d1a
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x441d0a
push 0x80004003
call fcn.00467970
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [ebx - 0x10]
jmp 0x441af2
mov eax, dword [esp + 0x1c]
mov ebp, dword [sym.imp.MSVCR90.dll_wcsstr]
test eax, eax
jbe 0x441e80
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 0x441d63
xor eax, eax
jmp 0x441d7f
mov eax, edx
lea esi, [eax + 2]
jmp 0x441d70
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x441d70
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.004028b0
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, edx
je 0x441da8
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
lea eax, [esp + 0x24]
push eax
push 0x489328
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x30], 0
call fcn.0040c510
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 0x441de8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
push 0x489328
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x24]
call fcn.0040c510
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x215c], 0xe
call fcn.00404460
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 0x441e3a
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 0x441e84
push str.PBYN
push ecx
call ebp
add esp, 8
test eax, eax
je 0x441e80
mov ecx, dword [esp + 0x18]
sub eax, ecx
sar eax, 1
js 0x441e84
push 0x481de0
push str.PBYN:
lea ecx, [esp + 0x20]
call fcn.004081f0
lea ecx, [esp + 0x18]
call fcn.00403110
mov ecx, eax
call fcn.00402a10
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x441ea9
jl 0x441ebd
push str.ERROR
push ecx
call ebp
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x441ebd
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
jle 0x441ebd
push 1
push 0x48243c
lea ecx, [esp + 0x20]
call fcn.004028b0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x441f77
jl 0x441ee8
push str.ERROR
push ecx
call ebp
add esp, 8
test eax, eax
je 0x441ee8
sub eax, dword [esp + 0x18]
sar eax, 1
cmp eax, 0xffffffff
jne 0x441f77
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00404460
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x441f0b
push 0x80004003
call fcn.00467970
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x28]
mov edi, eax
call fcn.004068c0
mov esi, eax
push str.PhoneNumber
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0xf
call fcn.00406830
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x10
test ecx, ecx
je 0x441f45
mov ecx, dword [ecx]
jmp 0x441f47
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x441f51
mov eax, dword [eax]
jmp 0x441f53
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.00408920
lea ecx, [esp + 0x24]
mov byte [esp + 0x2158], 5
call fcn.00408920
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x442013
push str.ERROR
push eax
call ebp
add esp, 8
test eax, eax
je 0x442013
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
jle 0x442013
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x441fb4
push 0x80004003
call fcn.00467970
push str.TRUE
lea ecx, [esp + 0x34]
call fcn.00406830
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x11
call fcn.00406830
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x12
test ecx, ecx
je 0x441fec
mov ecx, dword [ecx]
jmp 0x441fee
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x441ff8
mov eax, dword [eax]
jmp 0x441ffa
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.00408920
lea ecx, [esp + 0x30]
jmp 0x442085
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x442028
push 0x80004003
call fcn.00467970
push 0x489554
lea ecx, [esp + 0x48]
call fcn.00406830
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x13
call fcn.00406830
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x14
test ecx, ecx
je 0x442060
mov ecx, dword [ecx]
jmp 0x442062
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x44206c
mov eax, dword [eax]
jmp 0x44206e
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.00408920
lea ecx, [esp + 0x44]
mov byte [esp + 0x2158], 5
call fcn.00408920
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x4420a7
push 0x80004003
call fcn.00467970
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 0x4420d3
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 0x4420fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
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 0x442123
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 0x44214b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a7184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x442174
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x44241d
cmp eax, 1
jne 0x44232f
mov eax, dword [esp + 0x1c]
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.004034c0
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x38]
mov byte [esp + 0x2160], 7
call fcn.0042df00
mov ecx, eax
call fcn.0042bc40
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 0x442226
test eax, eax
jne 0x4421fa
push 0x80004003
call fcn.00467970
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x481e70
call fcn.00403170
push 2
push 0x4825f8
call fcn.00403170
mov eax, dword [esp + 0x40]
jmp 0x441429
test eax, eax
jne 0x442234
push 0x80004003
call fcn.00467970
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 0x442264
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 0x442288
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 0x4422ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
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 0x4422d4
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 0x4422fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a7184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x442325
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 2
jmp 0x44241d
cmp eax, 0x8007048f
mov eax, dword [esp + 0x2160]
je 0x4413db
test eax, eax
jne 0x44234f
push 0x80004003
call fcn.00467970
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 0x44237b
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 0x44239f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
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 0x4423c7
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 0x4423ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a7184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x442418
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.004764f6
add esp, 0x2148
ret