Function at 0x409e10
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x5c
mov eax, dword [0x84b16c]
mov edx, eax
and edx, 0x802
cmp edx, 0x802
je 0x40a3c4
test al, 2
jne 0x409f00
test al, 4
je 0x409ef0
mov esi, dword [ebx + 0x7f4]
mov eax, dword [ebx + 0x7f8]
cmp eax, esi
je 0x409ef0
lea edx, [esi + 0x50]
sub eax, edx
shr eax, 4
imul eax, eax, 0xccccccd
lea edi, [eax + eax*4]
shl edi, 4
add edi, edx
jmp 0x409eac
imul ecx, ecx, 0x4c
add ecx, dword [ebx + 0x800]
mov dword [esp], ebx
call fcn.00409820
sub esp, 4
mov ecx, esi
mov dword [esp], ebx
add esi, 0x50
call fcn.00408e30
sub esp, 4
mov dword [esp + 4], 0x72f268
mov dword [esp], 0x849160
call fcn.0041ef00
cmp esi, edi
je 0x409ef0
mov ecx, esi
mov dword [esp], ebx
call fcn.00408ca0
sub esp, 4
mov dword [esp + 4], 0x72f25c
mov dword [esp], 0x849160
call fcn.0041ef00
mov ecx, dword [esi]
test ecx, ecx
jns 0x409e70
mov dword [esp + 4], 0x72f26b
mov dword [esp], 0x849160
call fcn.0041ef00
jmp 0x409e84
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], str.Windows_n
mov dword [esp], 0x849160
call fcn.0041ef00
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 8]
movzx edx, byte [ebx + 0x11a]
mov edi, dword [ebx + 0xc]
lea eax, [ecx + ecx*4]
lea eax, [esi + eax*2]
sub edx, 2
cmp eax, 0x32
je 0x40a535
cmp eax, 0x33
jne 0x40a5c1
cmp dl, 1
ja 0x40a86b
mov eax, dword [ebx + 0x854]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov dword [esp + 4], str.__Version:______S___d._d._d__n
mov dword [esp], 0x849160
call fcn.0041ef00
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], str.__PlatformId:___d_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
lea eax, [ebx + 0x14]
mov dword [esp + 4], str.__Update:_______S_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
cmp dword [ebx], 0x11c
je 0x40a790
mov dword [esp + 4], str._nEnvironment_n
mov dword [esp], 0x849160
call fcn.0041ef00
mov eax, dword [ebx + 0x138]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str.__windir:_______S_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [ebx + 0x13c]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str.__temp:_________S_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov dword [esp + 4], str._nMotherboard_n
mov dword [esp], 0x849160
call fcn.0041ef00
mov eax, dword [ebx + 0x12c]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str.__Product:______S_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [ebx + 0x128]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str.__Model:________S_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [ebx + 0x124]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str.__Manuf:________S_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [ebx + 0x144]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str.__cs_Model:_____S_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [ebx + 0x140]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str.__cs_Manuf:_____S_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [ebx + 0x148]
mov dword [esp + 4], str.__Chassis:______d_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov dword [esp + 4], str._nBattery_n
mov dword [esp], 0x849160
call fcn.0041ef00
mov esi, dword [ebx + 0x134]
add esi, dword [ebx + 0x828]
mov dword [esp + 4], str.__AC_Status:
mov dword [esp], 0x849160
call fcn.0041ef00
movzx eax, byte [esi]
test al, al
je 0x40a691
cmp al, 1
jne 0x40a6b0
mov dword [esp + 4], str.Online_n
mov dword [esp], 0x849160
call fcn.0041ef00
movzx edi, byte [esi + 1]
mov dword [esp + 4], str.__Flags:________d
mov dword [esp], 0x849160
mov eax, edi
movzx ebp, al
mov dword [esp + 8], ebp
call fcn.0041ef00
test edi, 1
jne 0x40a6f0
test edi, 2
jne 0x40a730
test edi, 4
jne 0x40a710
test edi, 8
jne 0x40a6d0
mov eax, edi
test al, al
js 0x40a750
cmp ebp, 0xff
je 0x40a770
mov dword [esp + 4], 0x72f1ab
mov dword [esp], 0x849160
call fcn.0041ef00
movzx eax, byte [esi + 2]
cmp al, 0xff
je 0x40a1ec
mov dword [esp + 8], eax
mov dword [esp + 4], str.__Charged:_______d_n
mov dword [esp], 0x849160
call fcn.0041ef00
mov edx, dword [esi + 4]
cmp edx, 0xffffffff
je 0x40a218
mov ecx, 0x88888889
mov eax, edx
mov dword [esp + 4], str.__LifeTime:______d_mins_n
mul ecx
mov dword [esp], 0x849160
shr edx, 5
mov dword [esp + 8], edx
call fcn.0041ef00
mov edx, dword [esi + 8]
cmp edx, 0xffffffff
je 0x40a244
mov ecx, 0x88888889
mov eax, edx
mov dword [esp + 4], str.__FullLifeTime:__d_mins_n
mul ecx
mov dword [esp], 0x849160
shr edx, 5
mov dword [esp + 8], edx
call fcn.0041ef00
mov eax, dword [ebx + 0x130]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str._nMonitors_n
mov dword [esp], 0x849160
mov edi, eax
call fcn.0041ef00
cmp word [edi], 0
je 0x40a31a
xor esi, esi
mov dword [esp + 0x40], ebx
lea esi, [esi]
lea edi, [edi]
movzx ebp, word [edi + esi*4 + 2]
add esi, 1
mov edx, str.wide
movzx eax, word [edi + esi*4]
mov ebx, 0x72efac
mov dword [esp + 0x38], eax
mov ecx, eax
fild dword [esp + 0x38]
mov dword [esp + 0x38], ebp
fild dword [esp + 0x38]
fdivp st(1)
fld qword [0x730130]
fxch st(1)
fucomi st(1)
fstp st(1)
cmova ebx, edx
mov edx, ebp
imul edx, ebp
imul ecx, eax
add edx, ecx
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
fld st(0)
fsqrt
fldz
fucompi st(2)
ja 0x40a7fd
fstp st(1)
fxch st(1)
fstp qword [esp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 8], ebp
mov dword [esp + 4], str.___dcmx_dcm___.1fin__t_.3f__s_n
fdiv qword [0x730138]
mov dword [esp], 0x849160
fstp qword [esp + 0x10]
call fcn.0041ef00
movzx eax, word [edi]
cmp eax, esi
ja 0x40a280
mov ebx, dword [esp + 0x40]
mov dword [esp + 4], str._nMisc_n
mov dword [esp], 0x849160
call fcn.0041ef00
mov eax, dword [ebx + 0x850]
mov edx, str.Laptop
mov dword [esp + 4], str.__Type:_________s_n
mov dword [esp], 0x849160
test eax, eax
mov eax, str.Desktop
cmovne eax, edx
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [ebx + 0x11c]
mov dword [esp + 4], str.__Locale:_______X_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov edx, dword [ebx + 0x120]
mov eax, str.32_bit
mov dword [esp + 4], str.__CPU_Arch:_____s_n
mov dword [esp], 0x849160
test edx, edx
mov edx, str.64_bit
cmovne eax, edx
mov dword [esp + 8], eax
call fcn.0041ef00
mov dword [esp + 4], 0x72f1ab
mov dword [esp], 0x849160
call fcn.0041ef00
mov eax, dword [0x84b16c]
jmp 0x409e3a
mov esi, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
movzx edx, byte [ebx + 0x11a]
lea eax, [ecx + ecx*4]
sub edx, 2
lea eax, [esi + eax*2]
cmp eax, 0x32
je 0x40a620
cmp eax, 0x33
jne 0x40a4f2
cmp dl, 1
ja 0x40a861
mov eax, dword [ebx + 0x854]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 0x14], edi
mov dword [esp + 4], str._S___d._d._d__
mov dword [esp], 0x849160
call fcn.0041ef00
mov ecx, dword [ebx + 0x120]
mov edx, str.64_bit
mov eax, str.32_bit
mov dword [esp + 4], 0x72efbd
mov dword [esp], 0x849160
test ecx, ecx
cmovne eax, edx
mov dword [esp + 8], eax
call fcn.0041ef00
mov esi, dword [ebx + 0x850]
mov edx, str.Laptop
mov eax, str.Desktop
mov dword [esp + 4], 0x72efc1
mov dword [esp], 0x849160
test esi, esi
cmovne eax, edx
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [ebx + 0x12c]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str.Product_S_
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [ebx + 0x128]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str.Model_S_
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [ebx + 0x124]
add eax, dword [ebx + 0x828]
mov dword [esp + 4], str.Manuf_S_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
mov eax, dword [0x84b16c]
jmp 0x409e3a
cmp eax, 0x34
jne 0x40a511
xor eax, eax
cmp dl, 2
setb al
add eax, 2
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x730068]
jmp 0x40a3fe
cmp eax, 0x3c
jne 0x40a523
xor eax, eax
cmp dl, 2
setb al
add eax, 5
jmp 0x40a502
cmp eax, 0x3d
jne 0x40a545
xor eax, eax
cmp dl, 1
seta al
add eax, 7
jmp 0x40a502
cmp dl, 1
jbe 0x409f48
xor eax, eax
jmp 0x40a5d1
cmp eax, 0x3e
jne 0x40a560
xor eax, eax
cmp dl, 1
seta al
add eax, 9
jmp 0x40a502
cmp eax, 0x3f
jne 0x40a572
xor eax, eax
cmp dl, 1
seta al
add eax, 0xb
jmp 0x40a502
cmp eax, 0x40
jne 0x40a590
cmp dl, 1
jbe 0x40a3f8
mov eax, 0xd
jmp 0x40a502
cmp eax, 0x64
jne 0x40a5a5
xor eax, eax
cmp dl, 1
seta al
add eax, 0xe
jmp 0x40a502
cmp eax, 0x6e
jne 0x40a3f8
cmp dl, 1
mov eax, 0x10
jbe 0x40a3f8
jmp 0x40a502
cmp eax, 0x34
jne 0x40a5e0
xor eax, eax
cmp dl, 2
setb al
add eax, 2
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x730068]
jmp 0x409f4e
cmp eax, 0x3c
jne 0x40a5f2
xor eax, eax
cmp dl, 2
setb al
add eax, 5
jmp 0x40a5d1
cmp eax, 0x3d
jne 0x40a604
xor eax, eax
cmp dl, 1
seta al
add eax, 7
jmp 0x40a5d1
cmp eax, 0x3e
jne 0x40a630
xor eax, eax
cmp dl, 1
seta al
add eax, 9
jmp 0x40a5d1
cmp dl, 1
jbe 0x40a3f8
xor eax, eax
jmp 0x40a502
cmp eax, 0x3f
jne 0x40a642
xor eax, eax
cmp dl, 1
seta al
add eax, 0xb
jmp 0x40a5d1
cmp eax, 0x40
jne 0x40a660
cmp dl, 1
jbe 0x409f48
mov eax, 0xd
jmp 0x40a5d1
cmp eax, 0x64
jne 0x40a675
xor eax, eax
cmp dl, 1
seta al
add eax, 0xe
jmp 0x40a5d1
cmp eax, 0x6e
jne 0x409f48
cmp dl, 1
mov eax, 0x10
jbe 0x409f48
jmp 0x40a5d1
mov dword [esp + 4], str.Offline_n
mov dword [esp], 0x849160
call fcn.0041ef00
jmp 0x40a151
mov dword [esp + 4], str.Unknown_n
mov dword [esp], 0x849160
call fcn.0041ef00
jmp 0x40a151
mov dword [esp + 4], str._charging_
mov dword [esp], 0x849160
call fcn.0041ef00
jmp 0x40a1a2
mov dword [esp + 4], str._high_
mov dword [esp], 0x849160
call fcn.0041ef00
jmp 0x40a17e
mov dword [esp + 4], str._critical_
mov dword [esp], 0x849160
call fcn.0041ef00
jmp 0x40a196
mov dword [esp + 4], str._low_
mov dword [esp], 0x849160
call fcn.0041ef00
jmp 0x40a18a
mov dword [esp + 4], str._no_battery_
mov dword [esp], 0x849160
call fcn.0041ef00
jmp 0x40a1ac
mov dword [esp + 4], str._unknown_
mov dword [esp], 0x849160
call fcn.0041ef00
jmp 0x40a1b8
movzx eax, word [ebx + 0x116]
mov dword [esp + 0xc], eax
movzx eax, word [ebx + 0x114]
mov dword [esp + 4], str.__ServicePack:__d._d_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
movzx eax, word [ebx + 0x118]
mov dword [esp + 4], str.__SuiteMask:____d_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
movzx eax, byte [ebx + 0x11a]
mov dword [esp + 4], str.__ProductType:__d_n
mov dword [esp], 0x849160
mov dword [esp + 8], eax
call fcn.0041ef00
jmp 0x409fb4
fxch st(2)
fstp qword [esp + 0x48]
fxch st(1)
mov dword [esp + 0x44], eax
fstp qword [esp + 0x38]
fstp qword [esp]
call fcn.005e8250
fstp st(0)
fld qword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], ebx
mov dword [esp + 8], ebp
fstp qword [esp + 0x18]
mov dword [esp + 4], str.___dcmx_dcm___.1fin__t_.3f__s_n
mov dword [esp], 0x849160
mov dword [esp + 0xc], eax
fld qword [esp + 0x38]
fdiv qword [0x730138]
fstp qword [esp + 0x10]
call fcn.0041ef00
movzx eax, word [edi]
cmp esi, eax
jb 0x40a280
jmp 0x40a316
mov eax, 1
jmp 0x40a502
mov eax, 1
jmp 0x40a5d1