Function at 0x451fe0
Capabilities:
Accept command line arguments
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ccf27
mov eax, dword fs:[0]
push eax
mov eax, 0x3078
call fcn.004a1410
mov eax, dword [0x4f6cdc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor edi, edi
mov byte [ebp - 0x305d], 0
call fcn.0043ffa0
mov dword [ebp - 0x3064], eax
mov dword [ebp - 0x3080], edi
mov dword [ebp - 0x307c], edi
mov dword [ebp - 0x3078], edi
push 0x3fe
lea ecx, [ebp - 0x1e16]
xor eax, eax
push edi
push ecx
mov dword [ebp - 4], edi
mov word [ebp - 0x1e18], ax
call fcn.0049eae0
push 0x3fe
lea eax, [ebp - 0x80e]
xor edx, edx
push edi
push eax
mov word [ebp - 0x810], dx
call fcn.0049eae0
push 0x3fe
lea edx, [ebp - 0x40e]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x410], cx
call fcn.0049eae0
push 0x3fe
lea ecx, [ebp - 0x100e]
xor eax, eax
push edi
push ecx
mov word [ebp - 0x1010], ax
call fcn.0049eae0
push 0x3fe
lea eax, [ebp - 0x140e]
xor edx, edx
push edi
push eax
mov word [ebp - 0x1410], dx
call fcn.0049eae0
push 0x3fe
lea edx, [ebp - 0x2216]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x2218], cx
call fcn.0049eae0
add esp, 0x48
push 0x3fe
lea ecx, [ebp - 0xc0e]
xor eax, eax
push edi
push ecx
mov word [ebp - 0xc10], ax
call fcn.0049eae0
add esp, 0xc
lea edx, [ebp - 0x810]
push edx
mov ecx, esi
mov dword [ebp - 0x306c], edi
call fcn.00449170
mov ecx, dword [esi + 0xc]
cmp ecx, edi
je 0x452483
mov eax, dword [esi + 8]
push eax
call fcn.00431fa0
call fcn.0043ffa0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
call eax
lea ecx, [ebp - 0x810]
push ecx
mov ecx, esi
call fcn.00449170
mov ecx, dword [esi + 0xc]
lea edx, [ebp - 0x810]
push edx
call fcn.00430eb0
lea eax, [ebp - 0x810]
mov edx, eax
mov ecx, esi
sub ecx, edx
lea edx, [ecx + 0x44c]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, di
jne 0x452164
cmp dword [esi + 0x10a4], edi
je 0x45218d
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ecx, dword [esi + 0x10a4]
push eax
call fcn.00420cd0
mov ecx, dword [esi + 0x10a4]
cmp ecx, edi
je 0x452483
lea eax, [ebp - 0x810]
push eax
call fcn.0042fee0
test al, al
je 0x452483
mov ecx, dword [esi + 0x10a4]
push ecx
mov ecx, dword [esi + 0x880]
call fcn.00408ab0
mov edx, dword [esi + 0x10a4]
mov ecx, dword [esi + 0x880]
push 1
push edx
call fcn.00407870
mov ecx, esi
call fcn.0044a840
cmp al, 0x20
je 0x4524a4
test al, al
jne 0x452202
mov eax, dword [esi + 0x10a4]
mov ecx, dword [esi + 0x880]
push eax
call fcn.00407720
mov byte [esi + 0xc91], al
jmp 0x452214
mov ecx, dword [esi + 0x10a4]
push ecx
mov ecx, dword [esi + 0x880]
call fcn.00407720
mov ecx, dword [esi + 0x10a4]
call fcn.0041c230
mov ecx, dword [esi + 0x10a4]
lea edx, [ebp - 0x3084]
push edx
push eax
call fcn.00419be0
mov ecx, dword [esi + 0x10a4]
call fcn.004100c0
mov ecx, dword [esi + 0x10a4]
mov dword [esi + 0x888], eax
call fcn.0040a6d0
mov ecx, dword [esi + 0x10a4]
mov byte [esi + 0x38], al
call fcn.0040a6e0
mov ecx, dword [esi + 0x10a4]
mov byte [esi + 0x39], al
call fcn.0040a6f0
mov ecx, dword [esi + 0x10a4]
mov byte [esi + 0x3a], al
call fcn.0040a700
mov byte [esi + 0x3b], al
lea eax, [ebp - 0x306c]
push eax
mov ecx, esi
call fcn.0044aaf0
lea ecx, [ebp - 0x306c]
push ecx
lea ecx, [esi + 0x864]
call fcn.0044df30
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x1e18]
push str.Installer__s.txt
push eax
call fcn.00433950
add esp, 0xc
lea ecx, [ebp - 0xc10]
push ecx
mov ecx, esi
call fcn.0044e3b0
mov eax, dword [esi + 8]
lea edx, [ebp - 0xc10]
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
cmp dword [ebp - 0x3064], edi
je 0x45243d
mov ebx, dword [ebp - 0x3064]
mov ecx, ebx
call fcn.0043a110
cmp eax, edi
jne 0x4523f4
push 0x38
call fcn.0049eef7
add esp, 4
mov dword [ebp - 0x2840], eax
mov byte [ebp - 4], 1
cmp eax, edi
je 0x452314
push ebx
mov ecx, eax
call fcn.00466410
jmp 0x452316
xor eax, eax
push edi
lea ecx, [ebp - 0x1e18]
push ecx
mov ecx, dword [ebp - 0x3064]
mov dword [esi + 0x84c], eax
mov byte [ebp - 4], 0
mov dword [0x4fcdc8], eax
call fcn.0043a230
mov edx, dword [esi + 0x10a0]
mov ecx, dword [esi + 0x10a4]
mov ebx, eax
push edx
lea eax, [ebp - 0x305c]
push eax
call fcn.004286a0
lea eax, [ebp - 0x2c5c]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x452360
sub eax, edx
sar eax, 1
je 0x452391
lea eax, [ebp - 0x305c]
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x452380
sub eax, edx
sar eax, 1
jne 0x4523d7
xor eax, eax
jmp 0x4523a0
movzx ecx, word [eax + str.NOSNS.TTF]
mov word [ebp + eax - 0x2c5c], cx
add eax, 2
cmp cx, di
jne 0x4523a0
xor eax, eax
lea esp, [esp]
movzx ecx, word [eax + str.Nokia_Sans_SemiBold]
mov word [ebp + eax - 0x305c], cx
add eax, 2
cmp cx, di
jne 0x4523c0
lea ecx, [ebp - 0x305c]
push ecx
mov ecx, dword [ebp - 0x3064]
lea edx, [ebp - 0x2c5c]
push edx
call fcn.004396b0
cmp ebx, edi
je 0x4523fd
mov byte [ebp - 0x305d], 1
jmp 0x45243d
mov ecx, dword [esi + 0x10a4]
call fcn.0040a6c0
test al, al
je 0x45243d
push 0x2c
call fcn.0049eef7
add esp, 4
mov dword [ebp - 0x2840], eax
mov byte [ebp - 4], 2
cmp eax, edi
je 0x452434
mov ecx, dword [ebp - 0x3064]
push ecx
mov ecx, eax
call fcn.00469050
jmp 0x452436
xor eax, eax
mov byte [ebp - 4], 0
mov dword [esi + 0x20], eax
mov ecx, dword [esi + 0x10a4]
mov byte [ebp - 0x2838], 0
mov dword [ebp - 0x2834], edi
cmp ecx, edi
je 0x45247a
cmp dword [esi + 0x880], edi
je 0x45247a
lea edx, [ebp - 0x2838]
push edx
call fcn.0040a500
mov ecx, dword [esi + 0x880]
lea eax, [ebp - 0x2838]
push eax
call fcn.00406080
cmp byte [ebp - 0x305d], 0
je 0x4524a4
mov ecx, dword [esi + 8]
push edi
push 0x4d3364
push str.Initializing_failed._Cannot_proceed.
push ecx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, esi
call fcn.0044a4f0
jmp 0x452545
cmp byte [esi + 0xc91], 0x20
mov ecx, esi
jne 0x4524b9
call fcn.0044a4f0
jmp 0x452545
call fcn.00449a10
test byte [esi + 0xc91], 2
je 0x4524e8
mov ecx, esi
call fcn.0044e430
cmp eax, 2
je 0x452576
cmp eax, 0x67
je 0x452576
lea ecx, [esi + 0x3c]
call fcn.0044c970
lea edx, [ebp - 0xc10]
push edx
mov ecx, esi
call fcn.0044e3b0
mov ecx, dword [esi + 8]
lea eax, [ebp - 0xc10]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov ecx, dword [esi + 0x880]
call fcn.00406130
test al, al
jne 0x452583
mov ecx, dword [ebp - 0x3064]
lea edx, [ebp - 0x410]
push edx
push 0x4e9b
call fcn.004389d0
push edi
lea eax, [ebp - 0x410]
push eax
mov ecx, esi
call fcn.0044ec90
mov ecx, esi
call fcn.0044a4f0
xor edi, edi
mov eax, dword [ebp - 0x3080]
cmp eax, edi
je 0x452558
push eax
call fcn.0049eb5a
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049f71b
mov esp, ebp
pop ebp
ret
mov ecx, esi
mov byte [esi + 0x11], 0
call fcn.0044a4f0
jmp 0x452545
test byte [esi + 0xc91], 2
je 0x452abe
mov ecx, dword [esi + 0x10a4]
call fcn.004100a0
test eax, eax
je 0x452677
mov ecx, dword [esi + 0x880]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
lea eax, [ebp - 0x283c]
push eax
xor bl, bl
call edx
mov ecx, dword [esi + 0x880]
mov dword [ebp - 0x2838], 1
test ecx, ecx
je 0x4525e0
call fcn.00405fc0
test al, al
je 0x4525e0
mov dword [ebp - 0x2838], 2
mov ecx, dword [esi + 0x10a4]
xor edi, edi
call fcn.004100a0
test eax, eax
je 0x452634
mov ecx, dword [esi + 0x10a4]
lea eax, [ebp - 0x2848]
push eax
push edi
call fcn.00413c40
mov ecx, dword [ebp - 0x283c]
cmp ecx, dword [ebp - 0x2848]
jne 0x452624
mov edx, dword [ebp - 0x2838]
cmp edx, dword [ebp - 0x2844]
je 0x45288e
mov ecx, dword [esi + 0x10a4]
inc edi
call fcn.004100a0
cmp edi, eax
jb 0x4525f1
test bl, bl
sete al
mov byte [ebp - 0x305d], al
test al, al
je 0x452677
lea ecx, [ebp - 0x410]
push ecx
mov ecx, dword [ebp - 0x3064]
push 0x4e9e
call fcn.004389d0
push 0
lea edx, [ebp - 0x410]
push edx
mov ecx, esi
call fcn.0044ec90
cmp byte [ebp - 0x305d], 0
jne 0x45253c
mov ecx, dword [esi + 0x880]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
lea edx, [ebp - 0x283c]
push edx
call eax
mov ecx, dword [eax]
mov dword [ebp - 0x2840], ecx
mov ecx, dword [esi + 0x880]
call fcn.00405fc0
mov ecx, dword [esi + 0x10a4]
lea edx, [ebp - 0x306c]
mov bl, al
push edx
mov byte [ebp - 0x3065], bl
mov dword [ebp - 0x306c], 0
call fcn.0041c230
mov ecx, dword [esi + 0x10a4]
push eax
call fcn.00419be0
test al, al
je 0x45276d
mov edi, dword [ebp - 0x306c]
test edi, edi
je 0x45276d
cmp dword [edi + 0x18e8], 0
jbe 0x452716
mov ebx, dword [edi + 0x18e4]
lea eax, [ebp - 0x2840]
push eax
lea ecx, [ebp - 0x2834]
push ecx
lea ecx, [edi + 0x18e0]
call fcn.00408980
cmp dword [eax], ebx
je 0x45273f
mov bl, byte [ebp - 0x3065]
cmp byte [ebp - 0x305d], 0
jne 0x452746
mov edi, dword [edi + 0x18dc]
cmp edi, 1
jne 0x45272e
test bl, bl
jne 0x45273f
cmp edi, 2
jne 0x4528ad
test bl, bl
jne 0x4528ad
mov byte [ebp - 0x305d], 1
mov ecx, dword [ebp - 0x3064]
lea edx, [ebp - 0x410]
push edx
push 0x4e9e
call fcn.004389d0
push 0
lea eax, [ebp - 0x410]
push eax
mov ecx, esi
call fcn.0044ec90
cmp byte [ebp - 0x305d], 0
jne 0x45253c
xor ebx, ebx
lea edx, [ebp - 0x2830]
push edx
lea eax, [ebp - 0x2420]
push eax
lea ecx, [ebp - 0x2628]
push ecx
lea edx, [ebp - 0x1618]
push edx
lea eax, [ebp - 0x810]
push eax
call fcn.004a20bf
add esp, 0x14
lea ecx, [ebp - 0x2844]
push ecx
lea edx, [ebp - 0x3070]
push edx
lea eax, [ebp - 0x2838]
push eax
lea ecx, [ebp - 0x1618]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov edx, dword [esi + 0x880]
mov ecx, dword [esi + 0x10a4]
push edx
call fcn.0040a680
mov ecx, dword [esi + 0x10a4]
push eax
call fcn.0041c390
mov ecx, dword [ebp - 0x2838]
mov edi, eax
mov eax, dword [ebp - 0x2834]
shrd ecx, eax, 0x14
shr eax, 0x14
xor edx, edx
cmp edx, eax
jb 0x45291d
ja 0x452810
cmp edi, ecx
jbe 0x45291d
push 0x3fe
lea ecx, [ebp - 0x1a16]
xor eax, eax
push ebx
push ecx
mov word [ebp - 0x1a18], ax
call fcn.0049eae0
add esp, 0xc
lea edx, [ebp - 0x410]
push edx
push 0x4e9c
call fcn.0043ffa0
mov ecx, eax
call fcn.004389d0
push edi
lea eax, [ebp - 0x1010]
push str._d_MB
push eax
call fcn.00433950
lea ecx, [ebp - 0x1010]
push ecx
push 0x4d2a40
lea edx, [ebp - 0xc10]
push edx
lea eax, [ebp - 0x410]
push eax
lea ecx, [ebp - 0x1a18]
push ecx
call fcn.00433950
add esp, 0x20
push ebx
lea edx, [ebp - 0x1a18]
push edx
jmp 0x452535
mov eax, dword [ebp - 0x2834]
mov bl, 1
cmp eax, dword [ebp - 0x2840]
jge 0x452634
mov byte [ebp - 0x305d], bl
jmp 0x452643
mov ecx, dword [esi + 0x10a4]
xor ebx, ebx
mov dword [esi + 0x888], ebx
xor edi, edi
call fcn.004100c0
test eax, eax
je 0x45277c
lea ebx, [ebx]
lea ecx, [ebp - 0x2840]
push ecx
mov ecx, dword [esi + 0x10a4]
push edi
mov dword [ebp - 0x2840], ebx
call fcn.00419be0
mov eax, dword [ebp - 0x2840]
cmp eax, ebx
je 0x452908
mov eax, dword [eax + 0x2150]
cmp eax, ebx
je 0x452902
cmp eax, 1
jne 0x452908
inc dword [esi + 0x888]
mov ecx, dword [esi + 0x10a4]
inc edi
call fcn.004100c0
cmp edi, eax
jb 0x4528d0
jmp 0x45277c
mov ecx, dword [esi + 0x10a4]
cmp ecx, ebx
je 0x452abe
lea eax, [ebp - 0x3080]
push eax
call fcn.0041c370
mov eax, dword [ebp - 0x307c]
mov ecx, dword [ebp - 0x3080]
sub eax, ecx
sar eax, 2
xor edi, edi
test eax, eax
je 0x452abe
mov ebx, dword [ebp - 0x3064]
jmp 0x452960
cmp byte [ebp - 0x305d], 0
jne 0x45253c
mov dword [ebp - 0x306c], 0
cmp eax, edi
jbe 0x452b24
mov eax, dword [ecx + edi*4]
mov ecx, dword [esi + 0x10a4]
lea edx, [ebp - 0x306c]
push edx
push eax
call fcn.00419be0
mov ecx, dword [esi + 0x10a4]
mov edx, dword [ebp - 0x306c]
push ecx
mov ecx, dword [esi + 0x880]
push edx
call fcn.00407ac0
test al, al
jne 0x4529d3
lea eax, [ebp - 0x410]
push eax
push 0x4f15
mov ecx, ebx
call fcn.004389d0
push 0
lea ecx, [ebp - 0x410]
push ecx
jmp 0x452a89
mov ecx, dword [esi + 0x10a4]
lea edx, [ebp - 0x2218]
push edx
mov edx, dword [ebp - 0x306c]
lea eax, [ebp - 0x1410]
push eax
push ecx
mov ecx, dword [esi + 0x880]
push edx
call fcn.00407e90
test eax, eax
je 0x452a97
cmp eax, 1
jne 0x452a3e
lea eax, [ebp - 0x1010]
push eax
push 0x4ed9
mov ecx, ebx
call fcn.004389d0
lea ecx, [ebp - 0xc10]
push ecx
mov edx, ecx
push edx
lea eax, [ebp - 0x1410]
push eax
mov ecx, eax
push ecx
lea edx, [ebp - 0x1010]
push edx
lea eax, [ebp - 0x410]
push eax
jmp 0x452a78
cmp eax, 2
jne 0x452a80
lea ecx, [ebp - 0x1010]
push ecx
push 0x4fb1
mov ecx, ebx
call fcn.004389d0
lea edx, [ebp - 0xc10]
push edx
mov eax, edx
push eax
lea ecx, [ebp - 0x1410]
push ecx
mov edx, ecx
push edx
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x410]
push ecx
call fcn.00433950
add esp, 0x18
push 0
lea edx, [ebp - 0x410]
push edx
mov ecx, esi
call fcn.0044ec90
mov byte [ebp - 0x305d], 1
mov eax, dword [ebp - 0x307c]
mov ecx, dword [ebp - 0x3080]
sub eax, ecx
inc edi
sar eax, 2
cmp edi, eax
jb 0x452960
cmp byte [ebp - 0x305d], 0
jne 0x45253c
movzx eax, byte [esi + 0xc91]
push eax
mov ecx, esi
call fcn.0044f1c0
test eax, eax
js 0x45253c
mov ecx, dword [esi + 0x854]
cmp ecx, dword [esi + 0x858]
je 0x45253c
mov ecx, esi
call fcn.00451cd0
lea edx, [ebp - 0x810]
push edx
mov ecx, esi
call fcn.0044a560
mov ecx, dword [esi + 8]
mov esi, dword [ebp - 0x3064]
xor edi, edi
push edi
lea eax, [ebp - 0x810]
push eax
push ecx
mov ecx, esi
call fcn.00439970
push edi
mov ecx, esi
call fcn.00433a40
jmp 0x452545
push str.invalid_vector_T__subscript
call fcn.004c8322
int3