Function at 0x40b914
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffba8
mov eax, 0x48f16c
push ebx
push esi
push edi
call fcn.004696b8
lea edx, [ebp - 0x40]
push edx
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040b594
add esp, 8
mov esi, eax
test esi, esi
jne 0x40b981
mov word [ebp - 0x2c], 8
mov edx, 0x48c069
lea eax, [ebp - 4]
call fcn.00474b48
inc dword [ebp - 0x20]
mov edx, dword [eax]
mov eax, dword [ebp + 0x14]
call fcn.004578d8
dec dword [ebp - 0x20]
lea eax, [ebp - 4]
mov edx, 2
call fcn.00474d44
or eax, 0xffffffff
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
jmp 0x40bed2
mov edi, dword [ebp + 0x10]
push 0x48c081
push edi
call fcn.0040b39c
add esp, 8
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
test eax, eax
jne 0x40b9df
mov word [ebp - 0x2c], 0x14
mov edx, 0x48c083
lea eax, [ebp - 8]
call fcn.00474b48
inc dword [ebp - 0x20]
mov edx, dword [eax]
mov eax, dword [ebp + 0x14]
call fcn.004578d8
dec dword [ebp - 0x20]
lea eax, [ebp - 8]
mov edx, 2
call fcn.00474d44
mov eax, 1
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
jmp 0x40bed2
push 0x48c09b
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.0040b39c
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x40ba39
mov word [ebp - 0x2c], 0x20
mov edx, 0x48c09e
lea eax, [ebp - 0xc]
call fcn.00474b48
inc dword [ebp - 0x20]
mov edx, dword [eax]
mov eax, dword [ebp + 0x14]
call fcn.004578d8
dec dword [ebp - 0x20]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00474d44
mov eax, 1
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
jmp 0x40bed2
push edi
call sub.USER32.DLL_CharUpperA
movsx ecx, byte [edi]
add ecx, 0xffffffbe
cmp ecx, 0x11
ja case.0x40ba54.66
mov cl, byte [ecx + 0x40ba5b]
jmp dword [ecx*4 + 0x40ba6d]
mov dword [ebp - 0x50], 3
push ebx
call sub.KERNEL32.DLL_lstrlenA
mov ecx, 3
cdq
idiv ecx
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
push eax
call fcn.00468dd0
pop ecx
mov dword [ebp - 0x48], eax
push ebx
call sub.USER32.DLL_CharUpperA
xor eax, eax
test ebx, ebx
mov dword [ebp - 0x4c], eax
mov edx, dword [ebp - 0x48]
mov ecx, edx
mov dword [ebp - 0x58], ecx
je 0x40bd2c
push 0x48c0b6
push ebx
call fcn.0040b39c
add esp, 8
mov edi, eax
xor eax, eax
jmp 0x40bb07
shl al, 4
movsx edx, byte [ebx]
cmp edx, 0x41
jl 0x40baf2
cmp edx, 0x46
jg 0x40baf2
mov cl, byte [ebx]
add cl, 0xc9
or al, cl
jmp 0x40bb06
movsx edx, byte [ebx]
cmp edx, 0x30
jl 0x40bb06
cmp edx, 0x39
jg 0x40bb06
mov cl, byte [ebx]
add cl, 0xd0
or al, cl
inc ebx
mov dl, byte [ebx]
test dl, dl
jne 0x40bad9
mov ecx, dword [ebp - 0x58]
mov ebx, edi
mov byte [ecx], al
inc dword [ebp - 0x4c]
inc dword [ebp - 0x58]
test ebx, ebx
jne 0x40bac5
jmp 0x40bd2c
mov dword [ebp - 0x50], 4
mov dword [ebp - 0x4c], 4
push 4
call fcn.00468dd0
pop ecx
mov dword [ebp - 0x48], eax
push ebx
call sub.USER32.DLL_CharUpperA
push 2
push 0x48c0b8
push ebx
call fcn.00469434
add esp, 0xc
test eax, eax
jne 0x40bb97
xor eax, eax
add ebx, 2
jmp 0x40bb87
shl eax, 4
movsx edx, byte [ebx]
cmp edx, 0x41
jl 0x40bb74
cmp edx, 0x46
jg 0x40bb74
add edx, 0xffffffc9
or eax, edx
jmp 0x40bb86
movsx edx, byte [ebx]
cmp edx, 0x30
jl 0x40bb86
cmp edx, 0x39
jg 0x40bb86
add edx, 0xffffffd0
or eax, edx
inc ebx
mov cl, byte [ebx]
test cl, cl
jne 0x40bb5d
mov edx, dword [ebp - 0x48]
mov dword [edx], eax
jmp 0x40bd2c
push ebx
call fcn.0046d374
pop ecx
mov ecx, dword [ebp - 0x48]
mov dword [ecx], eax
jmp 0x40bd2c
mov dword [ebp - 0x50], 1
push ebx
call sub.KERNEL32.DLL_lstrlenA
inc eax
push eax
call fcn.00468dd0
pop ecx
mov dword [ebp - 0x48], eax
push ebx
call fcn.0040b318
pop ecx
push ebx
mov eax, dword [ebp - 0x48]
push eax
call sub.KERNEL32.DLL_lstrcpyA
mov eax, dword [ebp - 0x48]
push eax
call sub.KERNEL32.DLL_lstrlenA
inc eax
mov dword [ebp - 0x4c], eax
jmp 0x40bd2c
mov edx, dword [ebp + 8]
test edx, edx
jne 0x40bc2b
mov word [ebp - 0x2c], 0x2c
mov edx, 0x48c0bb
lea eax, [ebp - 0x10]
call fcn.00474b48
inc dword [ebp - 0x20]
mov edx, dword [eax]
mov eax, dword [ebp + 0x14]
call fcn.004578d8
dec dword [ebp - 0x20]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.00474d44
or eax, 0xffffffff
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
jmp 0x40bed2
mov dword [ebp - 0x50], 7
push ebx
call sub.KERNEL32.DLL_lstrlenA
mov edi, eax
lea eax, [edi + 2]
push eax
call fcn.00468dd0
pop ecx
mov dword [ebp - 0x48], eax
push ebx
call fcn.0040b318
pop ecx
xor edx, edx
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x48]
mov eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40bc63
inc dword [ebp - 0x4c]
inc dword [ebp - 0x58]
mov edx, dword [ebp - 0x58]
mov cl, byte [edx]
test cl, cl
jne 0x40bc76
mov eax, dword [ebp - 0x58]
mov dl, byte [eax + 1]
test dl, dl
je 0x40bc7d
mov ecx, dword [ebp - 0x4c]
cmp edi, ecx
jg 0x40bc5d
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
mov byte [eax + edx], 0
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
mov byte [ecx + eax + 1], 0
inc dword [ebp - 0x4c]
jmp 0x40bd2c
mov dword [ebp - 0x50], 2
push ebx
call sub.KERNEL32.DLL_lstrlenA
inc eax
push eax
call fcn.00468dd0
pop ecx
mov dword [ebp - 0x48], eax
push ebx
call fcn.0040b318
pop ecx
push ebx
mov edx, dword [ebp - 0x48]
push edx
call sub.KERNEL32.DLL_lstrcpyA
mov ecx, dword [ebp - 0x48]
push ecx
call sub.KERNEL32.DLL_lstrlenA
inc eax
mov dword [ebp - 0x4c], eax
jmp 0x40bd2c
movsx eax, byte [edi]
push eax
push 0x48c0df
lea edx, [ebp - 0x458]
push edx
call sub.USER32.DLL_wsprintfA
mov word [ebp - 0x2c], 0x38
add esp, 0xc
lea edx, [ebp - 0x458]
lea eax, [ebp - 0x14]
call fcn.00474b48
inc dword [ebp - 0x20]
mov edx, dword [eax]
mov eax, dword [ebp + 0x14]
call fcn.004578d8
dec dword [ebp - 0x20]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00474d44
or eax, 0xffffffff
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
jmp 0x40bed2
mov ebx, 0x20019
test esi, esi
je 0x40be6e
push 0x48c112
push esi
call fcn.0040b39c
add esp, 8
mov edi, eax
test edi, edi
jne 0x40bd52
mov ebx, 0x2001f
lea eax, [ebp - 0x54]
push eax
push ebx
push 0
push esi
mov edx, dword [ebp - 0x40]
push edx
call sub.ADVAPI32.DLL_RegOpenKeyExA
test eax, eax
je 0x40be15
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x80000002
je 0x40bdb4
mov eax, dword [ebp - 0x40]
cmp eax, 0x80000003
je 0x40bdb4
mov edx, dword [ebp - 0x40]
cmp edx, 0x80000000
je 0x40bdb4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x80000001
je 0x40bdb4
mov eax, dword [ebp - 0x40]
cmp eax, 0x80000005
je 0x40bdb4
mov edx, dword [ebp - 0x40]
cmp edx, 0x80000006
je 0x40bdb4
mov ecx, dword [ebp - 0x40]
push ecx
call sub.ADVAPI32.DLL_RegCloseKey
push esi
push 0x48c114
lea eax, [ebp - 0x458]
push eax
call sub.USER32.DLL_wsprintfA
mov word [ebp - 0x2c], 0x44
add esp, 0xc
lea edx, [ebp - 0x458]
lea eax, [ebp - 0x18]
call fcn.00474b48
inc dword [ebp - 0x20]
mov edx, dword [eax]
mov eax, dword [ebp + 0x14]
call fcn.004578d8
dec dword [ebp - 0x20]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00474d44
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.00468de0
pop ecx
or eax, 0xffffffff
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
jmp 0x40bed2
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x80000002
je 0x40be5e
mov eax, dword [ebp - 0x40]
cmp eax, 0x80000003
je 0x40be5e
mov edx, dword [ebp - 0x40]
cmp edx, 0x80000000
je 0x40be5e
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x80000001
je 0x40be5e
mov eax, dword [ebp - 0x40]
cmp eax, 0x80000005
je 0x40be5e
mov edx, dword [ebp - 0x40]
cmp edx, 0x80000006
je 0x40be5e
mov ecx, dword [ebp - 0x40]
push ecx
call sub.ADVAPI32.DLL_RegCloseKey
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x40], eax
mov esi, edi
test esi, esi
jne 0x40bd39
mov eax, dword [ebp - 0x4c]
push eax
mov edx, dword [ebp - 0x48]
push edx
mov ecx, dword [ebp - 0x50]
push ecx
push 0
mov eax, dword [ebp - 0x44]
push eax
mov edx, dword [ebp - 0x40]
push edx
call sub.ADVAPI32.DLL_RegSetValueExA
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x80000002
je 0x40bebd
mov eax, dword [ebp - 0x40]
cmp eax, 0x80000003
je 0x40bebd
mov edx, dword [ebp - 0x40]
cmp edx, 0x80000000
je 0x40bebd
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x80000001
je 0x40bebd
mov eax, dword [ebp - 0x40]
push eax
call sub.ADVAPI32.DLL_RegCloseKey
mov edx, dword [ebp - 0x48]
push edx
call fcn.00468de0
pop ecx
xor eax, eax
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret