Function at 0x440240
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x47b5c4
mov eax, dword fs:[0]
push eax
mov eax, 0x213c
call fcn.00475e50
mov eax, dword [0x4a5eb0]
xor eax, esp
mov dword [esp + 0x2138], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a5eb0]
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 0x4a6184
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 0x4402c4
push 0x80004003
call fcn.004671f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 0x2710
push eax
call edx
mov eax, dword [0x4a643c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a643c
call edx
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [0x4a643c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a643c
mov byte [esp + 0x2158], 2
call edx
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [0x4a643c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a643c
mov byte [esp + 0x2158], 3
call edx
lea ebx, [eax + 0x10]
mov dword [esp + 0x34], ebx
mov eax, dword [0x4a643c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a643c
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], 0x426190
mov dword [esp + 0x40], 0x426270
mov dword [esp + 0x44], 0x426300
call ebp
push 5
push 0x487694
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.00426020
test eax, eax
jl 0x4403d0
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.004260d0
add esp, 0x1c
test eax, eax
je 0x440781
cmp eax, 1
jne 0x440488
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.0042cfc0
mov ecx, eax
call fcn.0042ad00
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
cmp eax, 0xa
je 0x4404ad
mov edx, dword [esp + 0x1c]
push edx
call fcn.0042c350
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 0x44046f
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 0x4406ae
push 0x80004003
call fcn.004671f0
cmp eax, 2
je 0x44046f
cmp eax, 0x8007048f
jne 0x44046f
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x4405db
push 0x80004003
call fcn.004671f0
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x4404c2
push 0x80004003
call fcn.004671f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x480e70
call fcn.00403170
push 1
push 0x4814d8
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 0x440510
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 0x440534
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 0x440558
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 0x440580
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 0x4405a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a6184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x4405d1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 6
jmp 0x4414dd
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 0x440607
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 0x44062b
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 0x440653
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 0x44067b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a6184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x4406a4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x4414dd
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 0x4406da
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 0x4406fe
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 0x440726
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 0x44074e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a6184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x440777
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 5
jmp 0x4414dd
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.00426020
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.004260d0
add esp, 0x1c
cmp eax, 2
jne 0x44083c
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.00426020
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.004260d0
add esp, 0x1c
test eax, eax
jne 0x44123b
mov eax, dword [esp + 0x1c]
mov ebx, dword [sym.imp.MSVCR90.dll_free]
test eax, eax
je 0x44094f
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 0x44088d
xor eax, eax
jmp 0x4408a1
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x440892
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 0x4408c4
push eax
call ebx
add esp, 4
push 0x480de0
push 0x488148
mov ecx, esi
call fcn.00407fd0
push 0x480de0
push 0x48143c
mov ecx, esi
call fcn.00407fd0
push 0x480de0
push str.ATGMM
mov ecx, esi
call fcn.00407fd0
push 0x480de0
push str.GMM:
mov ecx, esi
call fcn.00407fd0
push 0x22
push 0x22
mov ecx, esi
call fcn.00410b00
mov ecx, eax
call fcn.0042abd0
push 0x488c00
push 0x488c00
mov ecx, esi
call fcn.00408260
mov ecx, eax
call fcn.004082e0
push 2
push 0
mov ecx, esi
call fcn.00407090
mov edx, dword [esi]
mov eax, dword [edx - 0xc]
push 1
dec eax
push eax
mov ecx, esi
call fcn.00407090
jmp 0x44095d
push 0
push 0x480de0
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.00426020
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.004260d0
add esp, 0x1c
cmp eax, 2
jne 0x440a14
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.00426020
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.004260d0
add esp, 0x1c
test eax, eax
je 0x440bdf
cmp eax, 1
jne 0x440b8b
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.0042cfc0
mov ecx, eax
call fcn.0042ad00
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 0x440b1d
test eax, eax
jne 0x440a9f
push 0x80004003
call fcn.004671f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x480e70
call fcn.00403170
push 3
push 0x4814d8
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 0x440aed
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 0x440b11
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 0x440537
test eax, eax
jne 0x440b2b
push 0x80004003
call fcn.004671f0
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 0x440b5b
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 0x440b7f
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 0x44134b
cmp eax, 0x8007048f
jne 0x440bdf
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x440ba7
push 0x80004003
call fcn.004671f0
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 0x440bd3
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 0x44060a
mov eax, dword [esp + 0x1c]
test eax, eax
jbe 0x440ceb
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 0x440c22
xor eax, eax
jmp 0x440c36
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x440c27
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 0x440c5d
push eax
call ebx
add esp, 4
lea eax, [esp + 0x24]
push eax
push 0x488148
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
mov dword [esp + 0x30], 0
call fcn.0040bf80
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 0x440c9b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
push 0x488148
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.0040bf80
push eax
mov ecx, edi
mov byte [esp + 0x215c], 0xb
call fcn.00404450
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 0x440cfb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x440cfb
mov ecx, dword [esp + 0x30]
push 1
push 0x48143c
call fcn.004028b0
lea ecx, [esp + 0x20]
push ecx
push 0x481b28
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.0040bf80
push eax
mov ecx, esi
mov byte [esp + 0x215c], 0xc
call fcn.00404450
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 0x440d51
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.00426020
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.004260d0
add esp, 0x1c
cmp eax, 0x8007048f
jne 0x440dda
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x440dca
push 0x80004003
call fcn.004671f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [ebx - 0x10]
jmp 0x440bb2
mov eax, dword [esp + 0x1c]
mov ebp, dword [sym.imp.MSVCR90.dll_wcsstr]
test eax, eax
jbe 0x440f40
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 0x440e23
xor eax, eax
jmp 0x440e3f
mov eax, edx
lea esi, [eax + 2]
jmp 0x440e30
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x440e30
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 0x440e68
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
lea eax, [esp + 0x24]
push eax
push 0x488148
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x30], 0
call fcn.0040bf80
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 0x440ea8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
push 0x488148
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x24]
call fcn.0040bf80
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x215c], 0xe
call fcn.00404450
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 0x440efa
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 0x440f44
push str.PBYN
push ecx
call ebp
add esp, 8
test eax, eax
je 0x440f40
mov ecx, dword [esp + 0x18]
sub eax, ecx
sar eax, 1
js 0x440f44
push 0x480de0
push str.PBYN:
lea ecx, [esp + 0x20]
call fcn.00407fd0
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 0x440f69
jl 0x440f7d
push str.ERROR
push ecx
call ebp
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x440f7d
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
jle 0x440f7d
push 1
push 0x48143c
lea ecx, [esp + 0x20]
call fcn.004028b0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x441037
jl 0x440fa8
push str.ERROR
push ecx
call ebp
add esp, 8
test eax, eax
je 0x440fa8
sub eax, dword [esp + 0x18]
sar eax, 1
cmp eax, 0xffffffff
jne 0x441037
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00404450
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x440fcb
push 0x80004003
call fcn.004671f0
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x28]
mov edi, eax
call fcn.004068b0
mov esi, eax
push str.PhoneNumber
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0xf
call fcn.00406820
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x10
test ecx, ecx
je 0x441005
mov ecx, dword [ecx]
jmp 0x441007
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x441011
mov eax, dword [eax]
jmp 0x441013
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.00408700
lea ecx, [esp + 0x24]
mov byte [esp + 0x2158], 5
call fcn.00408700
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x4410d3
push str.ERROR
push eax
call ebp
add esp, 8
test eax, eax
je 0x4410d3
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
jle 0x4410d3
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x441074
push 0x80004003
call fcn.004671f0
push str.TRUE
lea ecx, [esp + 0x34]
call fcn.00406820
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x11
call fcn.00406820
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x12
test ecx, ecx
je 0x4410ac
mov ecx, dword [ecx]
jmp 0x4410ae
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x4410b8
mov eax, dword [eax]
jmp 0x4410ba
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.00408700
lea ecx, [esp + 0x30]
jmp 0x441145
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x4410e8
push 0x80004003
call fcn.004671f0
push 0x488374
lea ecx, [esp + 0x48]
call fcn.00406820
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x13
call fcn.00406820
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x14
test ecx, ecx
je 0x441120
mov ecx, dword [ecx]
jmp 0x441122
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x44112c
mov eax, dword [eax]
jmp 0x44112e
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.00408700
lea ecx, [esp + 0x44]
mov byte [esp + 0x2158], 5
call fcn.00408700
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x441167
push 0x80004003
call fcn.004671f0
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 0x441193
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 0x4411bb
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 0x4411e3
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 0x44120b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a6184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x441234
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x4414dd
cmp eax, 1
jne 0x4413ef
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.0042cfc0
mov ecx, eax
call fcn.0042ad00
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 0x4412e6
test eax, eax
jne 0x4412ba
push 0x80004003
call fcn.004671f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x480e70
call fcn.00403170
push 2
push 0x4814d8
call fcn.00403170
mov eax, dword [esp + 0x40]
jmp 0x4404e9
test eax, eax
jne 0x4412f4
push 0x80004003
call fcn.004671f0
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 0x441324
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 0x441348
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 0x44136c
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 0x441394
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 0x4413bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a6184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x4413e5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 2
jmp 0x4414dd
cmp eax, 0x8007048f
mov eax, dword [esp + 0x2160]
je 0x44049b
test eax, eax
jne 0x44140f
push 0x80004003
call fcn.004671f0
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 0x44143b
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 0x44145f
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 0x441487
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 0x4414af
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a6184
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x4414d8
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.00475d76
add esp, 0x2148
ret