Function at 0x40390a
Capabilities:
Set registry value

Disassembly:
mov eax, 0x211c
call fcn.00425750
mov eax, dword [0x448010]
xor eax, esp
mov dword [esp + 0x2118], eax
mov eax, dword [esp + 0x2128]
push ebx
mov ebx, dword [esp + 0x2128]
mov dword [esp + 0x14], eax
xor eax, eax
push ebp
mov ebp, dword [esp + 0x2128]
push esi
mov dword [esp + 0x10], eax
mov esi, ecx
lea eax, [esp + 0x124]
mov dword [esp + 0xc], esi
push eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebx
call fcn.00404016
test eax, eax
js 0x403c76
lea edx, [esp + 0x10]
lea ecx, [esp + 0x124]
call fcn.00403854
test eax, eax
jne 0x403985
mov eax, 0x80020009
jmp 0x403c76
mov ecx, esi
call fcn.004046cd
lea eax, [esp + 0x124]
mov ecx, esi
push eax
call fcn.00404016
test eax, eax
js 0x403c76
movzx eax, word [esp + 0x10]
push edi
sub eax, 8
je 0x403c3c
sub eax, 9
je 0x403b1e
push 2
pop edi
sub eax, edi
je 0x403add
sub eax, 0x3ff5
jne 0x403c61
lea eax, [esp + 0x128]
push eax
call fcn.0042a08a
add eax, edi
mul edi
pop ecx
xor ecx, ecx
mov dword [esp + 0x24], ecx
cmp edx, ecx
ja 0x403c90
cmp eax, 0xffffffff
ja 0x403c90
cmp eax, 0x100
jbe 0x403a13
push eax
lea ecx, [esp + 0x28]
call fcn.00403383
mov esi, dword [esp + 0x24]
xor ecx, ecx
jmp 0x403a1b
lea esi, [esp + 0x28]
mov dword [esp + 0x24], esi
test esi, esi
je 0x403ab1
cmp word [esp + 0x128], 0
lea edi, [esp + 0x128]
je 0x403a6e
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
push 0x30
pop ebp
push edi
call ebx
movzx ecx, word [edi]
cmp ecx, 0x5c
jne 0x403a5a
cmp word [eax], bp
jne 0x403a5a
xor ecx, ecx
push eax
mov word [esi], cx
call ebx
mov edi, eax
jmp 0x403a60
mov word [esi], cx
add edi, 2
xor ecx, ecx
add esi, 2
cmp word [edi], cx
jne 0x403a3e
mov ebp, dword [esp + 0x18]
xor eax, eax
mov dword [esi], eax
mov esi, dword [esp + 0x24]
test esi, esi
jne 0x403a7e
push 0xd
jmp 0x403ab3
mov edi, ecx
mov ebx, esi
push ebx
call fcn.0042a08a
inc eax
pop ecx
lea ebx, [ebx + eax*2]
lea edi, [edi + eax*2]
cmp eax, 1
jne 0x403a82
push edi
push esi
push 7
xor eax, eax
push eax
push dword [esp + 0x2c]
push dword [ebp]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, dword [esp + 0x24]
mov edi, eax
jmp 0x403ab4
push 0xe
pop edi
lea eax, [esp + 0x28]
cmp esi, eax
je 0x403ac5
lea ecx, [esp + 0x24]
call fcn.0040337a
mov esi, dword [esp + 0x10]
test edi, edi
je 0x403c61
mov ecx, edi
call fcn.00404008
jmp 0x403c75
lea eax, [esp + 0x1c]
push eax
xor eax, eax
push eax
push eax
lea eax, [esp + 0x134]
push eax
call dword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
test eax, eax
js 0x403c75
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push 4
push eax
push 4
xor eax, eax
push eax
push ebx
push dword [ebp]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
jmp 0x403ac9
lea eax, [esp + 0x128]
push eax
call fcn.0042a08a
mov ebx, eax
pop ecx
test bl, 1
jne 0x403b84
cdq
xor ecx, ecx
sub eax, edx
mov dword [esp + 0x24], ecx
mov esi, eax
sar esi, 1
mov dword [esp + 0x14], esi
cmp esi, 0xffffffff
ja 0x403c90
cmp esi, 0x100
jbe 0x403b67
push esi
lea ecx, [esp + 0x28]
call fcn.00403383
mov eax, dword [esp + 0x24]
xor ecx, ecx
jmp 0x403b6f
lea eax, [esp + 0x28]
mov dword [esp + 0x24], eax
test eax, eax
jne 0x403b8e
lea eax, [esp + 0x28]
test eax, eax
je 0x403b84
lea ecx, [esp + 0x24]
call fcn.0040337a
mov eax, 0x80004005
jmp 0x403c75
push esi
push ecx
push eax
call fcn.00425780
xor ecx, ecx
add esp, 0xc
mov edi, ecx
test ebx, ebx
jle 0x403c09
push 0x30
pop esi
mov eax, edi
cdq
sub eax, edx
movzx edx, word [esp + edi*2 + 0x128]
mov ebp, eax
mov eax, edx
sar ebp, 1
add ebp, dword [esp + 0x24]
cmp eax, esi
jb 0x403be5
cmp eax, 0x39
jbe 0x403be0
cmp eax, 0x40
jbe 0x403be5
cmp eax, 0x46
jbe 0x403bdb
add eax, 0xffffff9f
cmp eax, 5
ja 0x403be5
sub dl, 0x57
jmp 0x403be7
sub dl, 0x37
jmp 0x403be7
sub dl, 0x30
jmp 0x403be7
mov dl, cl
mov eax, edi
and eax, 1
push 4
shl eax, 2
pop ecx
sub ecx, eax
shl dl, cl
or byte [ebp], dl
inc edi
push 0
pop ecx
cmp edi, ebx
jl 0x403ba4
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
push esi
push dword [esp + 0x28]
push 3
push ecx
push dword [esp + 0x2c]
push dword [ebp]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
lea eax, [esp + 0x28]
cmp dword [esp + 0x24], eax
je 0x403ac5
lea ecx, [esp + 0x24]
call fcn.0040337a
jmp 0x403ac5
lea eax, [esp + 0x128]
push eax
call fcn.0042a08a
pop ecx
lea eax, [eax*2 + 2]
push eax
lea eax, [esp + 0x12c]
push eax
push 1
jmp 0x403b0d
push dword [esp + 0x20]
mov ecx, esi
call fcn.00404016
xor ecx, ecx
test eax, eax
cmovs ecx, eax
mov eax, ecx
pop edi
mov ecx, dword [esp + 0x2124]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004246ea
add esp, 0x211c
ret 0xc
push 0x80070216
call fcn.00405068
int3