Function at 0x43f010
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x479184
mov eax, dword fs:[0]
push eax
mov eax, 0x213c
call fcn.00473d60
mov eax, dword [0x4a3eb0]
xor eax, esp
mov dword [esp + 0x2138], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a3eb0]
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 0x4a4164
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 0x43f094
push 0x80004003
call fcn.004650f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 0x2710
push eax
call edx
mov eax, dword [0x4a440c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a440c
call edx
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [0x4a440c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a440c
mov byte [esp + 0x2158], 2
call edx
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [0x4a440c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a440c
mov byte [esp + 0x2158], 3
call edx
lea ebx, [eax + 0x10]
mov dword [esp + 0x34], ebx
mov eax, dword [0x4a440c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a440c
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], 0x425000
mov dword [esp + 0x40], 0x4250e0
mov dword [esp + 0x44], 0x425170
call ebp
push 5
push 0x48534c
lea ecx, [esp + 0x30]
call fcn.00402b50
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.00424e90
test eax, eax
jl 0x43f1a0
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.00424f40
add esp, 0x1c
test eax, eax
je 0x43f551
cmp eax, 1
jne 0x43f258
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.00403470
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x24]
mov byte [esp + 0x2160], 6
call fcn.0042bef0
mov ecx, eax
call fcn.00429c30
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
cmp eax, 0xa
je 0x43f27d
mov edx, dword [esp + 0x1c]
push edx
call fcn.0042b280
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 0x43f23f
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 0x43f47e
push 0x80004003
call fcn.004650f0
cmp eax, 2
je 0x43f23f
cmp eax, 0x8007048f
jne 0x43f23f
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43f3ab
push 0x80004003
call fcn.004650f0
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43f292
push 0x80004003
call fcn.004650f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47edf8
call fcn.00403120
push 1
push 0x47f460
call fcn.00403120
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 0x43f2e0
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 0x43f304
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 0x43f328
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 0x43f350
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 0x43f378
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a4164
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x43f3a1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 6
jmp 0x4402ad
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 0x43f3d7
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 0x43f3fb
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 0x43f423
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 0x43f44b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a4164
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x43f474
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x4402ad
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 0x43f4aa
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 0x43f4ce
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 0x43f4f6
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 0x43f51e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a4164
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x43f547
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 5
jmp 0x4402ad
push 0x64
call ebp
push 7
push str.ATGMM_r
lea ecx, [esp + 0x30]
call fcn.00402b50
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.00424e90
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.00424f40
add esp, 0x1c
cmp eax, 2
jne 0x43f60c
push 8
push str.ATCGMM_r
lea ecx, [esp + 0x30]
call fcn.00402b50
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.00424e90
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.00424f40
add esp, 0x1c
test eax, eax
jne 0x44000b
mov eax, dword [esp + 0x1c]
mov ebx, dword [sym.imp.MSVCR90.dll_free]
test eax, eax
je 0x43f71f
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.00401920
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 8
test edx, edx
jne 0x43f65d
xor eax, eax
jmp 0x43f671
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43f662
sub eax, edi
sar eax, 1
push eax
push edx
mov ecx, esi
call fcn.00402860
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, ecx
je 0x43f694
push eax
call ebx
add esp, 4
push 0x47ed68
push 0x485db8
mov ecx, esi
call fcn.00407e00
push 0x47ed68
push 0x47f3c4
mov ecx, esi
call fcn.00407e00
push 0x47ed68
push str.ATGMM
mov ecx, esi
call fcn.00407e00
push 0x47ed68
push str.GMM:
mov ecx, esi
call fcn.00407e00
push 0x22
push 0x22
mov ecx, esi
call fcn.0040f9e0
mov ecx, eax
call fcn.00429b00
push 0x486870
push 0x486870
mov ecx, esi
call fcn.00408090
mov ecx, eax
call fcn.00408110
push 2
push 0
mov ecx, esi
call fcn.00406f00
mov edx, dword [esi]
mov eax, dword [edx - 0xc]
push 1
dec eax
push eax
mov ecx, esi
call fcn.00406f00
jmp 0x43f72d
push 0
push 0x47ed68
mov ecx, esi
call fcn.00402860
push 7
push str.ATGSN_r
lea ecx, [esp + 0x30]
call fcn.00402b50
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.00424e90
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.00424f40
add esp, 0x1c
cmp eax, 2
jne 0x43f7e4
push 8
push str.ATCGSN_r
lea ecx, [esp + 0x30]
call fcn.00402b50
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.00424e90
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.00424f40
add esp, 0x1c
test eax, eax
je 0x43f9af
cmp eax, 1
jne 0x43f95b
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.00403470
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2160], 9
call fcn.0042bef0
mov ecx, eax
call fcn.00429c30
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 0x43f8ed
test eax, eax
jne 0x43f86f
push 0x80004003
call fcn.004650f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47edf8
call fcn.00403120
push 3
push 0x47f460
call fcn.00403120
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 0x43f8bd
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 0x43f8e1
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 0x43f307
test eax, eax
jne 0x43f8fb
push 0x80004003
call fcn.004650f0
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 0x43f92b
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 0x43f94f
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 0x44011b
cmp eax, 0x8007048f
jne 0x43f9af
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43f977
push 0x80004003
call fcn.004650f0
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 0x43f9a3
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 0x43f3da
mov eax, dword [esp + 0x1c]
test eax, eax
jbe 0x43fabb
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.00401920
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 0xa
test edx, edx
jne 0x43f9f2
xor eax, eax
jmp 0x43fa06
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43f9f7
sub eax, edi
sar eax, 1
mov edi, dword [esp + 0x30]
push eax
push edx
mov ecx, edi
call fcn.00402860
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, edx
je 0x43fa2d
push eax
call ebx
add esp, 4
lea eax, [esp + 0x24]
push eax
push 0x485db8
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
mov dword [esp + 0x30], 0
call fcn.0040ba40
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 0x43fa6b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
push 0x485db8
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.0040ba40
push eax
mov ecx, edi
mov byte [esp + 0x215c], 0xb
call fcn.00404410
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 0x43facb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x43facb
mov ecx, dword [esp + 0x30]
push 1
push 0x47f3c4
call fcn.00402860
lea ecx, [esp + 0x20]
push ecx
push 0x480d58
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.0040ba40
push eax
mov ecx, esi
mov byte [esp + 0x215c], 0xc
call fcn.00404410
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 0x43fb21
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.00402b50
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.00424e90
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.00424f40
add esp, 0x1c
cmp eax, 0x8007048f
jne 0x43fbaa
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43fb9a
push 0x80004003
call fcn.004650f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [ebx - 0x10]
jmp 0x43f982
mov eax, dword [esp + 0x1c]
mov ebp, dword [sym.imp.MSVCR90.dll_wcsstr]
test eax, eax
jbe 0x43fd10
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.00401920
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 0xd
test edx, edx
jne 0x43fbf3
xor eax, eax
jmp 0x43fc0f
mov eax, edx
lea esi, [eax + 2]
jmp 0x43fc00
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43fc00
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00402860
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, edx
je 0x43fc38
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
lea eax, [esp + 0x24]
push eax
push 0x485db8
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x30], 0
call fcn.0040ba40
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 0x43fc78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
push 0x485db8
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x24]
call fcn.0040ba40
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x215c], 0xe
call fcn.00404410
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 0x43fcca
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 0x43fd14
push str.PBYN
push ecx
call ebp
add esp, 8
test eax, eax
je 0x43fd10
mov ecx, dword [esp + 0x18]
sub eax, ecx
sar eax, 1
js 0x43fd14
push 0x47ed68
push str.PBYN:
lea ecx, [esp + 0x20]
call fcn.00407e00
lea ecx, [esp + 0x18]
call fcn.004030c0
mov ecx, eax
call fcn.004029c0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x43fd39
jl 0x43fd4d
push str.ERROR
push ecx
call ebp
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x43fd4d
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
jle 0x43fd4d
push 1
push 0x47f3c4
lea ecx, [esp + 0x20]
call fcn.00402860
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x43fe07
jl 0x43fd78
push str.ERROR
push ecx
call ebp
add esp, 8
test eax, eax
je 0x43fd78
sub eax, dword [esp + 0x18]
sar eax, 1
cmp eax, 0xffffffff
jne 0x43fe07
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00404410
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43fd9b
push 0x80004003
call fcn.004650f0
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x28]
mov edi, eax
call fcn.00406740
mov esi, eax
push str.PhoneNumber
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0xf
call fcn.004066b0
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x10
test ecx, ecx
je 0x43fdd5
mov ecx, dword [ecx]
jmp 0x43fdd7
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43fde1
mov eax, dword [eax]
jmp 0x43fde3
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.004084a0
lea ecx, [esp + 0x24]
mov byte [esp + 0x2158], 5
call fcn.004084a0
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x43fea3
push str.ERROR
push eax
call ebp
add esp, 8
test eax, eax
je 0x43fea3
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
jle 0x43fea3
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x43fe44
push 0x80004003
call fcn.004650f0
push str.TRUE
lea ecx, [esp + 0x34]
call fcn.004066b0
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x11
call fcn.004066b0
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x12
test ecx, ecx
je 0x43fe7c
mov ecx, dword [ecx]
jmp 0x43fe7e
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43fe88
mov eax, dword [eax]
jmp 0x43fe8a
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.004084a0
lea ecx, [esp + 0x30]
jmp 0x43ff15
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x43feb8
push 0x80004003
call fcn.004650f0
push 0x485fe4
lea ecx, [esp + 0x48]
call fcn.004066b0
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x13
call fcn.004066b0
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x14
test ecx, ecx
je 0x43fef0
mov ecx, dword [ecx]
jmp 0x43fef2
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43fefc
mov eax, dword [eax]
jmp 0x43fefe
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.004084a0
lea ecx, [esp + 0x44]
mov byte [esp + 0x2158], 5
call fcn.004084a0
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43ff37
push 0x80004003
call fcn.004650f0
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 0x43ff63
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 0x43ff8b
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 0x43ffb3
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 0x43ffdb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a4164
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x440004
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x4402ad
cmp eax, 1
jne 0x4401bf
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.00403470
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x38]
mov byte [esp + 0x2160], 7
call fcn.0042bef0
mov ecx, eax
call fcn.00429c30
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 0x4400b6
test eax, eax
jne 0x44008a
push 0x80004003
call fcn.004650f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47edf8
call fcn.00403120
push 2
push 0x47f460
call fcn.00403120
mov eax, dword [esp + 0x40]
jmp 0x43f2b9
test eax, eax
jne 0x4400c4
push 0x80004003
call fcn.004650f0
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 0x4400f4
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 0x440118
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 0x44013c
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 0x440164
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 0x44018c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a4164
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x4401b5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 2
jmp 0x4402ad
cmp eax, 0x8007048f
mov eax, dword [esp + 0x2160]
je 0x43f26b
test eax, eax
jne 0x4401df
push 0x80004003
call fcn.004650f0
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 0x44020b
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 0x44022f
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 0x440257
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 0x44027f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a4164
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x4402a8
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.00473c8a
add esp, 0x2148
ret