Function at 0x40cde0
Capabilities:
Terminate process

Disassembly:
sub esp, 0x178
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov eax, dword [esi]
mov dword [esp + 0x20], esi
cmp eax, ebx
jne 0x40ce10
push ebx
push str.Np_Installation_Wizard
push str.Error_in_setup_file._Please_Contact_to_administrator.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebx
call fcn.0040d8b0
mov edi, dword [esp + 0x18c]
or ebp, 0xffffffff
cmp edi, ebp
jl 0x40d21d
cmp edi, dword [eax + 4]
jge 0x40d21d
cmp dword [esi + 4], ebp
je 0x40ce39
push eax
call fcn.0040cc10
add esp, 4
mov eax, dword [esi + 0x134]
mov dword [esi + 4], ebp
cmp edi, eax
jne 0x40ce6a
cmp edi, ebp
je 0x40ce6e
mov edi, dword [esp + 0x190]
add esi, 8
mov ecx, 0x4b
xor eax, eax
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x178
ret 8
cmp edi, ebp
jne 0x40cec4
mov eax, dword [esi]
pop edi
pop esi
pop ebp
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x184]
mov dword [eax], ecx
mov byte [eax + 4], bl
mov dword [eax + 0x108], ebx
mov dword [eax + 0x10c], ebx
mov dword [eax + 0x110], ebx
mov dword [eax + 0x114], ebx
mov dword [eax + 0x118], ebx
mov dword [eax + 0x11c], ebx
mov dword [eax + 0x120], ebx
mov dword [eax + 0x124], ebx
mov dword [eax + 0x128], ebx
xor eax, eax
pop ebx
add esp, 0x178
ret 8
mov eax, dword [esi]
cmp edi, dword [eax + 0x10]
jge 0x40ced4
push eax
call fcn.0040c620
add esp, 4
mov eax, dword [esi]
cmp dword [eax + 0x10], edi
jge 0x40ceeb
push eax
call fcn.0040c670
mov eax, dword [esi]
add esp, 4
cmp dword [eax + 0x10], edi
jl 0x40cedb
mov ecx, dword [esi]
push ebx
push ebx
push ebx
push ebx
lea edx, [esp + 0x94]
push 0x104
lea eax, [esp + 0x48]
push edx
push eax
push ecx
call fcn.0040c5e0
lea edx, [esp + 0x38]
lea eax, [esp + 0x44]
push edx
mov edx, dword [esi]
lea ecx, [esp + 0x54]
push eax
push ecx
push edx
call fcn.0040c6f0
add esp, 0x30
test eax, eax
je 0x40cf39
pop edi
pop esi
pop ebp
mov eax, 0x700
pop ebx
add esp, 0x178
ret 8
mov ecx, dword [esi]
mov eax, dword [esp + 0x24]
push ebx
push eax
mov edx, dword [ecx]
push edx
call fcn.0040bce0
add esp, 0xc
test eax, eax
je 0x40cf62
pop edi
pop esi
pop ebp
mov eax, 0x800
pop ebx
add esp, 0x178
ret 8
mov eax, dword [esp + 0x18]
push eax
call fcn.0040f910
mov ecx, dword [esi]
mov edi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
mov edx, dword [ecx]
push edx
push eax
push 1
push edi
call fcn.0040bd80
mov ecx, dword [esp + 0x2c]
add esp, 0x14
cmp eax, ecx
je 0x40cfaa
push edi
call fcn.0040f930
add esp, 4
mov eax, 0x800
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x178
ret 8
mov ecx, dword [esi]
lea edi, [esp + 0x84]
xor eax, eax
mov ebp, dword [esp + 0x190]
mov edx, dword [ecx + 0x10]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp], edx
lea edx, [ebp + 4]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x68]
and ecx, 3
mov edx, eax
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov ebx, eax
shr ecx, 0x17
and cl, 1
mov dword [ebp + 0x108], 0x80
mov byte [esp + 0x11], cl
mov cl, al
and cl, 1
mov byte [esp + 0x12], cl
mov ecx, eax
shr ecx, 2
and cl, 1
mov byte [esp + 0x13], cl
mov ecx, eax
shr edx, 1
shr ecx, 5
shr ebx, 0x1e
and dl, 1
and cl, 1
test bl, 1
jne 0x40d02f
shr eax, 4
test al, 1
je 0x40d039
mov dword [ebp + 0x108], 0x90
test cl, cl
je 0x40d04b
mov eax, dword [ebp + 0x108]
or al, 0x20
mov dword [ebp + 0x108], eax
test dl, dl
je 0x40d05d
mov eax, dword [ebp + 0x108]
or al, 2
mov dword [ebp + 0x108], eax
mov al, byte [esp + 0x11]
test al, al
je 0x40d06d
mov al, byte [esp + 0x12]
test al, al
je 0x40d07b
mov eax, dword [ebp + 0x108]
or al, 1
mov dword [ebp + 0x108], eax
mov al, byte [esp + 0x13]
test al, al
je 0x40d091
mov eax, dword [ebp + 0x108]
or al, 4
mov dword [ebp + 0x108], eax
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x28]
mov dword [ebp + 0x124], ecx
push eax
mov eax, dword [esp + 0x48]
push eax
mov dword [ebp + 0x128], edx
shr eax, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0x10c], eax
mov dword [ebp + 0x114], eax
mov dword [ebp + 0x11c], eax
mov eax, dword [esp + 0x18]
xor esi, esi
cmp eax, 4
mov dword [ebp + 0x110], ecx
mov dword [ebp + 0x118], ecx
mov dword [ebp + 0x120], ecx
jbe 0x40d1e0
mov byte [esp + 0x1e], 0
mov edx, dword [esp + 0x14]
mov edi, 0x422b5c
mov al, byte [edx + esi + 1]
mov cl, byte [esi + edx]
mov byte [esp + 0x1d], al
mov byte [esp + 0x1c], cl
lea eax, [esp + 0x1c]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [edi]
jne 0x40d139
test cl, cl
je 0x40d135
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [edi + 1]
jne 0x40d139
add eax, 2
add edi, 2
test cl, cl
jne 0x40d115
xor eax, eax
jmp 0x40d13e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40d15b
movsx ecx, byte [esi + edx + 2]
lea esi, [esi + ecx + 4]
mov ecx, dword [esp + 0x18]
lea eax, [esi + 4]
cmp eax, ecx
jb 0x40d0f9
jmp 0x40d1e4
movsx eax, byte [esi + edx + 4]
mov ebx, eax
mov ecx, eax
shr ebx, 1
shr ecx, 2
and bl, 1
and cl, 1
add esi, 5
mov byte [esp + 0x11], cl
test al, 1
je 0x40d19d
mov edx, dword [esi + edx]
add esi, 4
push edx
call fcn.0040cca0
mov cl, byte [esp + 0x15]
mov dword [ebp + 0x11c], eax
mov dword [ebp + 0x120], edx
mov edx, dword [esp + 0x18]
add esp, 4
test bl, bl
je 0x40d1c4
mov edx, dword [esi + edx]
add esi, 4
push edx
call fcn.0040cca0
mov cl, byte [esp + 0x15]
mov dword [ebp + 0x10c], eax
mov dword [ebp + 0x110], edx
mov edx, dword [esp + 0x18]
add esp, 4
test cl, cl
je 0x40d1e4
mov esi, dword [esi + edx]
push esi
call fcn.0040cca0
mov dword [ebp + 0x114], eax
add esp, 4
mov dword [ebp + 0x118], edx
mov edx, dword [esp + 0x14]
test edx, edx
je 0x40d1f1
push edx
call fcn.0040f930
add esp, 4
mov eax, dword [esp + 0x20]
mov ecx, 0x4b
mov esi, ebp
lea edi, [eax + 8]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x18c]
pop edi
pop esi
mov dword [eax + 0x134], ecx
pop ebp
xor eax, eax
pop ebx
add esp, 0x178
ret 8
pop edi
pop esi
pop ebp
mov eax, 0x10000
pop ebx
add esp, 0x178
ret 8