Function at 0x43e580
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x479c84
mov eax, dword fs:[0]
push eax
mov eax, 0x213c
call fcn.004748a0
mov eax, dword [0x4a4eb0]
xor eax, esp
mov dword [esp + 0x2138], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a4eb0]
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 0x4a5164
mov dword [esp + 0x215c], 0
call dword [0x47f220]
mov eax, dword [esp + 0x2160]
mov byte [esp + 0x2158], 1
test eax, eax
jne 0x43e604
push 0x80004003
call fcn.00465c30
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 0x2710
push eax
call edx
mov eax, dword [0x4a540c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a540c
call edx
add eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [0x4a540c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a540c
mov byte [esp + 0x2158], 2
call edx
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [0x4a540c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a540c
mov byte [esp + 0x2158], 3
call edx
lea ebx, [eax + 0x10]
mov dword [esp + 0x34], ebx
mov eax, dword [0x4a540c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a540c
mov byte [esp + 0x2158], 4
call edx
add eax, 0x10
mov dword [esp + 0x28], eax
mov ebp, dword [0x47f1f4]
push 0x64
mov byte [esp + 0x215c], 5
mov dword [esp + 0x3c], 0x424600
mov dword [esp + 0x40], 0x4246e0
mov dword [esp + 0x44], 0x424770
call ebp
push 5
push 0x48635c
lea ecx, [esp + 0x30]
call fcn.00402b70
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.00424490
test eax, eax
jl 0x43e710
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.00424540
add esp, 0x1c
test eax, eax
je 0x43eac1
cmp eax, 1
jne 0x43e7c8
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x14c]
push str.ERROR:
push eax
mov byte [esp + edx + 0x154], 0
call dword [0x47f2a8]
add esp, 8
push eax
lea ecx, [esp + 0x20]
call fcn.00403490
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x24]
mov byte [esp + 0x2160], 6
call fcn.0042b4e0
mov ecx, eax
call fcn.00429220
mov ecx, dword [esp + 0x1c]
push ecx
call dword [0x47f28c]
add esp, 4
cmp eax, 0xa
je 0x43e7ed
mov edx, dword [esp + 0x1c]
push edx
call fcn.0042a870
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 0x43e7af
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 0x43e9ee
push 0x80004003
call fcn.00465c30
cmp eax, 2
je 0x43e7af
cmp eax, 0x8007048f
jne 0x43e7af
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43e91b
push 0x80004003
call fcn.00465c30
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43e802
push 0x80004003
call fcn.00465c30
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47fdf8
call fcn.00403140
push 1
push 0x480460
call fcn.00403140
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 0x43e850
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 0x43e874
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 0x43e898
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 0x43e8c0
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 0x43e8e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a5164
call dword [0x47f21c]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x43e911
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 6
jmp 0x43f81d
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 0x43e947
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 0x43e96b
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 0x43e993
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 0x43e9bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a5164
call dword [0x47f21c]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x43e9e4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x43f81d
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 0x43ea1a
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 0x43ea3e
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 0x43ea66
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 0x43ea8e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a5164
call dword [0x47f21c]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x43eab7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 5
jmp 0x43f81d
push 0x64
call ebp
push 7
push str.ATGMM_r
lea ecx, [esp + 0x30]
call fcn.00402b70
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.00424490
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.00424540
add esp, 0x1c
cmp eax, 2
jne 0x43eb7c
push 8
push str.ATCGMM_r
lea ecx, [esp + 0x30]
call fcn.00402b70
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.00424490
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.00424540
add esp, 0x1c
test eax, eax
jne 0x43f57b
mov eax, dword [esp + 0x1c]
mov ebx, dword [0x47f370]
test eax, eax
je 0x43ec8f
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.00401960
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 8
test edx, edx
jne 0x43ebcd
xor eax, eax
jmp 0x43ebe1
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43ebd2
sub eax, edi
sar eax, 1
push eax
push edx
mov ecx, esi
call fcn.00402880
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, ecx
je 0x43ec04
push eax
call ebx
add esp, 4
push 0x47fd68
push 0x486df0
mov ecx, esi
call fcn.00407e30
push 0x47fd68
push 0x4803c4
mov ecx, esi
call fcn.00407e30
push 0x47fd68
push str.ATGMM
mov ecx, esi
call fcn.00407e30
push 0x47fd68
push str.GMM:
mov ecx, esi
call fcn.00407e30
push 0x22
push 0x22
mov ecx, esi
call fcn.0040f9d0
mov ecx, eax
call fcn.004290f0
push 0x4878a8
push 0x4878a8
mov ecx, esi
call fcn.004080c0
mov ecx, eax
call fcn.00408140
push 2
push 0
mov ecx, esi
call fcn.00406ee0
mov edx, dword [esi]
mov eax, dword [edx - 0xc]
push 1
dec eax
push eax
mov ecx, esi
call fcn.00406ee0
jmp 0x43ec9d
push 0
push 0x47fd68
mov ecx, esi
call fcn.00402880
push 7
push str.ATGSN_r
lea ecx, [esp + 0x30]
call fcn.00402b70
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.00424490
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.00424540
add esp, 0x1c
cmp eax, 2
jne 0x43ed54
push 8
push str.ATCGSN_r
lea ecx, [esp + 0x30]
call fcn.00402b70
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.00424490
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.00424540
add esp, 0x1c
test eax, eax
je 0x43ef1f
cmp eax, 1
jne 0x43eecb
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x14c]
push str.ERROR:
push edx
mov byte [esp + ecx + 0x154], 0
call dword [0x47f2a8]
add esp, 8
push eax
lea ecx, [esp + 0x28]
call fcn.00403490
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2160], 9
call fcn.0042b4e0
mov ecx, eax
call fcn.00429220
mov eax, dword [esp + 0x24]
push eax
call dword [0x47f28c]
add esp, 4
cmp eax, 0xa
mov eax, dword [esp + 0x2160]
jne 0x43ee5d
test eax, eax
jne 0x43eddf
push 0x80004003
call fcn.00465c30
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47fdf8
call fcn.00403140
push 3
push 0x480460
call fcn.00403140
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 0x43ee2d
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 0x43ee51
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 0x43e877
test eax, eax
jne 0x43ee6b
push 0x80004003
call fcn.00465c30
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 0x43ee9b
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 0x43eebf
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 0x43f68b
cmp eax, 0x8007048f
jne 0x43ef1f
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43eee7
push 0x80004003
call fcn.00465c30
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 0x43ef13
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 0x43e94a
mov eax, dword [esp + 0x1c]
test eax, eax
jbe 0x43f02b
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.00401960
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 0xa
test edx, edx
jne 0x43ef62
xor eax, eax
jmp 0x43ef76
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43ef67
sub eax, edi
sar eax, 1
mov edi, dword [esp + 0x30]
push eax
push edx
mov ecx, edi
call fcn.00402880
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, edx
je 0x43ef9d
push eax
call ebx
add esp, 4
lea eax, [esp + 0x24]
push eax
push 0x486df0
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
mov dword [esp + 0x30], 0
call fcn.0040ba20
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 0x43efdb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
push 0x486df0
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.0040ba20
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 0x43f03b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x43f03b
mov ecx, dword [esp + 0x30]
push 1
push 0x4803c4
call fcn.00402880
lea ecx, [esp + 0x20]
push ecx
push 0x481d58
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.0040ba20
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 0x43f091
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.00402b70
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.00424490
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.00424540
add esp, 0x1c
cmp eax, 0x8007048f
jne 0x43f11a
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43f10a
push 0x80004003
call fcn.00465c30
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
lea eax, [ebx - 0x10]
jmp 0x43eef2
mov eax, dword [esp + 0x1c]
mov ebp, dword [0x47f37c]
test eax, eax
jbe 0x43f280
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.00401960
mov edx, dword [esp + 0x48]
mov byte [esp + 0x2158], 0xd
test edx, edx
jne 0x43f163
xor eax, eax
jmp 0x43f17f
mov eax, edx
lea esi, [eax + 2]
jmp 0x43f170
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43f170
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00402880
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x4c]
mov byte [esp + 0x2158], 5
cmp eax, edx
je 0x43f1a8
push eax
call dword [0x47f370]
add esp, 4
lea eax, [esp + 0x24]
push eax
push 0x486df0
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x30], 0
call fcn.0040ba20
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 0x43f1e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
push 0x486df0
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x24]
call fcn.0040ba20
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 0x43f23a
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 0x43f284
push str.PBYN
push ecx
call ebp
add esp, 8
test eax, eax
je 0x43f280
mov ecx, dword [esp + 0x18]
sub eax, ecx
sar eax, 1
js 0x43f284
push 0x47fd68
push str.PBYN:
lea ecx, [esp + 0x20]
call fcn.00407e30
lea ecx, [esp + 0x18]
call fcn.004030e0
mov ecx, eax
call fcn.004029e0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x43f2a9
jl 0x43f2bd
push str.ERROR
push ecx
call ebp
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x43f2bd
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
jle 0x43f2bd
push 1
push 0x4803c4
lea ecx, [esp + 0x20]
call fcn.00402880
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x43f377
jl 0x43f2e8
push str.ERROR
push ecx
call ebp
add esp, 8
test eax, eax
je 0x43f2e8
sub eax, dword [esp + 0x18]
sar eax, 1
cmp eax, 0xffffffff
jne 0x43f377
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00404410
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43f30b
push 0x80004003
call fcn.00465c30
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x28]
mov edi, eax
call fcn.00406720
mov esi, eax
push str.PhoneNumber
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0xf
call fcn.00406690
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x10
test ecx, ecx
je 0x43f345
mov ecx, dword [ecx]
jmp 0x43f347
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43f351
mov eax, dword [eax]
jmp 0x43f353
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.00407c20
lea ecx, [esp + 0x24]
mov byte [esp + 0x2158], 5
call fcn.00407c20
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x43f413
push str.ERROR
push eax
call ebp
add esp, 8
test eax, eax
je 0x43f413
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
jle 0x43f413
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x43f3b4
push 0x80004003
call fcn.00465c30
push str.TRUE
lea ecx, [esp + 0x34]
call fcn.00406690
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x11
call fcn.00406690
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x12
test ecx, ecx
je 0x43f3ec
mov ecx, dword [ecx]
jmp 0x43f3ee
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43f3f8
mov eax, dword [eax]
jmp 0x43f3fa
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.00407c20
lea ecx, [esp + 0x30]
jmp 0x43f485
mov edi, dword [esp + 0x2160]
test edi, edi
jne 0x43f428
push 0x80004003
call fcn.00465c30
push 0x48701c
lea ecx, [esp + 0x48]
call fcn.00406690
mov esi, eax
push str.TEMPORARY_IMEI
lea ecx, [esp + 0x24]
mov byte [esp + 0x215c], 0x13
call fcn.00406690
mov ecx, dword [esi]
mov byte [esp + 0x2158], 0x14
test ecx, ecx
je 0x43f460
mov ecx, dword [ecx]
jmp 0x43f462
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43f46c
mov eax, dword [eax]
jmp 0x43f46e
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.00407c20
lea ecx, [esp + 0x44]
mov byte [esp + 0x2158], 5
call fcn.00407c20
mov eax, dword [esp + 0x2160]
test eax, eax
jne 0x43f4a7
push 0x80004003
call fcn.00465c30
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 0x43f4d3
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 0x43f4fb
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 0x43f523
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 0x43f54b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a5164
call dword [0x47f21c]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x43f574
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x43f81d
cmp eax, 1
jne 0x43f72f
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x14c]
push str.ERROR:
push ecx
mov byte [esp + eax + 0x154], 0
call dword [0x47f2a8]
add esp, 8
push eax
lea ecx, [esp + 0x34]
call fcn.00403490
push str.CME_ERROR:_r_n
push str.CME_ERROR:_r_n
lea ecx, [esp + 0x38]
mov byte [esp + 0x2160], 7
call fcn.0042b4e0
mov ecx, eax
call fcn.00429220
mov edx, dword [esp + 0x30]
push edx
call dword [0x47f28c]
add esp, 4
cmp eax, 0xa
mov eax, dword [esp + 0x2160]
jne 0x43f626
test eax, eax
jne 0x43f5fa
push 0x80004003
call fcn.00465c30
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push eax
call edx
push str.CDeviceManager::VIAModemIdentify
push 0x47fdf8
call fcn.00403140
push 2
push 0x480460
call fcn.00403140
mov eax, dword [esp + 0x40]
jmp 0x43e829
test eax, eax
jne 0x43f634
push 0x80004003
call fcn.00465c30
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 0x43f664
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 0x43f688
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 0x43f6ac
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 0x43f6d4
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 0x43f6fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a5164
call dword [0x47f21c]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x43f725
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 2
jmp 0x43f81d
cmp eax, 0x8007048f
mov eax, dword [esp + 0x2160]
je 0x43e7db
test eax, eax
jne 0x43f74f
push 0x80004003
call fcn.00465c30
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 0x43f77b
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 0x43f79f
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 0x43f7c7
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 0x43f7ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a5164
call dword [0x47f21c]
mov eax, dword [esp + 0x2160]
mov dword [esp + 0x2158], 0xffffffff
test eax, eax
je 0x43f818
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.004747ca
add esp, 0x2148
ret