Function at 0x45d11c
Capabilities:
Delete registry key
Get disk information
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
mov eax, 0x45bbcc
call fcn.00408ee4
mov ebx, 0x2ea0a58
mov esi, dword [0x4d4be0]
mov eax, 0x45bb34
call fcn.00405f84
mov eax, dword [0x4d4c84]
mov dword [eax], 0x4d4b4c
pushal
mov edi, 0x678934
xor eax, eax
lea ecx, [eax + 8]
rep stosd dword es:[edi], eax
mov ebx, 0x4cb478
movzx edx, byte [ebx + ecx]
bts dword [edi - 0x20], edx
mov dword [edx*4 + 0x6c8954], eax
inc ah
inc ecx
cmp ecx, 0x49
jb 0x45d160
xor eax, eax
cdq
mov esi, 0x431390
mov dword [edx*4 + 0x678954], esi
lodsb al, byte [esi]
or eax, eax
je 0x45d194
bt dword [edi - 0x20], eax
jae 0x45d186
inc esi
jmp 0x45d186
inc edx
cmp dx, 0x48e5
jbe 0x45d17f
xor esi, esi
xor ebx, ebx
mov ebp, 0x6b8954
lea eax, [esi*2 + 0x4fcf2c]
mov dword [ebx*4 + 0x4f01d0], eax
xor edi, edi
mov dword [0x6c8d54], edi
mov eax, ebx
call fcn.0045baf8
movzx eax, byte [ebp + edi]
inc edi
mov edx, 0x4fcf2c
or eax, eax
je 0x45d1db
cmp eax, 0x20
jae 0x45d1db
cmp eax, 0xd
jne 0x45d1e1
mov word [edx + esi*2], ax
jmp 0x45d1ec
mov ah, al
mov al, byte [ebp + edi]
mov word [edx + esi*2], ax
inc edi
inc esi
cmp edi, dword [0x6c8d54]
jbe 0x45d1c2
inc ebx
cmp bx, 0x2795
jbe 0x45d1a5
popal
push 0x2f04
mov eax, dword [0x4d4d28]
push eax
mov eax, dword [0x4d4c1c]
push eax
call sub.kernel32.dll_RtlMoveMemory
mov eax, dword [0x4d4c0c]
push eax
mov eax, dword [0x4d4d30]
push eax
mov eax, dword [0x4d4c30]
push eax
push 0xe0
push 0x10
call fcn.0045a7c8
mov eax, dword [0x4d4c98]
push eax
mov eax, dword [0x4d4bfc]
push eax
mov eax, dword [0x4d4cc4]
push eax
push pe_nt_image_headers32
push 0x16
call fcn.0045a7c8
push 0
push dword [0x4f01ec]
call sub.user32.dll_FindWindowW
or eax, eax
je 0x45d281
push 9
push eax
push 0xffffffffffffffeb
push eax
call sub.user32.dll_GetWindowLongW
dec eax
jne 0x45d279
call sub.user32.dll_ShowWindow
jmp 0x45d8b4
call sub.user32.dll_GetParent
pop edx
jmp 0x45d25d
pushal
mov esi, sub.kernel32.dll_RtlZeroMemory
push 0xea92
push 0x6682df
call esi
call fcn.0041dd10
push 0x12000
push 0x2e7b8e4
call esi
push 8
push 0x2e7b8dc
call esi
push 0x40
push 0x2e8db00
call esi
xor eax, eax
mov byte [0x4d4a1a], al
mov byte [0x678934], al
mov dl, 1
call fcn.0045a58c
push 0x1000
push 0x2e8db40
call esi
push 0x7f01
push 0
call sub.user32.dll_LoadCursorW
mov dword [0x2e8d8e4], eax
push 0x28
mov edi, 0x667e66
push edi
call esi
mov dword [edi + 4], sub.user32.dll_DefWindowProcW
mov eax, dword [0x4d856c]
mov dword [edi + 0x10], eax
push 0x7f00
push 0
call sub.user32.dll_LoadCursorW
mov dword [edi + 0x18], eax
push 0xc0c0c0
call sub.gdi32.dll_CreateSolidBrush
mov dword [edi + 0x1c], eax
push 0x4d4b48
push dword [0x4d856c]
call sub.user32.dll_LoadIconA
mov dword [edi + 0x14], eax
mov eax, dword [0x4f01ec]
mov dword [edi + 0x24], eax
push edi
call sub.user32.dll_RegisterClassW
push 0x808080
call sub.gdi32.dll_CreateSolidBrush
mov dword [0x2e8fb40], eax
mov edi, 0x678611
push 0
call sub.user32.dll_GetSystemMetrics
stosd dword es:[edi], eax
push 1
call sub.user32.dll_GetSystemMetrics
stosd dword es:[edi], eax
mul dword [edi - 8]
shl eax, 2
add eax, 0x28
push eax
push 0
call sub.kernel32.dll_GlobalAlloc
mov dword [0x667e90], eax
push 0x6000
push 0x2e90b44
call esi
push 0x40
push 0x2e96b44
call esi
popal
push edi
mov edi, 0x676dd4
push 0x800
push edi
push dword [0x4d856c]
call sub.kernel32.dll_GetModuleFileNameW
cmp word [edi + eax*2], 0x5c
je 0x45d3ad
dec eax
jmp 0x45d3a3
and dword [edi + eax*2 + 2], 0
mov eax, edi
mov dx, 0x380
call fcn.00430db8
pop edi
mov edx, eax
mov al, 3
call fcn.0041a06c
cmp eax, 0xffffffff
je 0x45d4a8
pushal
mov ebx, eax
push 0
push eax
call sub.kernel32.dll_GetFileSize
mov edi, eax
push 0x5078
push 0x2e9b986
call sub.kernel32.dll_RtlZeroMemory
push ebx
push 0
mov esi, 0x2ea0a68
push esi
push edi
mov ebp, 0x2e9b986
push ebp
push ebx
call sub.kernel32.dll_ReadFile
call sub.kernel32.dll_CloseHandle
cmp edi, dword [esi]
jne 0x45d49b
xor eax, eax
mov dl, 0xec
ror byte [eax + ebp], 3
sub byte [ebp + eax], dl
add dl, 0x11
inc eax
cmp eax, edi
jbe 0x45d413
add edi, ebp
mov dword [0x2ea0a00], edi
lea esi, [ebp + 0x16]
mov edi, 0x2e96b44
push edi
call fcn.0045d463
pop edi
xor ebx, ebx
inc ebx
mov edi, ebx
shl edi, 0xc
push edi
add edi, 0x2e90b44
call fcn.0045d463
pop edi
add edi, 0x2e91344
push eax
call fcn.0045d463
pop eax
cmp ebx, 5
jb 0x45d43c
jmp 0x45d49b
lodsd eax, dword [esi]
mov byte [0x4d4a08], al
mov byte [0x4d4a09], ah