Function at 0x5e7ef0
Capabilities:
Set registry value

Disassembly:
push ebp
mov eax, 0x1118
lea ebp, [esp - 0x6c]
call fcn.0081cf10
push ebx
push esi
push edi
lea eax, [ebp - 0x10ac]
mov edi, ecx
xor esi, esi
push eax
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x64], esi
call fcn.005e7150
cmp eax, esi
jl 0x5e82af
lea ecx, [ebp + 0x64]
push ecx
lea edx, [ebp - 0x10ac]
push edx
call fcn.005e8310
add esp, 8
test eax, eax
jne 0x5e7f4e
mov eax, 0x80020009
lea esp, [ebp - 0x10b8]
pop edi
pop esi
pop ebx
add ebp, 0x6c
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [edi]
xor ecx, ecx
mov cl, byte [eax]
push ecx
mov ecx, edi
call fcn.005e7100
test eax, eax
mov ebx, dword [sym.imp.USER32.dll_CharNextA]
je 0x5e7f7d
mov edx, dword [edi]
push edx
call ebx
xor ecx, ecx
mov dword [edi], eax
mov cl, byte [eax]
push ecx
mov ecx, edi
call fcn.005e7100
test eax, eax
jne 0x5e7f66
lea edx, [ebp - 0x10ac]
push edx
mov ecx, edi
call fcn.005e7150
cmp eax, esi
jl 0x5e82af
movzx eax, word [ebp + 0x64]
cmp eax, 0x13
jg 0x5e81be
je 0x5e8101
cmp eax, 8
je 0x5e80d1
cmp eax, 0x11
jne 0x5e829a
lea eax, [ebp - 0x10ac]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
test bl, 1
jne 0x5e8013
cdq
sub eax, edx
mov esi, eax
sar esi, 1
cmp esi, 0x100
mov dword [ebp + 0x68], esi
mov dword [ebp - 0xac], 0
jbe 0x5e802a
push esi
lea ecx, [ebp - 0xac]
call fcn.005e6f50
mov edi, dword [ebp - 0xac]
test edi, edi
jne 0x5e8036
lea ecx, [ebp - 0xa8]
test ecx, ecx
je 0x5e8013
lea ecx, [ebp - 0xac]
call fcn.005e6f40
mov eax, 0x80004005
lea esp, [ebp - 0x10b8]
pop edi
pop esi
pop ebx
add ebp, 0x6c
mov esp, ebp
pop ebp
ret 0xc
lea edi, [ebp - 0xa8]
mov dword [ebp - 0xac], edi
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor edi, edi
test ebx, ebx
jle 0x5e808f
mov edi, edi
mov eax, dword [ebp - 0xac]
mov esi, edi
shr esi, 1
add esi, eax
xor eax, eax
mov al, byte [ebp + edi - 0x10ac]
push eax
call fcn.005e83c0
mov ecx, edi
and ecx, 1
shl ecx, 2
mov edx, ecx
mov ecx, 4
sub ecx, edx
mov dl, byte [esi]
shl al, cl
add esp, 4
or dl, al
inc edi
cmp edi, ebx
mov byte [esi], dl
jl 0x5e8050
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp + 0x78]
mov eax, dword [ebp + 0x74]
mov eax, dword [eax]
push esi
push ecx
push 3
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [ebp - 0xac]
mov esi, eax
lea eax, [ebp - 0xa8]
cmp ecx, eax
je 0x5e8276
lea ecx, [ebp - 0xac]
call fcn.005e6f40
jmp 0x5e8276
lea ecx, [ebp - 0x10ac]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp + 0x74]
inc eax
push eax
mov eax, dword [ebp + 0x78]
lea edx, [ebp - 0x10ac]
push edx
mov edx, dword [ecx]
push 1
push esi
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
jmp 0x5e8276
call dword [0x8ab9f8]
mov ebx, eax
lea eax, [ebp - 0x10ac]
push eax
mov dword [ebp + 0x68], esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea edi, [esi + esi]
cmp edi, 0x400
ja 0x5e8145
push edi
call fcn.005e5c00
add esp, 4
test al, al
je 0x5e8145
mov eax, edi
add eax, 3
and eax, 0xfffffffc
call fcn.0081cf10
mov eax, esp
jmp 0x5e814e
push edi
lea ecx, [ebp + 0x68]
call fcn.005e5e40
push ebx
push esi
lea ecx, [ebp - 0x10ac]
push ecx
push eax
call fcn.005e5c90
test eax, eax
jne 0x5e8180
lea ecx, [ebp + 0x68]
call fcn.005e5d80
mov eax, 0x8007000e
lea esp, [ebp - 0x10b8]
pop edi
pop esi
pop ebx
add ebp, 0x6c
mov esp, ebp
pop ebp
ret 0xc
lea edx, [ebp + 0x58]
push edx
push 0
push 0
push eax
call dword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
mov eax, dword [ebp + 0x58]
mov edx, dword [ebp + 0x78]
push 4
lea ecx, [ebp + 0x60]
push ecx
push 4
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x74]
mov ecx, dword [eax]
push 0
push edx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea ecx, [ebp + 0x68]
mov esi, eax
call fcn.005e5d80
jmp 0x5e8276
cmp eax, 0x4008
jne 0x5e829a
lea edx, [ebp - 0x10ac]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea ecx, [ebp - 0xac]
mov dword [ebp - 0xac], esi
call fcn.005e8430
mov edi, dword [ebp - 0xac]
cmp edi, esi
je 0x5e825c
mov al, byte [ebp - 0x10ac]
test al, al
lea esi, [ebp - 0x10ac]
je 0x5e823c
push esi
call ebx
mov cl, byte [esi]
cmp cl, 0x5c
jne 0x5e821d
cmp byte [eax], 0x30
jne 0x5e821d
mov byte [edi], 0
push eax
inc edi
call ebx
mov esi, eax
jmp 0x5e8237
xor eax, eax
mov byte [edi], cl
mov al, byte [esi]
push eax
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x5e8235
mov cl, byte [esi + 1]
inc edi
inc esi
mov byte [edi], cl
inc edi
inc esi
cmp byte [esi], 0
jne 0x5e8203
mov eax, dword [ebp + 0x78]
mov ecx, dword [ebp + 0x74]
mov byte [edi], 0
mov edx, dword [ebp - 0xac]
push edx
push eax
call fcn.005e82d0
mov edi, dword [ebp - 0xac]
mov esi, eax
jmp 0x5e8261
mov esi, 0xe
lea ecx, [ebp - 0xa8]
cmp edi, ecx
je 0x5e8276
lea ecx, [ebp - 0xac]
call fcn.005e6f40
test esi, esi
je 0x5e8295
push esi
call fcn.005e7cb0
add esp, 4
lea esp, [ebp - 0x10b8]
pop edi
pop esi
pop ebx
add ebp, 0x6c
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [ebp + 0x5c]
xor esi, esi
mov edx, dword [ebp + 0x7c]
push edx
mov ecx, edi
call fcn.005e7150
xor ecx, ecx
cmp eax, esi
setge cl
dec ecx
and eax, ecx
lea esp, [ebp - 0x10b8]
pop edi
pop esi
pop ebx
add ebp, 0x6c
mov esp, ebp
pop ebp
ret 0xc