Function at 0x429060
Capabilities:
Encode data using base64
Get disk size
Get graphical window text
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x844
mov eax, dword [0x639ac0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x200
lea eax, [ebp - 0x408]
mov dword [ebp - 0x7ec], ecx
mov ebx, edx
mov dword [ebp - 0x814], 0
push 0
push eax
mov dword [ebp - 0x81c], ebx
call fcn.004ff750
add esp, 0xc
lea eax, [ebp - 0x7a8]
push dword [ebx*4 + 0x1b58b10]
push eax
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetDeviceInfo
add esp, 8
mov dword [ebp - 0x7fc], eax
push 0x3f5
push dword [0x1b8cc8c]
test eax, eax
je 0x429160
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov edi, eax
push 0
push 0
push 0x1009
push edi
call esi
lea eax, [ebp - 0x824]
mov dword [ebp - 0x824], 0
push eax
push 2
push 0x103a
push edi
mov dword [ebp - 0x820], 1
call esi
push 0xfffe
push 1
push 0x101e
push edi
call esi
push 0x30
push ecx
mov ecx, 0x114
call fcn.00434a10
add esp, 4
mov ecx, 0xc2
push eax
call fcn.00434a10
push eax
push dword [ebp - 0x7ec]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [ebp - 0x7fc]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004f66cd
mov esp, ebp
pop ebp
ret
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov edi, eax
push 0
push 0
push 0x1009
push edi
call esi
xorps xmm0, xmm0
mov dword [ebp - 0x7d4], 0
push ecx
lea edx, [ebp - 0x408]
movlpd qword [ebp - 0x7dc], xmm0
mov ecx, 0x58
movlpd qword [ebp - 0x7cc], xmm0
mov dword [ebp - 0x7c4], 0
movlpd qword [ebp - 0x7bc], xmm0
movlpd qword [ebp - 0x7b4], xmm0
mov dword [ebp - 0x7ac], 0
mov dword [ebp - 0x7e0], 0x3e8
mov dword [ebp - 0x7e4], 0xd
mov dword [ebp - 0x7c0], 1
call fcn.00434a40
add esp, 4
mov dword [ebp - 0x7d0], eax
lea eax, [ebp - 0x7e4]
push eax
push 0
push 0x104d
push edi
call esi
push dword [ebx*4 + 0x1b58b10]
mov dword [ebp - 0x7e0], eax
lea eax, [ebp - 0x7e8]
push eax
lea eax, [ebp - 0x208]
mov dword [ebp - 0x7e8], 0x100
push eax
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetDeviceModelNumber
mov ecx, dword [ebx*4 + 0x1b58b10]
add esp, 0xc
test eax, eax
jne 0x429255
push ecx
lea eax, [ebp - 0x7e8]
push eax
lea eax, [ebp - 0x208]
push eax
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetDeviceModelNumber
add esp, 0xc
jmp 0x4292d4
mov eax, ecx
shl eax, 0xa
lea edx, [eax + 0x1b58e2c]
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x7ec], eax
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x429270
sub ecx, dword [ebp - 0x7ec]
sar ecx, 1
je 0x4292b2
mov eax, dword [ebx*4 + 0x1b58b10]
lea ecx, [ebp - 0x208]
shl eax, 0xa
sub ecx, eax
sub ecx, 0x1b58e2c
nop dword [eax]
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4292a0
jmp 0x4292d4
mov ecx, 0x117
call fcn.00434a10
lea edx, [ebp - 0x208]
sub edx, eax
movzx ecx, word [eax]
lea eax, [eax + 2]
mov word [edx + eax - 2], cx
test cx, cx
jne 0x4292c4
lea eax, [ebp - 0x208]
mov dword [ebp - 0x6bc], 1
mov dword [ebp - 0x6b0], eax
lea eax, [ebp - 0x6c4]
push eax
push dword [ebp - 0x7e0]
push 0x1074
push edi
call esi
push str.intel
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
mov dword [ebp - 0x804], eax
lea edx, [ebp - 0x408]
setne cl
inc dword [ebp - 0x7e0]
mov byte [ebp - 0x820], cl
push ecx
mov ecx, 0x38
call fcn.00434a40
add esp, 4
mov dword [ebp - 0x7d0], eax
lea eax, [ebp - 0x7e4]
push eax
push 0
push 0x104d
push edi
call esi
push dword [ebx*4 + 0x1b58b10]
mov dword [ebp - 0x7e0], eax
lea eax, [ebp - 0x814]
push eax
mov dword [ebp - 0x7e8], 0x100
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetDeviceCapacity
add esp, 8
test eax, eax
jne 0x4293d1
mov eax, dword [ebp - 0x814]
cmp eax, 0x400
jle 0x4293ba
movd xmm0, eax
sub esp, 8
cvtdq2ps xmm0, xmm0
lea eax, [ebp - 0x208]
mulss xmm0, dword [0x5c4be4]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str._.2f_GB
push eax
call fcn.00424a70
add esp, 0x10
jmp 0x4293eb
push eax
lea eax, [ebp - 0x208]
push 0x5bf010
push eax
call fcn.00424a70
add esp, 0xc
jmp 0x4293eb
mov ecx, 0x117
call fcn.00434a10
push eax
lea eax, [ebp - 0x208]
push eax
call fcn.00424a70
add esp, 8
lea eax, [ebp - 0x208]
mov dword [ebp - 0x6bc], 1
mov dword [ebp - 0x6b0], eax
lea eax, [ebp - 0x6c4]
push eax
push dword [ebp - 0x7e0]
push 0x1074
push edi
call esi
inc dword [ebp - 0x7e0]
lea edx, [ebp - 0x408]
push ecx
mov ecx, 0x144
call fcn.00434a40
add esp, 4
mov dword [ebp - 0x7d0], eax
lea eax, [ebp - 0x7e4]
push eax
push 0
push 0x104d
push edi
call esi
mov dword [ebp - 0x7e0], eax
mov ecx, 0x11b
mov eax, dword [ebx*4 + 0x1b58b10]
mov dword [eax*4 + 0x1b8ece0], 0
call fcn.00434a10
push eax
lea eax, [ebp - 0x208]
push eax
call fcn.00424a70
push dword [ebx*4 + 0x1b58b10]
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetSmartAttributeIDFirst
add esp, 0xc
mov dword [ebp - 0x7f0], eax
test eax, eax
js 0x42960a
push eax
push 0x80
push eax
lea eax, [ebp - 0x7fc]
mov dword [ebp - 0x7fc], 0
push 0
push eax
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetSmartAttributeByID
mov eax, dword [ebp - 0x7fc]
add esp, 0x14
test eax, eax
jne 0x429534
mov eax, dword [ebp - 0x7f0]
cmp eax, 0xc2
jne 0x4294f0
push dword [ebx*4 + 0x1b58b10]
push 2
push eax
lea eax, [ebp - 0x838]
push 0
push eax
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetSmartAttributeByID
movzx eax, word [ebp - 0x838]
add esp, 0x14
jmp 0x42956a
cmp eax, 0xbe
jne 0x429587
push dword [ebx*4 + 0x1b58b10]
push 1
push eax
lea eax, [ebp - 0x7ec]
push 0
push eax
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetSmartAttributeByID
add esp, 0x14
cmp dword [ebp - 0x804], 0
je 0x429527
mov eax, dword [ebp - 0x7ec]
jmp 0x42956a
mov eax, 0x64
sub eax, dword [ebp - 0x7ec]
jmp 0x42956a
cmp eax, 1
mov eax, dword [ebp - 0x7f0]
jne 0x429587
cmp eax, 1
jne 0x429587
push dword [ebx*4 + 0x1b58b10]
push 2
push eax
lea eax, [ebp - 0x840]
push 0
push eax
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetSmartAttributeByID
mov eax, dword [ebp - 0x840]
add esp, 0x14
add eax, 0xfffffeef
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x80c], eax
comiss xmm0, dword [0x1b8ae24]
jb 0x4295ab
mov ecx, 0x146
jmp 0x4295cf
push dword [ebx*4 + 0x1b58b10]
push 0x40
push eax
lea eax, [ebp - 0x80c]
push 0
push eax
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetSmartAttributeByID
add esp, 0x14
cmp dword [ebp - 0x80c], 1
je 0x4295ca
push dword [ebx*4 + 0x1b58b10]
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetSmartAttributeIDNext
add esp, 4
mov dword [ebp - 0x7f0], eax
test eax, eax
jns 0x429493
jmp 0x42960a
mov ecx, 0x147
call fcn.00434a10
push eax
push ecx
mov ecx, 0x123
call fcn.00434a10
add esp, 4
push eax
lea eax, [ebp - 0x208]
push str._s___s_
push eax
call fcn.00424a70
mov eax, dword [ebx*4 + 0x1b58b10]
add esp, 0x10
mov dword [eax*4 + 0x1b8ece0], 1
mov eax, dword [ebx*4 + 0x1b58b10]
cmp dword [eax*4 + 0x1b8ece0], 0
jne 0x429788
push eax
lea eax, [ebp - 0x7f0]
mov dword [ebp - 0x7f0], 8
push eax
lea eax, [ebp - 0x6a8]
push eax
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetDevicePartitionInfo
add esp, 0xc
test eax, eax
jne 0x429788
mov dword [ebp - 0x7ec], eax
cmp dword [ebp - 0x7f0], eax
jle 0x429788
nop word [eax + eax]
push dword [ebp + eax*4 - 0x6a8]
lea eax, [ebp - 0x7f4]
mov dword [ebp - 0x810], 0
push eax
mov dword [ebp - 0x80c], 0
mov dword [ebp - 0x800], 0
mov dword [ebp - 0x7fc], 0
call sym.DiskCheckup.exe_SysInfoDll_Smart_GetDriveLetterFromDriveNum
movzx eax, word [ebp - 0x7f4]
push eax
lea eax, [ebp - 0x688]
push 0x5bf02c
push eax
call fcn.00424a70
add esp, 0x14
lea eax, [ebp - 0x800]
push 0
push eax
lea eax, [ebp - 0x810]
push eax
lea eax, [ebp - 0x688]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x42972d
cmp dword [ebp - 0x7fc], 0
ja 0x4296ea
cmp dword [ebp - 0x800], 0
jbe 0x42972d
mov edx, dword [ebp - 0x80c]
mov ecx, dword [ebp - 0x810]
call fcn.004f76f0
mov edx, dword [ebp - 0x7fc]
mov ecx, dword [ebp - 0x800]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x804], xmm0
call fcn.004f76f0
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x5c4be8]
comiss xmm0, dword [ebp - 0x804]
ja 0x429748
mov eax, dword [ebp - 0x7ec]
inc eax
mov dword [ebp - 0x7ec], eax
cmp eax, dword [ebp - 0x7f0]
jl 0x429660
jmp 0x429788
mov ecx, 0x145
call fcn.00434a10
push eax
push ecx
mov ecx, 0x123
call fcn.00434a10
add esp, 4
push eax
lea eax, [ebp - 0x208]
push str._s___s_
push eax
call fcn.00424a70
mov eax, dword [ebx*4 + 0x1b58b10]
add esp, 0x10
mov dword [eax*4 + 0x1b8ece0], 1
lea eax, [ebp - 0x208]
mov dword [ebp - 0x6bc], 1
mov dword [ebp - 0x6b0], eax
lea eax, [ebp - 0x6c4]
push eax
push dword [ebp - 0x7e0]
push 0x1074
push edi
call esi
inc dword [ebp - 0x7e0]
lea edx, [ebp - 0x408]
push ecx
mov ecx, 0x39
call fcn.00434a40
add esp, 4
mov dword [ebp - 0x7d0], eax
lea eax, [ebp - 0x7e4]
push eax
push 0
push 0x104d
push edi
call esi
push dword [ebx*4 + 0x1b58b10]
mov dword [ebp - 0x7e0], eax
lea eax, [ebp - 0x208]
push 0x5bf034
push eax
mov dword [ebp - 0x7e8], 0x100
call fcn.00424a70
add esp, 0xc
mov dword [ebp - 0x6bc], 1
lea eax, [ebp - 0x208]
mov dword [ebp - 0x6b0], eax
lea eax, [ebp - 0x6c4]
push eax
push dword [ebp - 0x7e0]
push 0x1074
push edi
call esi
inc dword [ebp - 0x7e0]
lea edx, [ebp - 0x408]
push ecx
mov ecx, 0x47
call fcn.00434a40
add esp, 4
mov dword [ebp - 0x7d0], eax
lea eax, [ebp - 0x7e4]
push eax
push 0
push 0x104d
push edi
call esi
mov dword [ebp - 0x7e0], eax
mov al, byte [ebp - 0x7a5]
mov dword [ebp - 0x7e8], 0x100
cmp al, 0x11
ja 0x429891
movzx eax, al
mov eax, dword [eax*4 + 0x5bd460]
jmp 0x42989b
mov ecx, 0x122
call fcn.00434a10
push eax
lea eax, [ebp - 0x208]
push 0x5bf03c
push eax
invalid