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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x46870b
push eax
mov eax, 0x1700
mov dword fs:[0], esp
call fcn.0044d240
push ebx
push ebp
push esi
push edi
mov ebp, ecx
call fcn.004318b0
test eax, eax
je 0x40e0e5
push 0
lea eax, [esp + 0x284]
push str.CUninstall_::_Uninstall_n
push eax
call fcn.0044cb10
mov edi, str.ENTRY:
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x180]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x180]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x280]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00431840
mov ecx, eax
call fcn.004318e0
lea eax, [esp + 0x180]
push eax
call fcn.00431840
mov ecx, eax
call fcn.00431c70
mov eax, dword [0x4855a4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x1720]
xor eax, eax
mov dword [esp + 0x1718], eax
mov dword [esp + 0x7c], eax
mov edx, dword [ecx]
mov ebx, 0x4000
test dword [edx + 0x4c], ebx
lea eax, [esp + 0x7c]
jne 0x40e13d
lea eax, [ecx + 4]
mov dword [ebp + 0xbc], eax
mov dword [eax], 0xa
cmp dword [ebp + 0xc0], 5
jne 0x40e2c1
lea ecx, [esp + 0x480]
call fcn.004185b0
mov eax, dword [ebp + 0xb8]
mov byte [esp + 0x1718], 1
mov ecx, dword [eax + 0x4c]
not ecx
test ebx, ecx
je 0x40e250
mov edi, dword [ebp + 0xcc]
test edi, edi
je 0x40e250
mov ebx, 0x2000000
mov eax, edi
mov edi, dword [edi]
lea ecx, [esp + 0x14]
lea esi, [eax + 8]
push esi
call fcn.0045cec5
lea edx, [esi + 4]
lea ecx, [esp + 0x18]
push edx
call fcn.0045cec5
lea eax, [esi + 8]
lea ecx, [esp + 0x1c]
push eax
call fcn.0045cec5
lea ecx, [esi + 0xc]
push ecx
lea ecx, [esp + 0x24]
call fcn.0045cec5
lea edx, [esi + 0x10]
lea ecx, [esp + 0x24]
push edx
call fcn.0045cec5
lea eax, [esi + 0x14]
lea ecx, [esp + 0x28]
push eax
call fcn.0045cec5
lea ecx, [esi + 0x18]
push ecx
lea ecx, [esp + 0x30]
call fcn.0045cec5
lea edx, [esi + 0x1c]
lea ecx, [esp + 0x30]
push edx
call fcn.0045cec5
lea eax, [esi + 0x20]
lea ecx, [esp + 0x34]
push eax
call fcn.0045cec5
lea ecx, [esi + 0x24]
push ecx
lea ecx, [esp + 0x3c]
call fcn.0045cec5
lea edx, [esi + 0x28]
lea ecx, [esp + 0x3c]
push edx
call fcn.0045cec5
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x2c]
push ecx
lea ecx, [esp + 0x484]
mov dword [esp + 0x44], eax
call fcn.00419370
test al, 0x40
je 0x40e248
mov eax, dword [ebp + 0xb8]
or dword [eax + 0x4c], ebx
test edi, edi
jne 0x40e190
lea ecx, [esp + 0x44]
call fcn.004466a0
lea ecx, [esp + 0x480]
lea edx, [esp + 0x6f0]
neg ecx
sbb ecx, ecx
mov byte [esp + 0x1718], 3
and ecx, edx
call fcn.00412660
lea ecx, [esp + 0x480]
lea eax, [esp + 0x6c0]
neg ecx
sbb ecx, ecx
mov byte [esp + 0x1718], 2
and ecx, eax
call fcn.0040f220
lea ecx, [esp + 0x480]
lea edx, [esp + 0x484]
neg ecx
sbb ecx, ecx
mov byte [esp + 0x1718], 0
and ecx, edx
call fcn.0040f220
jmp 0x40e619
mov eax, dword [ecx]
test dword [eax + 0x4c], ebx
je 0x40e2d0
push eax
mov ecx, ebp
call fcn.0040d680
mov eax, dword [ebp + 0xd4]
test eax, eax
jle 0x40e498
mov eax, dword [ebp + 0xc4]
test eax, eax
jne 0x40e2f7
lea eax, [ebp + 0xc8]
lea ecx, [ebp + 0x74]
push eax
call fcn.00439190
mov edi, dword [ebp + 0xcc]
test edi, edi
je 0x40e3b3
mov eax, edi
mov edi, dword [edi]
lea ecx, [esp + 0x14]
lea esi, [eax + 8]
push esi
call fcn.0045cec5
lea ecx, [esi + 4]
push ecx
lea ecx, [esp + 0x1c]
call fcn.0045cec5
lea edx, [esi + 8]
lea ecx, [esp + 0x1c]
push edx
call fcn.0045cec5
lea eax, [esi + 0xc]
lea ecx, [esp + 0x20]
push eax
call fcn.0045cec5
lea ecx, [esi + 0x10]
push ecx
lea ecx, [esp + 0x28]
call fcn.0045cec5
lea edx, [esi + 0x14]
lea ecx, [esp + 0x28]
push edx
call fcn.0045cec5
lea eax, [esi + 0x18]
lea ecx, [esp + 0x2c]
push eax
call fcn.0045cec5
lea ecx, [esi + 0x1c]
push ecx
lea ecx, [esp + 0x34]
call fcn.0045cec5
lea edx, [esi + 0x20]
lea ecx, [esp + 0x34]
push edx
call fcn.0045cec5
lea eax, [esi + 0x24]
lea ecx, [esp + 0x38]
push eax
call fcn.0045cec5
lea ecx, [esi + 0x28]
push ecx
lea ecx, [esp + 0x40]
call fcn.0045cec5
mov edx, dword [esi + 0x2c]
lea eax, [esp + 0x14]
push eax
mov ecx, ebp
mov dword [esp + 0x44], edx
call fcn.0040dc60
test edi, edi
jne 0x40e305
mov ecx, dword [ebp + 0xb8]
mov eax, dword [ecx + 0x4c]
test ah, 0x80
jne 0x40e3cd
mov edx, eax
not edx
test ebx, edx
je 0x40e619
not eax
test ebx, eax
je 0x40e3e1
mov ecx, ebp
call fcn.0040b8f0
mov ecx, ebp
call fcn.0040d460
lea ecx, [ebp + 0xb4]
call fcn.004459f0
mov eax, dword [ebp + 0xc4]
test eax, eax
je 0x40e406
call fcn.00448ba0
test eax, eax
jne 0x40e406
mov ecx, ebp
call fcn.0040b110
mov ecx, ebp
call fcn.0040ca90
mov eax, dword [ebp + 0xb8]
add eax, 0x4c
mov ecx, dword [eax]
not ecx
test ebx, ecx
je 0x40e619
lea edx, [ebp + 0xc8]
push eax
push edx
lea ecx, [ebp + 0xb5]
call fcn.00440c30
mov ecx, dword [ebp + 0xb8]
mov eax, dword [ecx + 0x4c]
test ah, 2
je 0x40e44f
mov edx, eax
not edx
test edx, 0x40000000
jne 0x40e46d
test eax, 0x10000
je 0x40e462
mov edx, eax
not edx
test edx, 0x40000000
jne 0x40e46d
test eax, 0x400000
je 0x40e619
or eax, 0x200000
mov dword [ecx + 0x4c], eax
call fcn.004318b0
test eax, eax
je 0x40e619
push str.Setting_for_Reboot_n
call fcn.00431840
mov ecx, eax
call fcn.00431c70
jmp 0x40e619
mov ecx, dword [ebp + 0xb8]
test dword [ecx + 0x4c], ebx
je 0x40e619
mov eax, dword [ebp + 0xc4]
test eax, eax
jne 0x40e619
mov eax, dword [0x4855a4]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
add ecx, 0x10
push 0x47d160
lea eax, [esp + 0x48]
mov bl, 4
push ecx
push eax
mov byte [esp + 0x1724], bl
call fcn.0045d021
mov ecx, dword [ebp + 0xb8]
lea edx, [esp + 0x78]
add ecx, 0x14
mov byte [esp + 0x1718], 5
push ecx
push eax
push edx
call fcn.0045cfbb
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x171c], 6
call fcn.0045cec5
lea ecx, [esp + 0x78]
mov byte [esp + 0x1718], 5
call fcn.0045cdd8
lea ecx, [esp + 0x44]
mov byte [esp + 0x1718], bl
call fcn.0045cdd8
lea eax, [esp + 0x48]
mov ecx, ebp
push eax
call fcn.0040bb60
lea ecx, [esp + 0x70]
mov byte [esp + 0x1718], 0x10
call fcn.0045cdd8
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1718], 0xf
call fcn.0045cdd8
lea ecx, [esp + 0x68]
mov byte [esp + 0x1718], 0xe
call fcn.0045cdd8
lea ecx, [esp + 0x64]
mov byte [esp + 0x1718], 0xd
call fcn.0045cdd8
lea ecx, [esp + 0x60]
mov byte [esp + 0x1718], 0xc
call fcn.0045cdd8
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1718], 0xb
call fcn.0045cdd8
lea ecx, [esp + 0x58]
mov byte [esp + 0x1718], 0xa
call fcn.0045cdd8
lea ecx, [esp + 0x54]
mov byte [esp + 0x1718], 9
call fcn.0045cdd8
mov byte [esp + 0x1718], 8
lea ecx, [esp + 0x50]
call fcn.0045cdd8
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1718], 7
call fcn.0045cdd8
lea ecx, [esp + 0x48]
mov byte [esp + 0x1718], 0
call fcn.0045cdd8
mov ecx, ebp
call fcn.0040edc0
push 0x4b0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp + 0xbc]
mov dword [ecx], 0x6e
call fcn.004318b0
test eax, eax
je 0x40e6d7
push 0
lea edx, [esp + 0x384]
push str.CUninstall_::_Uninstall_n
push edx
call fcn.0044cb10
mov edi, str.EXIT:
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x80]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x80]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x380]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x80]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00431840
mov ecx, eax
call fcn.00431c70
call fcn.00431840
mov ecx, eax
call fcn.004318f0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1718], 0x1a
call fcn.0045cdd8
lea ecx, [esp + 0x38]
mov byte [esp + 0x1718], 0x19
call fcn.0045cdd8
lea ecx, [esp + 0x34]
mov byte [esp + 0x1718], 0x18
call fcn.0045cdd8
lea ecx, [esp + 0x30]
mov byte [esp + 0x1718], 0x17
call fcn.0045cdd8
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1718], 0x16
call fcn.0045cdd8
lea ecx, [esp + 0x28]
mov byte [esp + 0x1718], 0x15
call fcn.0045cdd8
lea ecx, [esp + 0x24]
mov byte [esp + 0x1718], 0x14
call fcn.0045cdd8
lea ecx, [esp + 0x20]
mov byte [esp + 0x1718], 0x13
call fcn.0045cdd8
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1718], 0x12
call fcn.0045cdd8
lea ecx, [esp + 0x18]
mov byte [esp + 0x1718], 0x11
call fcn.0045cdd8
lea ecx, [esp + 0x14]
mov dword [esp + 0x1718], 0xffffffff
call fcn.0045cdd8
mov ecx, dword [esp + 0x1710]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x170c
ret 4