Function at 0x4409e0
Capabilities:
Access peb ldr_data
Check os version
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x58c7b2
mov eax, dword fs:[0]
push eax
sub esp, 0x350
push ebx
push esi
push edi
mov eax, dword [0x5ef60c]
xor eax, esp
push eax
lea eax, [esp + 0x360]
mov dword fs:[0], eax
push str.UI_MODE_:_VERSION_CHECK_:_START_r_n
xor edi, edi
push 0x5f80f8
mov dword [esp + 0x4c], edi
call fcn.00403a70
mov ebx, dword [ebp + 8]
lea eax, [ebx + 0x88]
add esp, 8
push eax
mov dword [esp + 0x64], eax
call fcn.00420240
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push 0x5b95a8
call fcn.00401a30
lea esi, [ebx + 0x21c]
call fcn.00413d80
mov eax, 1
push 0x5b95a8
lea ecx, [esp + 0x6c]
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], eax
call fcn.00401a30
push 0x5b95a8
lea ecx, [esp + 0x68]
mov dword [esp + 0x36c], edi
call fcn.00401a30
push 8
push str.EPSDNMON
lea ecx, [esp + 0x70]
mov byte [esp + 0x370], 1
call fcn.00401e90
push 7
push str.Monitor
lea ecx, [esp + 0x6c]
call fcn.00401e90
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.0040a2f0
mov eax, dword [eax]
push 0x5ba8f4
push eax
call fcn.00558f06
add esp, 8
cmp eax, edi
mov byte [esp + 0x368], 1
mov eax, dword [esp + 0x44]
sete byte [esp + 0x1b]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x440b0c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x1b], 0
je 0x440b1d
mov dword [ebx + 0xcb0], 1
call fcn.00467a9c
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xcc]
lea esi, [esp + 0x44]
call fcn.0042b1c0
mov ecx, dword [eax]
cmp dword [ecx - 0xc], edi
jne 0x440b48
mov byte [esp + 0x1b], 0
cmp dword [ebx + 0xcb0], edi
jne 0x440b4d
mov byte [esp + 0x1b], 1
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x440b6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x1b], 0
jne 0x440c00
call fcn.00467a9c
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xcc]
lea esi, [esp + 0x1c]
call fcn.0042b130
mov byte [esp + 0x368], 3
mov ecx, dword [eax]
mov dword [esp + 0x44], 2
cmp dword [ecx - 0xc], edi
je 0x440bc1
call fcn.00467a9c
mov eax, dword [eax + 4]
mov edx, dword [eax + 0xcc]
mov byte [esp + 0x1b], 1
cmp dword [edx + 0x80], edi
je 0x440bc6
mov byte [esp + 0x1b], 0
mov dword [esp + 0x368], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x440bf1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x1b], 0
mov dword [esp + 0x1c], edi
je 0x440c00
mov dword [esp + 0x28], edi
mov ecx, dword [ebx + 0x20]
push edi
push edi
push 0x2b1c
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, eax
mov dword [ebx + 0x160], esi
call fcn.0045e972
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x440c33
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x6c]
call fcn.00401ca0
xor eax, eax
mov byte [esp + 0x368], 1
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
call fcn.0045e972
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x440c7c
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x7c], eax
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
call fcn.0045e972
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x440cb6
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x88], eax
call fcn.0045e972
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x440ce3
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x8c], eax
mov byte [esp + 0x368], 5
mov dword [esp + 0x90], edi
cmp dword [ebx + 0x154], esi
jbe 0x440d38
cmp esi, edi
jl 0x440de9
cmp esi, dword [ebx + 0x154]
jge 0x440de9
mov edx, dword [ebx + 0x150]
lea ecx, [esi + esi*4]
lea edi, [edx + ecx*8]
lea esi, [esp + 0x6c]
call fcn.00442d30
xor edi, edi
mov eax, dword [esp + 0x6c]
cmp dword [eax - 0xc], edi
je 0x442bfe
mov esi, dword [esp + 0x70]
cmp esi, 3
je 0x440d57
cmp esi, 2
jne 0x442bfe
push 0x5b95a8
lea ecx, [esp + 0x5c]
call fcn.00401a30
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x36c], 6
call fcn.00401f40
cmp esi, 3
jne 0x440dee
mov eax, dword [esp + 0x6c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00401ff0
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea esi, [esp + 0x48]
call fcn.00411550
add esp, 4
lea ecx, [ebx + 0xbc]
push eax
mov byte [esp + 0x36c], 7
call fcn.00401f40
mov byte [esp + 0x368], 6
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x440e03
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x440e03
call fcn.0045e880
cmp esi, 2
jne 0x440e03
lea edx, [esp + 0x58]
lea ecx, [ebx + 0xbc]
push edx
call fcn.00401f40
mov eax, dword [ebx + 0xbc]
push eax
push str.ModelName___s__r_n
push 0x5f80f8
call fcn.00403a70
mov eax, dword [ebx + 0xbc]
add esp, 8
sub eax, 0x10
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00401ff0
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov byte [esp + 0x36c], 8
call fcn.00467a9c
mov eax, dword [eax + 4]
mov ecx, eax
mov byte [esp + 0x36c], 6
call fcn.0042cdd0
cmp dword [esp + 0x70], 3
jne 0x440ea2
mov eax, dword [esp + 0x58]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00401ff0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.004185d0
cmp eax, 2
je 0x440ea2
cmp eax, 3
je 0x440ea2
cmp eax, 5
jne 0x440e9e
lea ecx, [esp + 0x58]
push ecx
call fcn.00418b20
cmp eax, 1
je 0x440ea2
mov dword [esp + 0x28], edi
cmp dword [ebx + 0x218], edi
je 0x440f02
call fcn.00467a9c
mov esi, dword [eax + 4]
mov eax, dword [esi + 0x130]
cmp eax, edi
je 0x440ec9
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esi + 0x130], edi
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.E_UPWJ01.dll
call fcn.00401a30
mov byte [esp + 0x36c], 9
call fcn.00467a9c
mov eax, dword [eax + 4]
add eax, 0xd0
mov byte [esp + 0x36c], 6
call fcn.004167a0
mov dword [ebx + 0x218], edi
mov eax, dword [esp + 0x70]
mov dword [ebx + 0xa4], edi
cmp eax, 3
jne 0x44113a
lea edx, [ebx + 0xa8]
push edx
lea esi, [ebx + 0xb8]
push esi
lea eax, [ebx + 0xb4]
push eax
mov eax, dword [esp + 0x78]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov edi, esp
push eax
call fcn.00401ff0
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.00440150
cmp dword [ebx + 0xa4], 0
jne 0x440f71
mov esi, dword [esi]
push 0x5b9ba0
push esi
call fcn.00558f06
xor ecx, ecx
add esp, 8
test eax, eax
sete cl
mov dword [ebx + 0xa4], ecx
xor edi, edi
lea esi, [esp + 0x6c]
call fcn.0044bd10
lea ecx, [esp + 0x20c]
push ecx
call fcn.00438c50
mov byte [esp + 0x368], 0xb
mov eax, dword [ebx + 0x18c]
mov dword [esp + 0x20], edi
cmp eax, edi
je 0x440fb1
mov eax, dword [eax + 0x20]
push 0x14
push edi
push 0x2b12
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov esi, dword [esp + 0x84]
cmp esi, edi
jne 0x440fce
mov dword [0x5f83c0], edi
mov dword [0x5f83c4], edi
mov dword [0x5f83c8], edi
mov edx, dword [esp + 0x6c]
push edx
push str.strCurrentProduct.csParameter___s__r_n
push 0x5f80f8
call fcn.00403a70
mov eax, dword [esp + 0x7c]
add esp, 0xc
push eax
push str.strCurrentProduct.dwParameterType___d__r_n
push 0x5f80f8
call fcn.00403a70
mov ecx, dword [esp + 0x80]
add esp, 0xc
push ecx
push str.strCurrentProduct.dwProductType___d__r_n
push 0x5f80f8
call fcn.00403a70
mov edx, dword [esp + 0x98]
add esp, 0xc
push edx
push str.strCurrentProduct.csDriverName___s__r_n
push 0x5f80f8
call fcn.00403a70
mov eax, dword [esp + 0x88]
add esp, 0xc
push eax
push str.strCurrentProduct.csRegion___s__r_n
push 0x5f80f8
call fcn.00403a70
add esp, 0xc
push esi
push str.strCurrentProduct.bDefault___d__r_n
push 0x5f80f8
call fcn.00403a70
mov ecx, dword [esp + 0x84]
add esp, 0xc
push ecx
push str.strCurrentProduct.dwRegion__0x_08x__r_n
push 0x5f80f8
call fcn.00403a70
sub esp, 0x1c
mov edx, esp
mov dword [esp + 0x3c], esp
push edx
lea edi, [esp + 0x98]
call fcn.00430600
mov byte [esp + 0x390], 0xc
mov esi, dword [0x5f8120]
call fcn.00467a9c
mov eax, dword [eax + 4]
push esi
push eax
mov byte [esp + 0x398], 0xb
call fcn.0042d050
push 0x5b95a8
lea ecx, [esp + 0xac]
call fcn.00401a30
sub esp, 0x28
mov byte [esp + 0x390], 0xd
mov eax, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00430600
push ecx
mov byte [esp + 0x394], 0xe
mov ecx, esp
mov dword [esp + 0x70], esp
push 0x5b95a8
call fcn.00401a30
lea ecx, [esp + 0x58]
push ecx
mov esi, 1
push esi
push ebx
lea ecx, [esp + 0x244]
mov byte [esp + 0x3a0], 0xd
call fcn.00444790
mov dword [esp + 0x5c], esi
cmp eax, 0xfffffffb
je 0x4411c6
cmp eax, 0xfffffffa
je 0x4411c6
push str.UI_MODE_:_VERSION_CHECK_:_CHECK_CONNECTION__TRUE_r_n
push 0x5f80f8
call fcn.00403a70
jmp 0x4411dd
cmp eax, 2
jne 0x440f73
lea eax, [ebx + 0xa8]
push eax
lea edx, [ebx + 0xb8]
push edx
lea eax, [ebx + 0xb4]
push eax
mov eax, dword [esp + 0x78]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00401ff0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00440150
mov dword [esp + 0x14], vtable.CTimeZoneCheck.0
mov byte [esp + 0x368], 0xa
cmp dword [ebx + 0xa4], edi
jne 0x4411b9
xor esi, esi
call fcn.00454650
cmp eax, 1
jne 0x44119f
mov esi, eax
mov dword [ebx + 0xa4], esi
cmp esi, edi
je 0x4411b9
push 0x5b9b30
lea ecx, [ebx + 0xa8]
call fcn.004019e0
mov byte [esp + 0x368], 6
jmp 0x440f73
push str.UI_MODE_:_VERSION_CHECK_:_CHECK_CONNECTION__FALSE_r_n
push 0x5f80f8
call fcn.00403a70
mov dword [esp + 0x64], 0
mov eax, dword [ebx + 0x18c]
add esp, 8
test eax, eax
je 0x4411fd
mov eax, dword [eax + 0x20]
push 0x32
push 0x14
push 0x2b12
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [esp + 0x28], 0
je 0x441613
lea edi, [esp + 0x20c]
call fcn.00438e20
sub esp, 0x28
mov edx, esp
mov dword [esp + 0x3c], esp
push edx
lea edi, [esp + 0x98]
call fcn.00430600
push ecx
mov byte [esp + 0x394], 0xf
mov ecx, esp
mov dword [esp + 0x70], esp
push 0x5b95a8
call fcn.00401a30
lea eax, [esp + 0x58]
push eax
push 3
push ebx
lea ecx, [esp + 0x244]
mov byte [esp + 0x3a0], 0xd
call fcn.00444790
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x44126d
add dword [0x5f8308], esi
mov dword [esp + 0x24], ecx
test eax, eax
jne 0x4414b3
push str.UI_MODE_:_VERSION_CHECK_:_FIRMWARE__SUCCESS_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
mov edi, 1
lea esi, [ebx + 0x21c]
call fcn.00413c90
cmp dword [esp + 0x24], 0
je 0x441341
push 0x3c
lea ecx, [esp + 0x48]
push ecx
mov ecx, 0x5f8100
mov dword [esp + 0x2d0], edi
mov dword [ebx + 0x118], 0
call fcn.0041bf20
push eax
lea ecx, [esp + 0x2a8]
mov byte [esp + 0x36c], 0x10
call fcn.00401f40
lea ecx, [esp + 0x44]
mov byte [esp + 0x368], 0xd
call fcn.00405900
push 0x3d
lea edx, [esp + 0x48]
push edx
mov ecx, 0x5f8100
call fcn.0041bf20
push eax
lea ecx, [esp + 0x2b4]
mov byte [esp + 0x36c], 0x11
call fcn.00401f40
lea ecx, [esp + 0x44]
mov byte [esp + 0x368], 0xd
call fcn.00405900
lea eax, [esp + 0x20c]
push eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x224], 3
call fcn.004202b0
cmp dword [esp + 0x70], 2
jne 0x441613
lea edi, [esp + 0x20c]
call fcn.00438e20
sub esp, 0x28
mov ecx, esp
mov dword [esp + 0x3c], esp
push ecx
lea edi, [esp + 0x98]
call fcn.00430600
push ecx
mov byte [esp + 0x394], 0x15
mov ecx, esp
mov dword [esp + 0x70], esp
push 0x5b95a8
call fcn.00401a30
lea edx, [esp + 0x58]
push edx
push 5
push ebx
lea ecx, [esp + 0x244]
mov byte [esp + 0x3a0], 0xd
call fcn.00444790
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4413b1
inc dword [0x5f8308]
or dword [esp + 0x24], ecx
test eax, eax
jne 0x441613
push str.UI_MODE_:_VERSION_CHECK_:_NETWORK_FIRMWARE__SUCCESS_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
mov edi, 1
lea esi, [ebx + 0x21c]
call fcn.00413c90
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x5b95a8
call fcn.00401a30
lea esi, [ebx + 0x21c]
call fcn.00413d80
cmp dword [esp + 0x24], 0
je 0x4415ff
push 0x3c
lea eax, [esp + 0x48]
push eax
mov ecx, 0x5f8100
mov dword [esp + 0x2d0], edi
mov dword [ebx + 0x118], 0
call fcn.0041bf20
mov byte [esp + 0x368], 0x16
mov ecx, dword [esp + 0x44]
push ecx
lea edx, [esp + 0x2a8]
push str._s__Network_
push edx
call fcn.00402810
add esp, 0xc
push 0x3d
lea eax, [esp + 0x18]
push eax
mov ecx, 0x5f8100
call fcn.0041bf20
push eax
lea ecx, [esp + 0x2b4]
mov byte [esp + 0x36c], 0x17
call fcn.00401fb0
lea ecx, [esp + 0x14]
mov byte [esp + 0x368], 0x16
call fcn.00405900
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x20c]
push ecx
mov dword [esp + 0x224], 5
call fcn.004202b0
lea ecx, [esp + 0x44]
mov byte [esp + 0x368], 0xd
call fcn.00405900
jmp 0x441613
cmp eax, 0xfffffffc
je 0x4414eb
cmp eax, 0xfffffffb
je 0x4414eb
push eax
push str.UI_MODE_:_VERSION_CHECK_:_FIRMWARE__FAILED__d__r_n
push 0x5f80f8
call fcn.00403a70
mov edi, 1
add esp, 0xc
lea esi, [ebx + 0x21c]
mov dword [ebx + 0x118], edi
call fcn.00413c90
jmp 0x441341
push eax
push str.UI_MODE_:_VERSION_CHECK_:_FIRMWARE__FAILED__d__r_n
push 0x5f80f8
call fcn.00403a70
add esp, 0xc
xor edi, edi
lea esi, [ebx + 0x21c]
mov dword [ebx + 0x118], 1
call fcn.00413c90
push 0x32
lea ecx, [esp + 0x48]
push ecx
mov ecx, 0x5f8100
call fcn.0041bf20
lea ecx, [esp + 0x28]
call fcn.00401c70
push 0x3e
lea edx, [esp + 0x18]
push edx
mov ecx, 0x5f8100
mov byte [esp + 0x370], 0x13
call fcn.0041bf20
mov byte [esp + 0x368], 0x14
mov ecx, dword [esp + 0x44]
mov eax, dword [eax]
push ecx
push eax
lea edx, [esp + 0x30]
push edx
call fcn.00402810
mov byte [esp + 0x374], 0x13
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44158d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x28]
push ecx
add edi, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push edi
call fcn.00401ff0
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea esi, [ebx + 0x21c]
call fcn.00413d80
mov byte [esp + 0x368], 0x12
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4415d5
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov byte [esp + 0x368], 0xd
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x441613
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x441613
push 0
push str.UI_MODE_:_VERSION_CHECK_:_NETWORK_FIRMWARE__FAILED__d__r_n
push 0x5f80f8
call fcn.00403a70
add esp, 0xc
cmp dword [ebx + 0xcac], 0
jne 0x44162b
mov dword [ebx + 0xcac], 1
jmp 0x4416d2
push 0x5b95a8
lea ecx, [esp + 0x2c]
call fcn.00401a30
lea esi, [esp + 0x44]
call fcn.00436cd0
mov byte [esp + 0x368], 0x19
mov eax, dword [esp + 0x70]
sub eax, 2
je 0x441665
lea eax, [ebx + 0xbc]
push eax
lea ecx, [esp + 0x2c]
call fcn.00401f40
jmp 0x441688
lea edx, [esp + 0x28]
push edx
lea edi, [esp + 0x90]
call fcn.00437d30
test eax, eax
jne 0x441688
push 0x5b95a8
lea ecx, [esp + 0x2c]
call fcn.004019e0
mov eax, dword [esp + 0x28]
cmp dword [eax - 0xc], 0
je 0x4416a1
lea ecx, [esp + 0x28]
push ecx
mov ecx, 0x5f844c
call fcn.00406a40
lea esi, [esp + 0x44]
call fcn.00409820
mov byte [esp + 0x368], 0xd
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4416d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebx + 0x18c]
test eax, eax
je 0x4416ef
mov eax, dword [eax + 0x20]
push 0x46
push 0x32
push 0x2b12
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [esp + 0x5c], 0
je 0x4419cc
cmp dword [esp + 0x70], 3
jne 0x4419cc
cmp dword [ebx + 0x38c], 0
jne 0x4419cc
lea edi, [esp + 0x20c]
call fcn.00438e20
sub esp, 0x28
mov ecx, esp
mov dword [esp + 0x3c], esp
push ecx
lea edi, [esp + 0x98]
call fcn.00430600
push ecx
mov byte [esp + 0x394], 0x1a
mov ecx, esp
mov dword [esp + 0x70], esp
push 0x5b95a8
call fcn.00401a30
lea edx, [esp + 0x58]
push edx
mov esi, 1
push esi
push ebx
lea ecx, [esp + 0x244]
mov byte [esp + 0x3a0], 0xd
call fcn.00444790
mov ecx, dword [esp + 0x2c]
or dword [esp + 0x24], ecx
test ecx, ecx
je 0x44177f
add dword [0x5f8310], esi
test eax, eax
jne 0x4419b9
push str.UI_MODE_:_VERSION_CHECK_:_PRINTER_DRIVER__SUCCESS_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
push 0x38
lea eax, [esp + 0x18]
push eax
mov ecx, 0x5f8100
call fcn.0041bf20
push eax
lea ecx, [esp + 0x2a8]
mov byte [esp + 0x36c], 0x1b
call fcn.00401fb0
lea ecx, [esp + 0x14]
mov byte [esp + 0x368], 0xd
call fcn.00405900
push 0x39
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5f8100
call fcn.0041bf20
push eax
lea ecx, [esp + 0x2b4]
mov byte [esp + 0x36c], 0x1c
call fcn.00401fb0
lea ecx, [esp + 0x14]
mov byte [esp + 0x368], 0xd
call fcn.00405900
cmp dword [esp + 0x2c0], esi
jne 0x44181b
mov edx, dword [esp + 0x248]
mov dword [esp + 0x20], edx
lea eax, [esp + 0xd4]
push eax
call fcn.00438c50
sub esp, 0x28
mov byte [esp + 0x390], 0x1d
mov ecx, esp
mov dword [esp + 0x3c], esp
push ecx
lea edi, [esp + 0x98]
call fcn.00430600
push ecx
mov byte [esp + 0x394], 0x1e
lea edx, [esp + 0x2d4]
mov ecx, esp
mov dword [esp + 0x70], esp
push edx
call fcn.00402060
lea eax, [esp + 0x58]
push eax
push 4
push ebx
lea ecx, [esp + 0x10c]
mov byte [esp + 0x3a0], 0x1d
call fcn.00444790
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x44188c
add dword [0x5f8318], esi
or dword [esp + 0x24], ecx
test eax, eax
jne 0x44195e
push str.UI_MODE_:_VERSION_CHECK_:_PRINTER_DRIVER_PATCH__SUCCESS_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
lea ecx, [esp + 0x170]
push ecx
lea ecx, [esp + 0x2ac]
call fcn.00401f40
cmp dword [esp + 0x188], esi
lea esi, [esp + 0x250]
jne 0x44191d
mov edi, 1
lea eax, [esp + 0xd4]
mov dword [esp + 0x294], edi
call fcn.00420d30
mov edx, dword [esp + 0x110]
add dword [esp + 0x20], edx
cmp dword [esp + 0x2c0], 0
mov eax, dword [esp + 0x188]
jne 0x44190d
test eax, eax
je 0x44190d
mov dword [esp + 0x298], edi
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2c0], eax
jmp 0x441948
mov eax, dword [esp + 0x248]
mov ecx, dword [esp + 0x110]
add ecx, eax
lea eax, [esp + 0xd4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x294], 1
call fcn.00420d30
lea edx, [esp + 0x17c]
push edx
lea ecx, [esp + 0x2b8]
call fcn.00401f40
jmp 0x441987
push eax
push str.UI_MODE_:_VERSION_CHECK_:_PRINTER_DRIVER_PATCH__FAILED__d__r_n
push 0x5f80f8
call fcn.00403a70
mov eax, dword [esp + 0x254]
add esp, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0x294], 0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x20c]
push edx
mov dword [esp + 0x2c0], ecx
call fcn.004202b0
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0xd
call fcn.00420460
jmp 0x4419cc
push eax
push str.UI_MODE_:_VERSION_CHECK_:_PRINTER_DRIVER__FAILED__d__r_n
push 0x5f80f8
call fcn.00403a70
add esp, 0xc
mov eax, dword [ebx + 0x18c]
test eax, eax
je 0x4419e9
mov eax, dword [eax + 0x20]
push 0x50
push 0x46
push 0x2b12
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [esp + 0x1c], 0
je 0x441b22
cmp dword [esp + 0x5c], 0
je 0x441b22
cmp dword [ebx + 0x38c], 0
jne 0x441b22
lea edi, [esp + 0x20c]
call fcn.00438e20
sub esp, 0x28
mov eax, esp
mov dword [esp + 0x3c], esp
push eax
lea edi, [esp + 0x98]
call fcn.00430600
push ecx
mov byte [esp + 0x394], 0x1f
mov ecx, esp
mov dword [esp + 0x70], esp
push 0x5b95a8
call fcn.00401a30
lea ecx, [esp + 0x238]
push ecx
lea ecx, [esp + 0x5c]
mov edx, ebx
mov byte [esp + 0x398], 0xd
call fcn.00444cc0
mov ecx, dword [esp + 0x2c]
or dword [esp + 0x24], ecx
test ecx, ecx
je 0x441a74
inc dword [0x5f8320]
test eax, eax
jne 0x441b0f
push str.UI_MODE_:_VERSION_CHECK_:_SCANNER_DRIVER__SUCCESS_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
push 0x3a
lea edx, [esp + 0x18]
push edx
mov ecx, 0x5f8100
call fcn.0041bf20
push eax
lea ecx, [esp + 0x2a8]
mov byte [esp + 0x36c], 0x20
call fcn.00401fb0
lea ecx, [esp + 0x14]
mov byte [esp + 0x368], 0xd
call fcn.00405900
push 0x3b
lea eax, [esp + 0x18]
push eax
mov ecx, 0x5f8100
call fcn.0041bf20
push eax
lea ecx, [esp + 0x2b4]
mov byte [esp + 0x36c], 0x21
call fcn.00401fb0
lea ecx, [esp + 0x14]
mov byte [esp + 0x368], 0xd
call fcn.00405900
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x20c]
push ecx
call fcn.004202b0
jmp 0x441b22
push eax
push str.UI_MODE_:_VERSION_CHECK_:_SCANNER_DRIVER__FAILED__d__r_n
push 0x5f80f8
call fcn.00403a70
add esp, 0xc
mov eax, dword [ebx + 0x18c]
xor esi, esi
cmp eax, esi
je 0x441b41
mov eax, dword [eax + 0x20]
push 0x5f
push 0x50
push 0x2b12
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, ebx
call fcn.00434670
cmp dword [ebx + 0xa4], esi
jne 0x441c47
cmp dword [esp + 0x5c], esi
je 0x441c47
cmp dword [ebx + 0x38c], esi
jne 0x441c47
lea edi, [esp + 0x20c]
call fcn.00438e20
mov dword [esp + 0x30], vtable.CArray_class_CSoftwareDispInfo__class_CSoftwareDispInfo__.0
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], esi
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x36c], 0x22
call fcn.00420240
mov eax, edi
push eax
lea eax, [esp + 0x34]
call fcn.004202b0
sub esp, 0x28
mov ecx, esp
mov dword [esp + 0x3c], esp
push ecx
lea edi, [esp + 0x98]
call fcn.00430600
push ebx
lea ecx, [esp + 0x5c]
call fcn.00433030
cmp eax, esi
jne 0x441bfc
push str.UI_MODE_:_VERSION_CHECK_:_MANUAL__SUCCESS_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
cmp dword [esp + 0x38], esi
jle 0x440de9
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x60]
push edx
call fcn.004202b0
jmp 0x441c0f
push eax
push str.UI_MODE_:_VERSION_CHECK_:_MANUAL__FAILED__d__r_n
push 0x5f80f8
call fcn.00403a70
add esp, 0xc
cmp dword [esp + 0x38], esi
jle 0x440de9
mov eax, dword [esp + 0x34]
mov ecx, 1
cmp dword [eax + 0xb8], ecx
jne 0x441c36
cmp dword [eax + 0xbc], ecx
jne 0x441c36
mov dword [esp + 0x24], ecx
lea edi, [esp + 0x30]
mov byte [esp + 0x368], 0xd
call fcn.004202f0
call fcn.00411120
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x58]
mov eax, dword [eax - 0xc]
cmp eax, esi
je 0x4428e1
mov ecx, dword [ebx + 0x388]
cmp dword [ecx - 0xc], esi
jne 0x441f24
cmp dword [esp + 0x5c], esi
je 0x4428e1
cmp dword [ebx + 0x38c], esi
jne 0x4428e1
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.PRSCPRAIOPRINKPRLFPPRLA
call fcn.00401a30
push ecx
mov byte [esp + 0x370], 0x23
lea edx, [esp + 0x60]
mov ecx, esp
mov dword [esp + 0x4c], esp
push edx
call fcn.00402060
lea edi, [esp + 0x28]
mov byte [esp + 0x370], 0xd
call fcn.00432f30
mov byte [esp + 0x368], 0x24
mov eax, dword [esp + 0x20]
push eax
push str.UI_MODE_:_VERSION_CHECK_:_APPLICATION_LIST___s__r_n
push 0x5f80f8
call fcn.00403a70
add esp, 0xc
mov dword [esp + 0x30], vtable.CArray_struct__TARGETINFO__struct__TARGETINFO__.0
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], esi
xor eax, eax
lea edi, [esp + 0x30]
mov byte [esp + 0x368], 0x25
call fcn.004365a0
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.00402060
mov ecx, edi
mov edx, ebx
call fcn.0042e9b0
mov dword [esp + 0x44], eax
mov dword [esp + 0x94], vtable.CArray_class_CSoftwareDispInfo__class_CSoftwareDispInfo__.0
mov dword [esp + 0x98], esi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0x9c], esi
lea eax, [esp + 0x94]
push eax
mov byte [esp + 0x36c], 0x26
call fcn.00420240
call fcn.00467a9c
mov eax, dword [eax + 4]
cmp dword [eax + 0x264], esi
je 0x441dff
lea ecx, [esp + 0xd4]
push ecx
call fcn.00438c50
mov byte [esp + 0x368], 0x27
mov eax, dword [esp + 0x78]
test eax, 0x100000
je 0x441db2
push str.Usage_Panel_JP
lea ecx, [esp + 0xf0]
call fcn.004019e0
lea edx, [esp + 0xd4]
push edx
jmp 0x441dd2
test eax, 0x10ffff0
je 0x441de9
push str.Usage_Panel_WW
lea ecx, [esp + 0xf0]
call fcn.004019e0
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x98]
mov dword [esp + 0xf4], 0x3d
call fcn.004202b0
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x26
call fcn.00420460
xor esi, esi
xor edi, edi
cmp dword [esp + 0x44], esi
jle 0x441ea1
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
lea edx, [esp + 0xd4]
push edx
call fcn.00438c50
mov byte [esp + 0x368], 0x28
test edi, edi
jl 0x440de9
cmp edi, dword [esp + 0x38]
jge 0x440de9
mov esi, dword [esp + 0x1c]
push esi
lea ecx, [esp + 0xf0]
call fcn.00401f40
mov eax, dword [esi + 4]
push eax
call fcn.00559805
mov dword [esp + 0xf4], eax
add esp, 4
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x98]
mov dword [esp + 0xec], 0x270f
call fcn.004202b0
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x26
call fcn.00420460
add dword [esp + 0x1c], 8
inc edi
cmp edi, dword [esp + 0x44]
jl 0x441e13
sub esp, 0x28
mov ecx, esp
mov dword [esp + 0x3c], esp
push ecx
lea edi, [esp + 0x98]
call fcn.00430600
mov edx, dword [esp + 0x50]
mov eax, dword [ebx + 0x118]
push edx
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0xc8]
push edx
push ebx
call fcn.00443180
mov eax, dword [esp + 0x2c]
or dword [esp + 0x24], eax
lea edi, [esp + 0x94]
call fcn.004202f0
lea ebx, [esp + 0x30]
call fcn.0044c480
mov byte [esp + 0x368], 0xd
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4428dc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4428dc
lea ecx, [esp + 0x348]
push ecx
call fcn.00422e50
lea ecx, [esp + 0xc0]
mov byte [esp + 0x368], 0x29
call fcn.0046bbb6
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0xc8]
mov byte [esp + 0x370], 0x2a
call fcn.0046bc37
mov eax, dword [ebx + 0x388]
lea edx, [esp + 0xc0]
push edx
push ecx
sub eax, 0x10
mov dword [esp + 0x1c], esp
mov edi, esp
push eax
call fcn.00401ff0
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.00422eb0
mov dword [ebx + 0x84], eax
mov dword [esp + 0x30], vtable.CArray_class_CSoftwareDispInfo__class_CSoftwareDispInfo__.0
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], esi
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x36c], 0x2b
call fcn.00420240
mov eax, dword [ebx + 0x84]
cmp eax, esi
jbe 0x442072
mov dword [esp + 0x1c], esi
jle 0x442072
jmp 0x441fd5
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0xd4]
push ecx
call fcn.00438c50
mov byte [esp + 0x368], 0x2c
test esi, esi
jl 0x440de9
cmp esi, dword [esp + 0xc8]
jge 0x440de9
mov edx, dword [esp + 0xc4]
lea eax, [edx + esi*4]
push eax
lea ecx, [esp + 0xe4]
call fcn.00401f40
mov eax, dword [esp + 0x38]
mov edi, eax
test eax, eax
jl 0x440de9
lea ecx, [eax + 1]
lea eax, [esp + 0x30]
push eax
call fcn.004207b0
imul edi, edi, 0x138
add edi, dword [esp + 0x34]
lea ebx, [esp + 0xd4]
call fcn.00420b40
mov esi, ebx
mov byte [esp + 0x368], 0x2b
call fcn.00420460
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
inc eax
cmp eax, dword [ecx + 0x84]
mov dword [esp + 0x1c], eax
jl 0x441fd1
mov ebx, ecx
xor esi, esi
mov dword [esp + 0xac], vtable.CArray_struct__TARGETINFO__struct__TARGETINFO__.0
mov dword [esp + 0xb0], esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xb4], esi
xor eax, eax
lea edi, [esp + 0xac]
mov byte [esp + 0x368], 0x2d
call fcn.004365a0
cmp dword [ebx + 0x84], esi
jbe 0x4425bd
sub esp, 0x28
mov edx, esp
mov dword [esp + 0x3c], esp
push edx
lea edi, [esp + 0x98]
call fcn.00430600
xor eax, eax
cmp dword [ebx + 0x38c], esi
sete al
push eax
push ebx
lea ebx, [esp + 0x60]
call fcn.004306c0
mov ecx, dword [ebp + 8]
xor ebx, ebx
cmp dword [ecx + 0x84], ebx
jbe 0x4425b9
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x1c]
test eax, eax
jl 0x440de9
cmp ebx, dword [esp + 0x38]
jge 0x440de9
mov edx, dword [esp + 0x34]
lea edi, [edx + eax]
lea eax, [esp + 0xd4]
push eax
call fcn.00442da0
mov byte [esp + 0x368], 0x2e
cmp dword [esp + 0x194], 0
je 0x44215d
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x118], 0
je 0x44215d
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x2d
call fcn.00420460
jmp 0x44259d
cmp dword [esp + 0x1a8], 0
mov eax, dword [esp + 0x190]
jne 0x442195
cmp dword [esp + 0x188], 0
jne 0x442195
test eax, eax
jne 0x442195
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x2d
call fcn.00420460
jmp 0x44259d
mov esi, dword [ebp + 8]
cmp dword [esi + 0x2e0], 1
je 0x4421c4
cmp dword [esp + 0x198], 0
je 0x4421c4
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x2d
call fcn.00420460
jmp 0x44259d
cmp dword [esp + 0x1a0], 0
je 0x4421eb
test eax, eax
jne 0x4421eb
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x2d
call fcn.00420460
jmp 0x44259d
cmp dword [esp + 0x28], 0
je 0x442215
cmp dword [esp + 0x1a4], 0
jne 0x442215
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x2d
call fcn.00420460
jmp 0x44259d
cmp dword [esp + 0x1b8], 0
jne 0x442238
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x2d
call fcn.00420460
jmp 0x44259d
call fcn.00467a9c
mov eax, dword [eax + 4]
call fcn.0043b990
cmp dword [esp + 0x1c0], 0
je 0x44226c
test eax, eax
jne 0x44226c
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x2d
call fcn.00420460
jmp 0x44259d
cmp dword [esp + 0x1c4], 0xffffffff
je 0x4422f0
push 0x5b95a8
lea ecx, [esp + 0x24]
call fcn.00401a30
lea edx, [esp + 0x20]
push edx
push 0x3fc
mov ecx, esi
mov byte [esp + 0x370], 0x2f
call fcn.00465eae
mov ecx, eax
call fcn.00464199
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00402060
mov ecx, dword [esp + 0x1c8]
push ecx
call fcn.004101c0
add esp, 8
lea ecx, [esp + 0x20]
test eax, eax
jne 0x4422eb
call fcn.00405900
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x2d
call fcn.00420460
jmp 0x44259d
call fcn.00405900
cmp dword [esp + 0x1c8], 0
lea esi, [esp + 0xd4]
je 0x442313
mov byte [esp + 0x368], 0x2d
call fcn.00420460
jmp 0x44259d
call fcn.00420460
lea esi, [esp + 0x44]
call fcn.00426b10
mov eax, ebx
lea ecx, [esp + 0x30]
mov byte [esp + 0x368], 0x30
call fcn.00420290
mov edx, dword [eax + 0x1c]
push edx
lea eax, [esp + 0x4c]
push 0x5b9350
push eax
call fcn.00402810
add esp, 0xc
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
add eax, 0x18
push eax
mov ecx, esi
call fcn.00401fb0
mov eax, esi
lea ecx, [esp + 0xac]
call fcn.004364d0
xor edi, edi
cmp dword [0x5f83ac], edi
je 0x4423e0
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
mov esi, eax
mov eax, dword [esi + 0x18]
add esi, 0x18
cmp dword [eax - 0xc], edi
jl 0x4423e0
push str.Usage_Panel
push eax
call fcn.005592d8
add esp, 8
cmp eax, edi
je 0x4423e0
sub eax, dword [esi]
sar eax, 1
js 0x4423e0
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
mov esi, 1
mov dword [eax + 0xb8], esi
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
mov dword [eax + 0xb4], esi
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
mov dword [eax + 0xbc], edi
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
cmp dword [eax + 0xb4], edi
je 0x442420
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
cmp dword [eax + 0xbc], edi
je 0x442420
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
mov dword [eax + 0xb8], 1
jmp 0x442549
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
cmp dword [eax + 0xb4], edi
je 0x442538
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
cmp dword [eax + 0xbc], edi
jne 0x442538
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
cmp dword [eax + 0xc8], edi
je 0x4424a4
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
cmp dword [eax + 0xe0], edi
jne 0x4424a4
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
cmp dword [eax + 0xe8], edi
je 0x44248d
cmp dword [esp + 0x5c], edi
jne 0x4424a4
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
mov dword [eax + 0xb8], 1
jmp 0x4424b5
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
mov dword [eax + 0xb8], edi
call fcn.00467a9c
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0xcc]
cmp dword [ecx + 0x4c], edi
je 0x442549
push 0x5c1920
mov eax, ebx
lea ecx, [esp + 0x34]
call fcn.00420290
mov ecx, eax
add ecx, 0x18
call fcn.00406000
test eax, eax
je 0x442538
push 0x5c1928
mov eax, ebx
lea ecx, [esp + 0x34]
call fcn.00420290
mov ecx, eax
add ecx, 0x18
call fcn.00406000
test eax, eax
je 0x442538
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
mov esi, eax
mov eax, dword [esi + 0x18]
add esi, 0x18
cmp dword [eax - 0xc], edi
jl 0x442549
push str.Usage_Panel
push eax
call fcn.005592d8
add esp, 8
cmp eax, edi
je 0x442549
sub eax, dword [esi]
sar eax, 1
js 0x442549
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
mov dword [eax + 0xb8], edi
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
push eax
mov eax, dword [esp + 0x64]
call fcn.004202b0
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
cmp dword [eax + 0xbc], edi
je 0x44258c
mov eax, ebx
lea ecx, [esp + 0x30]
call fcn.00420290
cmp dword [eax + 0xb4], edi
je 0x44258c
mov dword [esp + 0x24], 1
lea esi, [esp + 0x44]
mov byte [esp + 0x368], 0x2d
call fcn.00409820
mov edx, dword [ebp + 8]
add dword [esp + 0x1c], 0x138
inc ebx
cmp ebx, dword [edx + 0x84]
jb 0x4420fc
mov ebx, edx
jmp 0x4425bb
mov ebx, ecx
xor esi, esi
cmp dword [ebx + 0x38c], esi
jne 0x44289f
cmp dword [esp + 0x5c], esi
je 0x44289f
mov dword [esp + 0x94], vtable.CArray_struct__TARGETINFO__struct__TARGETINFO__.0
mov dword [esp + 0x98], esi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0x9c], esi
xor eax, eax
lea edi, [esp + 0x94]
mov byte [esp + 0x368], 0x31
call fcn.004365a0
mov eax, edi
push eax
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0xb0]
push ecx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x20], esp
mov edi, esp
push eax
call fcn.00401ff0
add esp, 4
add eax, 0x10
push ebx
mov dword [edi], eax
call fcn.00444f40
mov dword [esp + 0x44], vtable.CArray_class_CSoftwareDispInfo__class_CSoftwareDispInfo__.0
mov dword [esp + 0x48], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], esi
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0x36c], 0x32
call fcn.00420240
call fcn.00467a9c
mov eax, dword [eax + 4]
cmp dword [eax + 0x264], esi
je 0x442700
lea eax, [esp + 0xd4]
push eax
call fcn.00438c50
mov byte [esp + 0x368], 0x33
mov eax, dword [esp + 0x78]
test eax, 0x100000
je 0x4426b6
push str.Usage_Panel_JP
lea ecx, [esp + 0xf0]
call fcn.004019e0
lea ecx, [esp + 0xd4]
push ecx
jmp 0x4426d6
test eax, 0x10ffff0
je 0x4426ea
push str.Usage_Panel_WW
lea ecx, [esp + 0xf0]
call fcn.004019e0
lea edx, [esp + 0xd4]
push edx
lea eax, [esp + 0x48]
mov dword [esp + 0xf4], 0x3d
call fcn.004202b0
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x32
call fcn.00420460
xor esi, esi
call fcn.00467a9c
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xcc]
cmp dword [eax + 0xa4], esi
je 0x442776
cmp dword [ebx + 0xca8], esi
jne 0x442776
lea ecx, [esp + 0xd4]
push ecx
call fcn.00438c50
push str.PLogLP
lea ecx, [esp + 0xf0]
mov byte [esp + 0x36c], 0x34
call fcn.004019e0
lea edx, [esp + 0xd4]
push edx
lea eax, [esp + 0x48]
mov dword [esp + 0xf4], 0x3d
call fcn.004202b0
lea esi, [esp + 0xd4]
mov byte [esp + 0x368], 0x32
call fcn.00420460
xor esi, esi
xor edi, edi
cmp dword [esp + 0x9c], esi
mov dword [esp + 0x1c], edi
jle 0x442850
mov esi, dword [esp + 0x98]
mov dword [esp + 0x20], esi
jmp 0x4427a8
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0xd4]
push eax
call fcn.00438c50
mov byte [esp + 0x368], 0x35
test edi, edi
jl 0x440de9
cmp edi, dword [esp + 0x9c]
jge 0x440de9
push esi
lea ecx, [esp + 0xf0]
call fcn.00401f40
mov eax, dword [esi + 4]
push eax
call fcn.00559805
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x50]
add esp, 4
mov edi, eax
test eax, eax
jl 0x440de9
lea edx, [esp + 0x44]
lea ecx, [eax + 1]
push edx
call fcn.004207b0
imul edi, edi, 0x138
add edi, dword [esp + 0x48]
lea ebx, [esp + 0xd4]
call fcn.00420b40
mov esi, ebx
mov byte [esp + 0x368], 0x32
call fcn.00420460
mov eax, dword [esp + 0x1c]
add dword [esp + 0x20], 8
inc eax
cmp eax, dword [esp + 0x9c]
mov dword [esp + 0x1c], eax
jl 0x4427a0
mov ebx, dword [ebp + 8]
sub esp, 0x28
mov eax, esp
mov dword [esp + 0x3c], esp
push eax
lea edi, [esp + 0x98]
call fcn.00430600
mov ecx, dword [esp + 0x50]
mov edx, dword [ebx + 0x118]
push ecx
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x78]
push ecx
push ebx
call fcn.00443180
mov edx, dword [esp + 0x2c]
or dword [esp + 0x24], edx
lea edi, [esp + 0x44]
call fcn.004202f0
lea ebx, [esp + 0x94]
call fcn.0044c480
lea ebx, [esp + 0xac]
call fcn.0044c480
lea edi, [esp + 0x30]
call fcn.004202f0
lea ecx, [esp + 0xc0]
mov byte [esp + 0x368], 0x29
call fcn.0046bde2
lea edi, [esp + 0x348]
mov byte [esp + 0x368], 0xd
call fcn.004202f0
mov ebx, dword [ebp + 8]
xor esi, esi
mov eax, dword [ebx + 0x18c]
cmp eax, esi
je 0x4428fe
mov eax, dword [eax + 0x20]
push 0x64
push 0x64
push 0x2b12
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
xor ecx, ecx
cmp dword [ebx + 0x90], esi
jle 0x442941
mov edi, dword [esp + 0x60]
xor edx, edx
mov edi, edi
cmp edx, esi
jl 0x440de9
cmp ecx, dword [edi + 8]
jge 0x440de9
mov eax, dword [edi + 4]
add eax, edx
cmp dword [eax + 0xb4], esi
jne 0x442a95
inc ecx
add edx, 0x138
cmp ecx, dword [ebx + 0x90]
jl 0x442910
cmp dword [ebx + 0x38c], esi
je 0x4429a0
mov eax, dword [ebx + 0xa0]
lea edi, [ebx + 0xa0]
cmp dword [eax - 0xc], esi
jne 0x442a95
push 0x66
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5f8100
call fcn.0041bf20
push eax
mov ecx, edi
mov byte [esp + 0x36c], 0x36
call fcn.00401f40
mov byte [esp + 0x368], 0xd
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x442a89
cmp dword [esp + 0x5c], esi
je 0x4429ed
mov ecx, dword [ebx + 0xa0]
lea edi, [ebx + 0xa0]
cmp dword [ecx - 0xc], esi
jne 0x442a95
push 0x66
lea edx, [esp + 0x18]
push edx
mov ecx, 0x5f8100
call fcn.0041bf20
push eax
mov ecx, edi
mov byte [esp + 0x36c], 0x37
call fcn.00401f40
mov byte [esp + 0x368], 0xd
mov eax, dword [esp + 0x14]
jmp 0x442a79
mov ecx, dword [ebx + 0xa0]
cmp dword [ecx - 0xc], esi
jne 0x442a95
push 0x32
lea edx, [esp + 0x24]
push edx
mov ecx, 0x5f8100
call fcn.0041bf20
mov edi, eax
push 0x19
lea eax, [esp + 0x18]
push eax
mov ecx, 0x5f8100
mov byte [esp + 0x370], 0x38
call fcn.0041bf20
mov byte [esp + 0x368], 0x39
mov ecx, dword [edi]
mov eax, dword [eax]
push ecx
push eax
lea eax, [ebx + 0xa0]
push eax
call fcn.00402810
mov byte [esp + 0x374], 0x38
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x442a6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x368], 0xd
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442a95
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.UI_MODE_:_VERSION_CHECK_:_END_r_n
push 0x5f80f8
call fcn.00403a70
mov ecx, dword [ebx + 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
add esp, 8
push 1
push esi
push 0x2b18
push ecx
call edi
mov edx, dword [ebx + 0x20]
push esi
push esi
push 0x2b19
push edx
call edi
mov eax, dword [ebx + 0x20]
push esi
push esi
push 0x2b1b
push eax
call edi
push 0x3fc
mov ecx, ebx
call fcn.00465eae
mov ecx, dword [eax + 0x20]
push esi
push esi
push 0x147
push ecx
lea edi, [ebx + 0x404]
call dword [sym.imp.USER32.dll_SendMessageW]
dec eax
push eax
push edi
call fcn.00453ab0
push 0x3fc
mov ecx, ebx
call fcn.00465eae
mov edx, dword [eax + 0x20]
push esi
push esi
push 0x147
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, eax
dec ecx
mov ebx, edi
call fcn.00452150
mov byte [esp + 0x368], 0xb
mov eax, dword [esp + 0xa8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442b52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x20c]
call fcn.00420460
mov byte [esp + 0x368], 5
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442b86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x6c]
call fcn.0042d520
mov byte [esp + 0x368], 0
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442bb7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x368], 0xffffffff
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442be2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x360]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x290]
push 0x200
push edi
push 0x418
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebx + 0x2e0], 2
cmp dword [ebx + 0x2f0], edi
je 0x442c75
mov eax, dword [ebx + 0x2f0]
cmp eax, edi
je 0x442c75
push eax
mov dword [ebx + 0x2f0], edi
mov dword [ebx + 0x2f4], edi
mov dword [ebx + 0x2f8], edi
mov dword [ebx + 0x2fc], edi
mov dword [ebx + 0x304], edi
mov dword [ebx + 0x300], edi
mov dword [ebx + 0x30c], 0xffffffff
mov byte [ebx + 0x309], 0
mov byte [ebx + 0x308], 0
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0xd5
lea edx, [ebx + 0x2ec]
push edx
call fcn.0040c060
mov eax, dword [ebx + 0x23c]
push 1
push edi
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
push edi
lea ecx, [ebx + 0xbbc]
call fcn.004660f8
mov ecx, dword [ebx + 0x20]
push edi
push edi
push 0x2b18
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
lea esi, [esp + 0x6c]
call fcn.0042d520
mov byte [esp + 0x368], 0
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x442ce4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x368], 0xffffffff
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x442d0f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x360]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4