Function at 0x4724b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov dword [esp + 8], edx
mov esi, ecx
mov eax, dword [0x5ff014]
xor eax, ebp
mov dword [esp + 0x88], eax
xor eax, eax
dec eax
lea edi, [esp + 0x6c]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
call fcn.005597a0
push eax
push esi
push edi
call fcn.0055b680
add esp, 0xc
mov edi, 0x5e7d68
lea ebx, [esp + 0x78]
push esi
push edi
push ebx
call fcn.00534930
add esp, 0xc
mov ecx, ebx
push edi
call fcn.004433e0
mov ecx, dword [eax + 8]
mov dword [esp + 0x68], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x60], xmm0
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax], ecx
cmp byte [ebx + 0xb], 0
jns 0x47253b
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
lea ebx, [esp + 0x54]
xor eax, eax
dec eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov ecx, ebx
mov edx, dword [esp + 8]
call fcn.0055cf10
lea edi, [esp + 0x78]
push edi
call fcn.004777d0
add esp, 4
push 0x30
call fcn.00503d75
add esp, 4
mov esi, eax
mov ecx, eax
push edi
mov dword [esp + 4], ebx
push ebx
call fcn.00574a00
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp edi, eax
jae 0x472595
mov dword [edi], esi
add edi, 4
mov dword [ecx + 4], edi
jmp 0x47261c
mov edx, dword [ecx]
sub edi, edx
sar edi, 2
lea ecx, [edi + 1]
cmp ecx, 0x40000000
jae 0x4746ec
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov ebx, 0x3fffffff
cmovb ebx, eax
xor eax, eax
test ebx, ebx
je 0x4725e9
cmp ebx, 0x40000000
jae 0x4746fd
lea eax, [ebx*4]
push eax
call fcn.00503d75
add esp, 4
lea edx, [eax + edi*4]
lea ebx, [eax + ebx*4]
mov dword [edx], esi
lea eax, [eax + edi*4]
add eax, 4
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp edi, ecx
jne 0x473420
mov dword [esi], edx
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
test edi, edi
je 0x47261c
push edi
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x83], 0
jns 0x472632
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov ecx, dword [str._shellopencommand]
xor eax, eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], eax
movzx ebx, byte [esp + 0x5f]
mov esi, ebx
test bl, bl
jns 0x472658
mov esi, dword [esp + 0x58]
mov dword [esp + 4], ecx
push ecx
call fcn.0051f544
add esp, 4
mov ecx, eax
test bl, bl
jns 0x472672
mov eax, dword [esp + 0x54]
mov dword [esp], eax
lea edi, [esi + ecx]
cmp edi, 0x7ffffff0
jae 0x47470b
cmp edi, 4
mov dword [esp + 0xc], ecx
ja 0x472695
mov eax, esi
lea ebx, [esp + 0x78]
mov byte [ebx + 0xb], al
jmp 0x4726c0
add edi, 8
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
call fcn.00503d75
add esp, 4
mov ebx, eax
mov eax, esi
mov dword [esp + 0x78], ebx
or edi, 0x80000000
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], esi
test eax, eax
je 0x4726d7
lea eax, [esi + esi]
push eax
push dword [esp + 4]
push ebx
call fcn.00507560
mov eax, esi
add esp, 0xc
mov word [ebx + eax*2], 0
lea edi, [esp + 0x78]
mov ecx, edi
push dword [esp + 0xc]
push dword [esp + 8]
call fcn.004db260
push 0x30
call fcn.00503d75
add esp, 4
mov esi, eax
lea eax, [esp + 0x60]
mov ecx, esi
mov dword [esp], eax
push eax
push edi
call fcn.00574a00
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp edi, eax
jae 0x472726
mov dword [edi], esi
add edi, 4
mov dword [ecx + 4], edi
jmp 0x4727ad
mov edx, dword [ecx]
sub edi, edx
sar edi, 2
lea ecx, [edi + 1]
cmp ecx, 0x40000000
jae 0x4746ec
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov ebx, 0x3fffffff
cmovb ebx, eax
xor eax, eax
test ebx, ebx
je 0x47277a
cmp ebx, 0x40000000
jae 0x4746fd
lea eax, [ebx*4]
push eax
call fcn.00503d75
add esp, 4
lea edx, [eax + edi*4]
lea ebx, [eax + ebx*4]
mov dword [edx], esi
lea eax, [eax + edi*4]
add eax, 4
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp edi, ecx
jne 0x4734a7
mov dword [esi], edx
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
test edi, edi
je 0x4727ad
push edi
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x83], 0
jns 0x4727c3
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov edi, dword [str.DefaultIcon]
xor eax, eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], eax
movzx ebx, byte [esp + 0x5f]
mov eax, ebx
test bl, bl
jns 0x4727e9
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
push edi
call fcn.0051f544
add esp, 4
mov edx, eax
test bl, bl
jns 0x472802
mov ecx, dword [esp + 0x54]
jmp 0x472806
lea ecx, [esp + 0x54]
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 4]
lea esi, [eax + edx]
cmp esi, 0x7ffffff0
jae 0x47470b
mov dword [esp + 0xc], edi
cmp esi, 4
ja 0x47282e
lea edi, [esp + 0x78]
mov byte [edi + 0xb], al
jmp 0x472866
add esi, 8
and esi, 0xfffffff8
lea eax, [esi + esi]
push eax
mov edi, edx
mov ebx, ecx
call fcn.00503d75
mov ecx, ebx
mov ebx, dword [ebp + 8]
mov edx, edi
add esp, 4
mov edi, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x78], edi
or esi, 0x80000000
mov dword [esp + 0x80], esi
mov dword [esp + 0x7c], eax
test eax, eax
je 0x472883
mov eax, dword [esp + 4]
add eax, eax
push eax
push ecx
push edi
mov esi, edx
call fcn.00507560
mov edx, esi
mov eax, dword [esp + 0x10]
add esp, 0xc
mov word [edi + eax*2], 0
lea edi, [esp + 0x78]
mov ecx, edi
push edx
push dword [esp + 0x10]
call fcn.004db260
push 0x30
call fcn.00503d75
add esp, 4
mov esi, eax
mov ecx, eax
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.00574a00
mov edi, dword [ebx + 4]
mov eax, dword [ebx + 8]
cmp edi, eax
jae 0x4728c9
mov dword [edi], esi
add edi, 4
mov dword [ebx + 4], edi
jmp 0x472950
mov edx, dword [ebx]
sub edi, edx
sar edi, 2
lea ecx, [edi + 1]
cmp ecx, 0x40000000
jae 0x4746ec
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov ebx, 0x3fffffff
cmovb ebx, eax
xor eax, eax
test ebx, ebx
je 0x47291d
cmp ebx, 0x40000000
jae 0x4746fd
lea eax, [ebx*4]
push eax
call fcn.00503d75
add esp, 4
lea edx, [eax + edi*4]
lea ebx, [eax + ebx*4]
mov dword [edx], esi
lea eax, [eax + edi*4]
add eax, 4
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp edi, ecx
jne 0x47352e
mov dword [esi], edx
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
test edi, edi
je 0x472950
push edi
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x83], 0
jns 0x472966
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
xor eax, eax
lea edi, [esp + 0x54]
movzx ebx, byte [edi + 0xb]
test bl, bl
cmovs ebx, dword [edi + 4]
mov dword [esp + 0x50], eax
cmovs edi, dword [edi]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
lea eax, [ebx + 0xc]
cmp eax, 0x7ffffff0
jae 0x47471b
cmp eax, 4
ja 0x4729a1
lea esi, [esp + 0x48]
mov byte [esi + 0xb], bl
jmp 0x4729cb
lea esi, [ebx + 0x14]
and esi, 0xfffffff8
lea eax, [esi + esi]
push eax
call fcn.00503d75
add esp, 4
mov dword [esp + 0x48], eax
or esi, 0x80000000
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0x4c], ebx
test ebx, ebx
je 0x4729d9
lea eax, [ebx + ebx]
push eax
push edi
push esi
call fcn.00507560
add esp, 0xc
mov word [esi + ebx*2], 0
lea ecx, [esp + 0x48]
push 0xc
push 0x5e7d70
call fcn.004db260
mov esi, str.make_default_browser
push esi
call fcn.0051f310
add esp, 4
lea ecx, [esp + 0x2c]
push eax
push esi
push ecx
call fcn.00459010
add esp, 0xc
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
movzx ebx, byte [esp + 0x6b]
test bl, bl
cmovs ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x60]
cmovns ecx, eax
lea eax, [ebx + 3]
cmp eax, 0x7ffffff0
jae 0x4746f4
cmp eax, 5
jae 0x472a51
lea esi, [esp + 0x20]
mov byte [esi + 0xb], bl
test ebx, ebx
jne 0x472a7b
jmp 0x472a89
lea edi, [ebx + 0xb]
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
mov esi, ecx
call fcn.00503d75
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x20], eax
or edi, 0x80000000
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebx
lea eax, [ebx + ebx]
push eax
push ecx
push esi
call fcn.00507560
add esp, 0xc
xor eax, eax
mov word [esi + ebx*2], ax
lea esi, [esp + 0x20]
mov ecx, esi
push 3
push 0x5e81f2
call fcn.004db260
movzx eax, byte [esp + 0x37]
test al, al
cmovs eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x2c]
cmovns edx, ecx
mov ecx, esi
push eax
push edx
call fcn.004db260
mov ecx, dword [eax + 8]
lea edi, [esp + 0x38]
mov dword [edi + 8], ecx
movsd xmm0, qword [eax]
movsd qword [edi], xmm0
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
mov esi, 0x30
push esi
call fcn.00503d75
add esp, 4
mov ebx, eax
push esi
call fcn.00503d75
add esp, 4
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], 0x80000018
mov dword [esp + 0x7c], 0x10
movups xmm0, xmmword [0x5e7d9a]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.ReinstallCommand]
movups xmmword [eax], xmm0
xor ecx, ecx
mov word [eax + 0x20], cx
mov dword [esp + 4], ebx
mov ecx, ebx
push edi
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00574a80
cmp byte [esp + 0x83], 0
jns 0x472b54
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp esi, eax
jae 0x472b72
mov eax, dword [esp + 4]
mov dword [esi], eax
add esi, 4
mov dword [ecx + 4], esi
jmp 0x472bfd
mov edx, dword [ecx]
sub esi, edx
sar esi, 2
lea ecx, [esi + 1]
cmp ecx, 0x40000000
jae 0x4746ec
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov edi, 0x3fffffff
cmovb edi, eax
xor eax, eax
test edi, edi
je 0x472bc6
cmp edi, 0x40000000
jae 0x4746fd
lea eax, [edi*4]
push eax
call fcn.00503d75
add esp, 4
lea edx, [eax + esi*4]
lea ebx, [eax + edi*4]
mov ecx, dword [esp + 4]
mov dword [edx], ecx
lea eax, [eax + esi*4]
add eax, 4
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp edi, ecx
jne 0x4735b5
mov dword [esi], edx
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
test edi, edi
je 0x472bfd
push edi
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x43], 0
jns 0x472c10
push dword [esp + 0x38]
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x2b], 0
lea edi, [esp + 0x20]
jns 0x472c27
push dword [esp + 0x20]
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x37], 0
jns 0x472c3a
push dword [esp + 0x2c]
call fcn.00503da5
add esp, 4
mov esi, str.hide_icons
push esi
call fcn.0051f310
add esp, 4
push eax
push esi
lea eax, [esp + 0x34]
push eax
call fcn.00459010
add esp, 0xc
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
movzx ebx, byte [esp + 0x6b]
test bl, bl
cmovs ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
lea eax, [esp + 0x60]
cmovns esi, eax
lea eax, [ebx + 3]
cmp eax, 0x7ffffff0
jae 0x4746f4
cmp eax, 5
jae 0x472c99
mov byte [esp + 0x2b], bl
test ebx, ebx
jne 0x472cbf
jmp 0x472ccd
lea edi, [ebx + 0xb]
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
call fcn.00503d75
add esp, 4
mov dword [esp + 0x20], eax
or edi, 0x80000000
mov dword [esp + 0x28], edi
mov edi, eax
mov dword [esp + 0x24], ebx
lea eax, [ebx + ebx]
push eax
push esi
push edi
call fcn.00507560
add esp, 0xc
xor esi, esi
mov word [edi + ebx*2], si
lea edi, [esp + 0x20]
mov ecx, edi
push 3
push 0x5e81f2
call fcn.004db260
movzx eax, byte [esp + 0x37]
test al, al
cmovs eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x2c]
cmovns edx, ecx
mov ecx, edi
push eax
push edx
call fcn.004db260
mov ecx, dword [eax + 8]
mov dword [esp + 0x40], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x38], xmm0
mov dword [eax], esi
mov dword [eax + 8], esi
mov dword [eax + 4], esi
mov edi, 0x30
push edi
call fcn.00503d75
add esp, 4
mov ebx, eax
push edi
call fcn.00503d75
add esp, 4
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], 0x80000018
mov dword [esp + 0x7c], 0x10
movups xmm0, xmmword [0x5e820a]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.HideIconsCommand]
movups xmmword [eax], xmm0
mov word [eax + 0x20], si
mov ecx, ebx
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00574a80
cmp byte [esp + 0x83], 0
jns 0x472d93
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp esi, eax
jae 0x472dad
mov dword [esi], ebx
add esi, 4
mov dword [ecx + 4], esi
jmp 0x472e3c
mov edx, dword [ecx]
sub esi, edx
sar esi, 2
lea ecx, [esi + 1]
cmp ecx, 0x40000000
jae 0x4746ec
mov dword [esp + 4], ebx
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov edi, 0x3fffffff
cmovb edi, eax
xor eax, eax
test edi, edi
je 0x472e05
cmp edi, 0x40000000
jae 0x4746fd
lea eax, [edi*4]
push eax
call fcn.00503d75
add esp, 4
lea edx, [eax + esi*4]
lea ebx, [eax + edi*4]
mov ecx, dword [esp + 4]
mov dword [edx], ecx
lea eax, [eax + esi*4]
add eax, 4
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp edi, ecx
jne 0x47363c
mov dword [esi], edx
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
test edi, edi
je 0x472e3c
push edi
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x43], 0
jns 0x472e4f
push dword [esp + 0x38]
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x2b], 0
lea edi, [esp + 0x20]
jns 0x472e66
push dword [esp + 0x20]
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x37], 0
jns 0x472e79
push dword [esp + 0x2c]
call fcn.00503da5
add esp, 4
mov esi, str.show_icons
push esi
call fcn.0051f310
add esp, 4
push eax
push esi
lea eax, [esp + 0x34]
push eax
call fcn.00459010
add esp, 0xc
xor eax, eax
movzx ebx, byte [esp + 0x6b]
test bl, bl
cmovs ebx, dword [esp + 0x64]
mov dword [esp + 0x28], eax
mov ecx, dword [esp]
cmovs ecx, dword [esp + 0x60]
mov dword [esp], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
lea eax, [ebx + 3]
cmp eax, 0x7ffffff0
jae 0x4746f4
cmp eax, 5
jae 0x472ed8
mov byte [esp + 0x2b], bl
test ebx, ebx
jne 0x472efe
jmp 0x472f0f
lea esi, [ebx + 0xb]
and esi, 0xfffffff8
lea eax, [esi + esi]
push eax
call fcn.00503d75
add esp, 4
mov edi, eax
mov dword [esp + 0x20], eax
or esi, 0x80000000
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], ebx
lea eax, [ebx + ebx]
push eax
push dword [esp + 4]
push edi
call fcn.00507560
add esp, 0xc
xor esi, esi
mov word [edi + ebx*2], si
lea edi, [esp + 0x20]
mov ecx, edi
push 3
push 0x5e81f2
call fcn.004db260
movzx eax, byte [esp + 0x37]
test al, al
cmovs eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x2c]
cmovns edx, ecx
mov ecx, edi
push eax
push edx
call fcn.004db260
mov ecx, dword [eax + 8]
mov dword [esp + 0x40], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x38], xmm0
mov dword [eax], esi
mov dword [eax + 8], esi
mov dword [eax + 4], esi
mov ebx, 0x30
push ebx
call fcn.00503d75
add esp, 4
mov edi, eax
push ebx
call fcn.00503d75
add esp, 4
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], 0x80000018
mov dword [esp + 0x7c], 0x10
movups xmm0, xmmword [0x5e822c]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.ShowIconsCommand]
movups xmmword [eax], xmm0
mov word [eax + 0x20], si
mov ecx, edi
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00574a80
cmp byte [esp + 0x83], 0
jns 0x472fd5
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
cmp esi, eax
jae 0x472fef
mov dword [esi], edi
add esi, 4
mov dword [ebx + 4], esi
jmp 0x473100
mov edx, dword [ebx]
sub esi, edx
sar esi, 2
lea ecx, [esi + 1]
cmp ecx, 0x40000000
jae 0x4746ec
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov ebx, 0x3fffffff
cmovb ebx, eax
xor eax, eax
test ebx, ebx
je 0x473043
cmp ebx, 0x40000000
jae 0x4746fd
lea eax, [ebx*4]
push eax
call fcn.00503d75
add esp, 4
lea edx, [eax + esi*4]
lea ecx, [eax + ebx*4]
mov dword [esp], ecx
mov dword [edx], edi
lea eax, [eax + esi*4]
add eax, 4
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx]
mov edi, dword [ebx + 4]
cmp edi, ecx
jne 0x473070
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov eax, dword [esp]
mov dword [ebx + 8], eax
jmp 0x4730f3
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x473070
mov ebx, dword [ebp + 8]
mov edi, dword [ebx]
mov esi, dword [ebx + 4]
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov eax, dword [esp]
mov dword [ebx + 8], eax
cmp esi, edi
je 0x4730f3
mov ebx, dword [esi - 4]
mov dword [esi - 4], 0
add esi, 0xfffffffc
test ebx, ebx
je 0x4730ec
cmp byte [ebx + 0x27], 0
jns 0x4730c2
push dword [ebx + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0x17], 0
jns 0x4730d3
push dword [ebx + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0xb], 0
jns 0x4730e3
push dword [ebx]
call fcn.00503da5
add esp, 4
push ebx
call fcn.00503da5
add esp, 4
cmp esi, edi
jne 0x4730a0
mov ebx, dword [ebp + 8]
test edi, edi
je 0x473100
push edi
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x43], 0
jns 0x473113
push dword [esp + 0x38]
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x2b], 0
jns 0x473126
push dword [esp + 0x20]
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x37], 0
jns 0x473139
push dword [esp + 0x2c]
call fcn.00503da5
add esp, 4
push 0x30
call fcn.00503d75
add esp, 4
mov edi, eax
push 0x20
call fcn.00503d75
add esp, 4
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], 0x80000010
mov dword [esp + 0x7c], 0xc
movsd xmm0, qword [0x5e824e]
movsd qword [eax + 0x10], xmm0
movups xmm0, xmmword [str.IconsVisible]
movups xmmword [eax], xmm0
mov word [eax + 0x18], 0
mov ecx, edi
push 1
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00574b10
cmp byte [esp + 0x83], 0
jns 0x4731ac
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
cmp esi, eax
jae 0x4731c3
mov dword [esi], edi
add esi, 4
mov dword [ebx + 4], esi
jmp 0x47324a
mov edx, dword [ebx]
sub esi, edx
sar esi, 2
lea ecx, [esi + 1]
cmp ecx, 0x40000000
jae 0x4746ec
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov ebx, 0x3fffffff
cmovb ebx, eax
xor eax, eax
test ebx, ebx
je 0x473217
cmp ebx, 0x40000000
jae 0x4746fd
lea eax, [ebx*4]
push eax
call fcn.00503d75
add esp, 4
lea edx, [eax + esi*4]
lea ebx, [eax + ebx*4]
mov dword [edx], edi
lea eax, [eax + esi*4]
add eax, 4
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp edi, ecx
jne 0x4736c3
mov dword [esi], edx
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
test edi, edi
je 0x47324a
push edi
call fcn.00503da5
add esp, 4
xor eax, eax
dec eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
lea esi, [esp + 0x2c]
push esi
call fcn.00559680
add esp, 4
movzx eax, byte [esp + 0x37]
test al, al
cmovs esi, dword [esp + 0x2c]
cmovs eax, dword [esp + 0x30]
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
mov edx, dword [esp + 8]
movzx eax, byte [edx + 0xb]
test al, al
mov ecx, dword [edx]
cmovns ecx, edx
mov dword [esp + 0x80], ecx
cmovs eax, dword [edx + 4]
mov dword [esp + 0x84], eax
lea eax, [esp + 0x78]
push eax
push 2
lea eax, [esp + 0x40]
push eax
call fcn.0047e5a0
add esp, 0xc
cmp byte [esp + 0x37], 0
jns 0x4732c7
push dword [esp + 0x2c]
call fcn.00503da5
add esp, 4
lea ecx, [esp + 0x2c]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov edx, dword [esp + 8]
call fcn.0055d230
push 0x30
call fcn.00503d75
add esp, 4
mov edi, eax
mov esi, dword [str.SoftwareRegisteredApplications]
push esi
call fcn.0051f544
add esp, 4
cmp eax, 0x7ffffff0
jae 0x47470b
mov ebx, eax
mov dword [esp], esi
cmp eax, 5
mov dword [esp + 4], edi
jae 0x473337
lea esi, [esp + 0x78]
mov byte [esi + 0xb], bl
cmp ebx, 3
jne 0x4746b8
mov ecx, dword [esp]
movzx eax, word [ecx + 4]
mov word [esp + 0x7c], ax
mov eax, dword [ecx]
mov dword [esp + 0x78], eax
jmp 0x473376
lea edi, [ebx + 8]
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
call fcn.00503d75
add esp, 4
mov esi, eax
mov dword [esp + 0x78], eax
or edi, 0x80000000
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], ebx
mov eax, ebx
add eax, ebx
push eax
push dword [esp + 4]
push esi
call fcn.00507560
add esp, 0xc
mov edi, dword [esp + 4]
mov word [esi + ebx*2], 0
mov ecx, edi
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x80]
push eax
call fcn.00574a80
cmp byte [esp + 0x83], 0
jns 0x4733ab
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
cmp esi, eax
jae 0x4733c5
mov dword [esi], edi
add esi, 4
mov dword [ebx + 4], esi
jmp 0x4737fe
mov edx, dword [ebx]
sub esi, edx
sar esi, 2
lea ecx, [esi + 1]
cmp ecx, 0x40000000
jae 0x474714
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov edi, 0x3fffffff
cmovb edi, eax
test edi, edi
je 0x473748
cmp edi, 0x40000000
jae 0x4746fd
lea eax, [edi*4]
push eax
call fcn.00503d75
add esp, 4
jmp 0x47374a
mov dword [esp + 4], ebx
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x473424
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 4]
mov dword [ecx + 8], eax
cmp esi, edi
je 0x47260f
mov ebx, dword [esi - 4]
mov dword [esi - 4], 0
add esi, 0xfffffffc
test ebx, ebx
je 0x473451
cmp byte [ebx + 0x27], 0
jns 0x47347b
push dword [ebx + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0x17], 0
jns 0x47348c
push dword [ebx + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0xb], 0
jns 0x47349c
push dword [ebx]
call fcn.00503da5
add esp, 4
push ebx
call fcn.00503da5
add esp, 4
jmp 0x473451
mov dword [esp + 4], ebx
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x4734ab
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 4]
mov dword [ecx + 8], eax
cmp esi, edi
je 0x4727a0
mov ebx, dword [esi - 4]
mov dword [esi - 4], 0
add esi, 0xfffffffc
test ebx, ebx
je 0x4734d8
cmp byte [ebx + 0x27], 0
jns 0x473502
push dword [ebx + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0x17], 0
jns 0x473513
push dword [ebx + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0xb], 0
jns 0x473523
push dword [ebx]
call fcn.00503da5
add esp, 4
push ebx
call fcn.00503da5
add esp, 4
jmp 0x4734d8
mov dword [esp + 4], ebx
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x473532
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 4]
mov dword [ecx + 8], eax
cmp esi, edi
je 0x472943
mov ebx, dword [esi - 4]
mov dword [esi - 4], 0
add esi, 0xfffffffc
test ebx, ebx
je 0x47355f
cmp byte [ebx + 0x27], 0
jns 0x473589
push dword [ebx + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0x17], 0
jns 0x47359a
push dword [ebx + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0xb], 0
jns 0x4735aa
push dword [ebx]
call fcn.00503da5
add esp, 4
push ebx
call fcn.00503da5
add esp, 4
jmp 0x47355f
mov dword [esp + 4], ebx
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x4735b9
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 4]
mov dword [ecx + 8], eax
cmp esi, edi
je 0x472bf0
mov ebx, dword [esi - 4]
mov dword [esi - 4], 0
add esi, 0xfffffffc
test ebx, ebx
je 0x4735e6
cmp byte [ebx + 0x27], 0
jns 0x473610
push dword [ebx + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0x17], 0
jns 0x473621
push dword [ebx + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0xb], 0
jns 0x473631
push dword [ebx]
call fcn.00503da5
add esp, 4
push ebx
call fcn.00503da5
add esp, 4
jmp 0x4735e6
mov dword [esp + 4], ebx
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x473640
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
mov ebx, dword [ecx + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 4]
mov dword [ecx + 8], eax
cmp ebx, edi
je 0x472e2f
mov esi, dword [ebx - 4]
mov dword [ebx - 4], 0
add ebx, 0xfffffffc
test esi, esi
je 0x47366d
cmp byte [esi + 0x27], 0
jns 0x473697
push dword [esi + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [esi + 0x17], 0
jns 0x4736a8
push dword [esi + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [esi + 0xb], 0
jns 0x4736b8
push dword [esi]
call fcn.00503da5
add esp, 4
push esi
call fcn.00503da5
add esp, 4
jmp 0x47366d
mov dword [esp], ebx
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x4736c6
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp]
mov dword [ecx + 8], eax
cmp esi, edi
je 0x47323d
mov ebx, dword [esi - 4]
mov dword [esi - 4], 0
add esi, 0xfffffffc
test ebx, ebx
je 0x4736f2
cmp byte [ebx + 0x27], 0
jns 0x47371c
push dword [ebx + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0x17], 0
jns 0x47372d
push dword [ebx + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0xb], 0
jns 0x47373d
push dword [ebx]
call fcn.00503da5
add esp, 4
push ebx
call fcn.00503da5
add esp, 4
jmp 0x4736f2
xor eax, eax
lea edx, [eax + esi*4]
lea ecx, [eax + edi*4]
mov dword [esp], ecx
mov ecx, dword [esp + 4]
mov dword [edx], ecx
lea eax, [eax + esi*4]
add eax, 4
mov ecx, dword [ebx]
mov edi, dword [ebx + 4]
cmp edi, ecx
je 0x4737e6
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x473768
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp]
mov dword [ecx + 8], eax
cmp esi, edi
je 0x4737f1
mov ebx, dword [esi - 4]
mov dword [esi - 4], 0
add esi, 0xfffffffc
test ebx, ebx
je 0x473794
cmp byte [ebx + 0x27], 0
jns 0x4737ba
push dword [ebx + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0x17], 0
jns 0x4737cb
push dword [ebx + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0xb], 0
jns 0x4737db
push dword [ebx]
call fcn.00503da5
add esp, 4
push ebx
call fcn.00503da5
add esp, 4
jmp 0x473794
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov eax, dword [esp]
mov dword [ebx + 8], eax
test edi, edi
je 0x4737fe
push edi
call fcn.00503da5
add esp, 4
lea eax, [esp + 0x20]
push eax
call fcn.0055fa30
add esp, 4
push 0x30
call fcn.00503d75
add esp, 4
mov edi, eax
mov esi, dword [str.ApplicationDescription]
push esi
call fcn.0051f544
add esp, 4
cmp eax, 0x7ffffff0
jae 0x47470b
mov ebx, eax
mov dword [esp], esi
cmp eax, 5
mov dword [esp + 4], edi
jae 0x473863
lea esi, [esp + 0x78]
mov byte [esi + 0xb], bl
cmp ebx, 3
jne 0x4746c5
mov ecx, dword [esp]
movzx eax, word [ecx + 4]
mov word [esp + 0x7c], ax
mov eax, dword [ecx]
mov dword [esp + 0x78], eax
jmp 0x4738a2
lea edi, [ebx + 8]
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
call fcn.00503d75
add esp, 4
mov esi, eax
mov dword [esp + 0x78], eax
or edi, 0x80000000
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], ebx
mov eax, ebx
add eax, ebx
push eax
push dword [esp + 4]
push esi
call fcn.00507560
add esp, 0xc
mov edi, dword [esp + 4]
mov word [esi + ebx*2], 0
mov ecx, edi
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00574a80
cmp byte [esp + 0x83], 0
jns 0x4738d4
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
cmp esi, eax
jae 0x4738ee
mov dword [esi], edi
add esi, 4
mov dword [ebx + 4], esi
jmp 0x4739f8
mov edx, dword [ebx]
sub esi, edx
sar esi, 2
lea ecx, [esi + 1]
cmp ecx, 0x40000000
jae 0x474714
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov edi, 0x3fffffff
cmovb edi, eax
test edi, edi
je 0x473942
cmp edi, 0x40000000
jae 0x4746fd
lea eax, [edi*4]
push eax
call fcn.00503d75
add esp, 4
jmp 0x473944
xor eax, eax
lea edx, [eax + esi*4]
lea ecx, [eax + edi*4]
mov dword [esp], ecx
mov ecx, dword [esp + 4]
mov dword [edx], ecx
lea eax, [eax + esi*4]
add eax, 4
mov ecx, dword [ebx]
mov edi, dword [ebx + 4]
cmp edi, ecx
je 0x4739e0
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x473962
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp]
mov dword [ecx + 8], eax
cmp esi, edi
je 0x4739eb
mov ebx, dword [esi - 4]
mov dword [esi - 4], 0
add esi, 0xfffffffc
test ebx, ebx
je 0x47398e
cmp byte [ebx + 0x27], 0
jns 0x4739b4
push dword [ebx + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0x17], 0
jns 0x4739c5
push dword [ebx + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0xb], 0
jns 0x4739d5
push dword [ebx]
call fcn.00503da5
add esp, 4
push ebx
call fcn.00503da5
add esp, 4
jmp 0x47398e
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov eax, dword [esp]
mov dword [ebx + 8], eax
test edi, edi
je 0x4739f8
push edi
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x2b], 0
jns 0x473a0b
push dword [esp + 0x20]
call fcn.00503da5
add esp, 4
push 0x30
call fcn.00503d75
add esp, 4
mov edi, eax
mov esi, dword [str.ApplicationIcon]
push esi
call fcn.0051f544
add esp, 4
cmp eax, 0x7ffffff0
jae 0x47470b
mov ebx, eax
mov dword [esp], esi
cmp eax, 5
mov dword [esp + 4], edi
jae 0x473a63
lea esi, [esp + 0x78]
mov byte [esi + 0xb], bl
cmp ebx, 3
jne 0x4746d2
mov ecx, dword [esp]
movzx eax, word [ecx + 4]
mov word [esp + 0x7c], ax
mov eax, dword [ecx]
mov dword [esp + 0x78], eax
jmp 0x473aa2
lea edi, [ebx + 8]
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
call fcn.00503d75
add esp, 4
mov esi, eax
mov dword [esp + 0x78], eax
or edi, 0x80000000
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], ebx
mov eax, ebx
add eax, ebx
push eax
push dword [esp + 4]
push esi
call fcn.00507560
add esp, 0xc
mov edi, dword [esp + 4]
mov word [esi + ebx*2], 0
mov ecx, edi
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00574a80
cmp byte [esp + 0x83], 0
jns 0x473ad4
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
cmp esi, eax
jae 0x473aee
mov dword [esi], edi
add esi, 4
mov dword [ebx + 4], esi
jmp 0x473bf8
mov edx, dword [ebx]
sub esi, edx
sar esi, 2
lea ecx, [esi + 1]
cmp ecx, 0x40000000
jae 0x474714
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov edi, 0x3fffffff
cmovb edi, eax
test edi, edi
je 0x473b42
cmp edi, 0x40000000
jae 0x4746fd
lea eax, [edi*4]
push eax
call fcn.00503d75
add esp, 4
jmp 0x473b44
xor eax, eax
lea edx, [eax + esi*4]
lea ecx, [eax + edi*4]
mov dword [esp], ecx
mov ecx, dword [esp + 4]
mov dword [edx], ecx
lea eax, [eax + esi*4]
add eax, 4
mov ecx, dword [ebx]
mov edi, dword [ebx + 4]
cmp edi, ecx
je 0x473be0
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x473b62
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp]
mov dword [ecx + 8], eax
cmp esi, edi
je 0x473beb
mov ebx, dword [esi - 4]
mov dword [esi - 4], 0
add esi, 0xfffffffc
test ebx, ebx
je 0x473b8e
cmp byte [ebx + 0x27], 0
jns 0x473bb4
push dword [ebx + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0x17], 0
jns 0x473bc5
push dword [ebx + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0xb], 0
jns 0x473bd5
push dword [ebx]
call fcn.00503da5
add esp, 4
push ebx
call fcn.00503da5
add esp, 4
jmp 0x473b8e
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov eax, dword [esp]
mov dword [ebx + 8], eax
test edi, edi
je 0x473bf8
push edi
call fcn.00503da5
add esp, 4
lea eax, [esp + 0x20]
push eax
call fcn.004777d0
add esp, 4
push 0x30
call fcn.00503d75
add esp, 4
mov edi, eax
mov esi, dword [str.ApplicationName]
push esi
call fcn.0051f544
add esp, 4
cmp eax, 0x7ffffff0
jae 0x47470b
mov ebx, eax
mov dword [esp], esi
cmp eax, 5
mov dword [esp + 4], edi
jae 0x473c5d
lea esi, [esp + 0x78]
mov byte [esi + 0xb], bl
cmp ebx, 3
jne 0x4746df
mov ecx, dword [esp]
movzx eax, word [ecx + 4]
mov word [esp + 0x7c], ax
mov eax, dword [ecx]
mov dword [esp + 0x78], eax
jmp 0x473c9c
lea edi, [ebx + 8]
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
call fcn.00503d75
add esp, 4
mov esi, eax
mov dword [esp + 0x78], eax
or edi, 0x80000000
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], ebx
mov eax, ebx
add eax, ebx
push eax
push dword [esp + 4]
push esi
call fcn.00507560
add esp, 0xc
mov edi, dword [esp + 4]
mov word [esi + ebx*2], 0
mov ecx, edi
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00574a80
cmp byte [esp + 0x83], 0
jns 0x473cce
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
cmp esi, eax
jae 0x473ce8
mov dword [esi], edi
add esi, 4
mov dword [ebx + 4], esi
jmp 0x473df2
mov edx, dword [ebx]
sub esi, edx
sar esi, 2
lea ecx, [esi + 1]
cmp ecx, 0x40000000
jae 0x474714
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov edi, 0x3fffffff
cmovb edi, eax
test edi, edi
je 0x473d3c
cmp edi, 0x40000000
jae 0x4746fd
lea eax, [edi*4]
push eax
call fcn.00503d75
add esp, 4
jmp 0x473d3e
xor eax, eax
lea edx, [eax + esi*4]
lea ecx, [eax + edi*4]
mov dword [esp], ecx
mov ecx, dword [esp + 4]
mov dword [edx], ecx
lea eax, [eax + esi*4]
add eax, 4
mov ecx, dword [ebx]
mov edi, dword [ebx + 4]
cmp edi, ecx
je 0x473dda
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x473d5c
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp]
mov dword [ecx + 8], eax
cmp esi, edi
je 0x473de5
mov ebx, dword [esi - 4]
mov dword [esi - 4], 0
add esi, 0xfffffffc
test ebx, ebx
je 0x473d88
cmp byte [ebx + 0x27], 0
jns 0x473dae
push dword [ebx + 0x1c]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0x17], 0
jns 0x473dbf
push dword [ebx + 0xc]
call fcn.00503da5
add esp, 4
cmp byte [ebx + 0xb], 0
jns 0x473dcf
push dword [ebx]
call fcn.00503da5
add esp, 4
push ebx
call fcn.00503da5
add esp, 4
jmp 0x473d88
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov eax, dword [esp]
mov dword [ebx + 8], eax
test edi, edi
je 0x473df2
push edi
call fcn.00503da5
add esp, 4
cmp byte [esp + 0x2b], 0
jns 0x473e05
push dword [esp + 0x20]
call fcn.00503da5
add esp, 4
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
movzx ebx, byte [esp + 0x37]
test bl, bl
cmovs ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x2c]
cmovns ecx, eax
lea eax, [ebx + 0xa]
cmp eax, 0x7ffffff0
jae 0x4746f4
cmp eax, 4
ja 0x473e47
mov byte [esp + 0x2b], bl
lea esi, [esp + 0x20]
jmp 0x473e75
lea edi, [ebx + 0x12]
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
mov esi, ecx
call fcn.00503d75
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x20], eax
or edi, 0x80000000
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x473e83
lea eax, [ebx + ebx]
push eax
push ecx
push esi
call fcn.00507560
add esp, 0xc
xor edi, edi
mov word [esi + ebx*2], di
lea ecx, [esp + 0x20]
push 0xa
push str.Startmenu
call fcn.004db260
mov esi, 0x30
push esi
call fcn.00503d75
add esp, 4
mov ebx, eax
push esi
call fcn.00503d75
add esp, 4
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], 0x80000018
mov dword [esp + 0x7c], 0x11
movzx ecx, word [0x5e8278]
mov word [eax + 0x20], cx
movups xmm0, xmmword [0x5e8268]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.StartMenuInternet]
movups xmmword [eax], xmm0
mov word [eax + 0x22], di
mov dword [esp], ebx
mov ecx, ebx
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00574a80
cmp byte [esp + 0x83], 0
jns 0x473f1c
push dword [esp + 0x78]
call fcn.00503da5
add esp, 4
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 4]
mov eax, dword [ecx + 8]
cmp esi, eax
jae 0x473f39
mov eax, dword [esp]
mov dword [esi], eax
add esi, 4
mov dword [ecx + 4], esi
jmp 0x474046
mov edx, dword [ecx]
sub esi, edx
sar esi, 2
lea ecx, [esi + 1]
cmp ecx, 0x40000000
jae 0x4746ec
sub eax, edx
mov edx, eax
sar edx, 2
sar eax, 1
cmp eax, ecx
cmovb eax, ecx
cmp edx, 0x1fffffff
mov edi, 0x3fffffff
cmovb edi, eax
test edi, edi
je 0x473f8d
cmp edi, 0x40000000
jae 0x4746fd
lea eax, [edi*4]
push eax
call fcn.00503d75
add esp, 4
jmp 0x473f8f
xor eax, eax
lea edx, [eax + esi*4]
lea ebx, [eax + edi*4]
mov ecx, dword [esp]
mov dword [edx], ecx
lea eax, [eax + esi*4]
add eax, 4
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
cmp edi, ecx
je 0x474031
mov dword [esp], ebx
mov ebx, dword [edi - 4]
mov dword [edi - 4], 0
lea esi, [edi - 4]
mov dword [edx - 4], ebx
add edx, 0xfffffffc
mov edi, esi
cmp esi, ecx
jne 0x473fb3
mov dword [esi], edx
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
test edi, edi
je 0x474046
cmp byte [esp + 0x2b], 0
jns 0x474059
push dword [esp + 0x20]
call fcn.00503da5
add esp, 4
lea ecx, [esp + 0x20]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov edx, dword [esp + 8]
call fcn.00470210
cmp dword [str..htm], 0
je 0x474347
mov ecx, 0x601f80
xor esi, esi
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
movzx ebx, byte [esp + 0x37]
test bl, bl
cmovs ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
lea eax, [esp + 0x2c]
cmovns edi, eax
lea eax, [ebx + 0x11]
cmp eax, 0x7ffffff0
jae 0x474702
cmp dword [0x601fb4], 0
je 0x47461d
test ebx, ebx
je 0x473376
jmp 0x473360
test ebx, ebx
je 0x4738a2
jmp 0x47388c
test ebx, ebx
je 0x473aa2
jmp 0x473a8c
test ebx, ebx
je 0x473c9c
jmp 0x473c86
mov ecx, dword [ebp + 8]
call fcn.00534620
lea ecx, [esp + 0x20]
call fcn.0054ed10
call fcn.00517b60
lea ecx, [esp + 0x10]
call fcn.0054ed10
lea ecx, [esp + 0x78]
call fcn.0054ed10
mov ecx, ebx
call fcn.00534620
lea ecx, [esp + 0x48]
call fcn.0054ed10
int3