Function at 0x402b40
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
push edi
push ebx
mov eax, dword [ebp + 8]
movzx esi, ax
mov eax, esi
or eax, 0x41f300
add eax, esi
movzx edi, al
mov ecx, edi
or ecx, esi
movzx ebx, cx
mov ecx, ebx
or ecx, ecx
mov eax, ebx
add eax, ecx
movzx esi, ax
mov edx, esi
shr edx, 3
mov dword [ebp - 4], edx
mov edx, edi
test dl, dl
jne 0x402b90
mov eax, esi
test ax, ax
jne 0x402b8b
push edi
call fcn.00401726
movzx ebx, ax
jmp 0x402d3a
cmp edi, 0x6b
jb 0x402bb0
mov eax, edi
xor eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 4]
and ecx, ebx
push ecx
mov eax, edi
or eax, esi
push eax
call fcn.004041c0
jmp 0x402d3a
cmp edi, 0xdb
jb 0x402c4f
mov edx, dword [ebp - 4]
xor edx, 0x6e
push edx
push edi
push edi
mov ecx, esi
add ecx, 0x70c300
push ecx
mov ecx, esi
xor ecx, 0xc7000000
or ecx, esi
push ecx
mov eax, esi
add eax, eax
sub eax, 0xefd100
push eax
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
xor edx, 0x90e800
mov dword [ebp - 4], edx
mov edx, dword [ebp - 4]
and edx, edx
push edx
push esi
mov ecx, edi
xor ecx, 0x6a9a
mov edx, ebx
sub edx, ecx
push edx
mov eax, ebx
imul eax, dword [ebp - 4]
imul eax, eax, 0xb6000000
push eax
mov ecx, ebx
or ecx, 0x8953
mov eax, ebx
imul eax, ecx
push eax
mov eax, edi
imul eax, eax, 0xe206
sub eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
movzx edi, al
mov edx, ebx
or edx, 0x4f
add edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x402d3a
cmp edi, 0x1c
jbe 0x402d3a
push ebx
push esi
mov ecx, ebx
imul ecx, ecx
push ecx
mov ecx, dword [ebp - 4]
sub ecx, 0x70b7
push ecx
call dword [sym.imp.COMCTL32.dll_FlatSB_SetScrollInfo]
mov edx, dword [ebp - 4]
or edx, edi
push edx
mov edx, esi
and edx, edx
mov eax, esi
sub eax, edx
push eax
mov eax, dword [ebp - 4]
add eax, eax
push eax
call dword [sym.imp.OLEAUT32.dll_CreateTypeLib]
mov ecx, ebx
or ecx, 0x1b000000
mov edx, esi
imul edx, ecx
push edx
call dword [sym.imp.COMCTL32.dll_InitializeFlatSB]
movzx ebx, ax
mov eax, dword [ebp - 4]
movzx ebx, ax
push dword [ebp - 4]
mov eax, edi
xor eax, eax
mov edx, edi
sub edx, eax
push edx
call dword [sym.imp.OLEAUT32.dll_VariantChangeType]
mov eax, esi
mov ecx, 0x36
xor edx, edx
div ecx
movzx ebx, ax
push esi
push dword [ebp - 4]
mov ecx, esi
sub ecx, 0x77fd5243
push ecx
mov edx, edi
imul edx, esi
add edx, 0xe200
push edx
mov ecx, edi
xor ecx, 0x4584880b
add ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 4]
and edx, edx
push edx
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
mov eax, edi
and eax, 0xad
sub eax, dword [ebp - 4]
push eax
mov ecx, ebx
xor ecx, 0x69c1a859
mov eax, dword [ebp - 4]
imul eax, ecx
push eax
mov ecx, ebx
imul ecx, ecx, 0x7b84f79a
push ecx
mov eax, edi
imul eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_StrIsIntlEqualA]
mov ecx, edi
add ecx, dword [ebp - 4]
sub ecx, 0x6a63f278
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
mov edx, edi
shl edx, 8
mov dword [ebp - 8], edx
mov ecx, dword [ebp + 8]
sub ecx, edi
mov dword [ebp - 0xc], ecx
mov ecx, edi
xor ecx, 0x5a00
movzx esi, cx
mov ecx, dword [ebp - 8]
mov eax, ecx
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4