Function at 0x4043f2
Capabilities:
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x40e200]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov esi, ecx
mov edi, 0x2000
mov dword [ebp - 0x18], esi
push edi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], eax
call dword [sym.imp.msvcrt.dll_malloc]
mov ebx, eax
mov dword [ebp - 0x24], ebx
pop ecx
test ebx, ebx
jne 0x404434
mov esi, 0x8007000e
jmp 0x4047d9
push ebx
mov ecx, esi
call fcn.00404c5e
mov esi, eax
test esi, esi
jns 0x40444e
push ebx
call dword [sym.imp.msvcrt.dll_free]
jmp 0x4047d8
xor eax, eax
mov esi, eax
push dword [esi*8 + 0x4012e0]
push ebx
call dword [sym.imp.api_ms_win_core_string_obsolete_l1_1_0.dll_lstrcmpiW]
test eax, eax
je 0x40447b
inc esi
cmp esi, 3
jb 0x404452
push ebx
call dword [sym.imp.msvcrt.dll_free]
mov esi, 0x80020009
jmp 0x4047d8
movzx eax, word [esi*8 + 0x4012e4]
push edi
mov dword [ebp - 0x10], eax
call dword [sym.imp.msvcrt.dll_malloc]
mov edi, eax
pop ecx
test edi, edi
jne 0x4044a5
push ebx
call dword [sym.imp.msvcrt.dll_free]
mov esi, 0x8007000e
jmp 0x4047d8
mov ecx, dword [ebp - 0x18]
call fcn.004054e0
mov ecx, dword [ebp - 0x18]
push edi
call fcn.00404c5e
mov esi, eax
test esi, esi
jns 0x4044cf
push edi
call dword [sym.imp.msvcrt.dll_free]
push ebx
call dword [sym.imp.msvcrt.dll_free]
jmp 0x4047d7
mov eax, dword [ebp - 0x10]
xor ecx, ecx
movzx eax, ax
mov dword [ebp - 0x1c], ecx
sub eax, 8
je 0x404642
sub eax, 9
je 0x404515
dec eax
sub eax, 1
jne 0x4047b4
lea eax, [ebp - 0x1c]
push eax
push ecx
push ecx
push edi
call dword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push 4
push eax
push 4
xor eax, eax
push eax
jmp 0x404617
mov ecx, edi
xor esi, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x40451c
sub ecx, edx
sar ecx, 1
mov dword [ebp - 0x10], ecx
test cl, 1
jne 0x40462a
mov eax, ecx
cdq
sub eax, edx
mov esi, eax
sar esi, 1
mov dword [ebp - 0x14], esi
cmp esi, 0x400
ja 0x404563
mov ecx, esi
call fcn.004048c2
test al, al
je 0x404563
mov eax, esi
call fcn.0040bde0
mov eax, esp
xor ecx, ecx
jmp 0x404586
lea eax, [esi + 8]
cmp eax, esi
jae 0x404570
xor ecx, ecx
mov eax, ecx
jmp 0x404586
push eax
call dword [sym.imp.msvcrt.dll_malloc]
pop ecx
xor ecx, ecx
test eax, eax
je 0x40456c
mov dword [eax], ecx
mov dword [ebp - 0x20], eax
add eax, 8
mov dword [ebp - 8], eax
test eax, eax
je 0x40462a
push esi
push ecx
push eax
call sub.msvcrt.dll_memset
mov esi, dword [ebp - 0x10]
add esp, 0xc
xor edx, edx
test esi, esi
jle 0x40460d
mov ebx, edx
movzx eax, word [edi + ebx*2]
mov ecx, eax
cmp ecx, 0x30
jb 0x4045da
cmp ecx, 0x39
jbe 0x4045d3
cmp ecx, 0x40
jbe 0x4045da
cmp ecx, 0x46
jbe 0x4045cf
cmp ecx, 0x60
jbe 0x4045da
cmp eax, 0x66
ja 0x4045da
sub al, 0x57
jmp 0x4045d5
sub al, 0x37
jmp 0x4045d5
sub al, 0x30
mov dword [ebp - 0xc], eax
jmp 0x4045dd
mov byte [ebp - 0xc], dl
mov edx, ebx
test edx, edx
jns 0x4045e6
add edx, 1
sar edx, 1
mov eax, ebx
and eax, 1
shl eax, 2
push 4
pop ecx
sub ecx, eax
mov eax, dword [ebp - 0xc]
shl al, cl
mov ecx, dword [ebp - 8]
push 0
or byte [edx + ecx], al
inc ebx
pop edx
cmp ebx, esi
jl 0x4045a7
mov ebx, dword [ebp - 0x24]
jmp 0x404610
mov ecx, dword [ebp - 8]
push dword [ebp - 0x14]
push ecx
push 3
push edx
mov eax, dword [ebp + 8]
push dword [ebp + 0xc]
push dword [eax]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
jmp 0x4047b4
push edi
call dword [sym.imp.msvcrt.dll_free]
push ebx
call dword [sym.imp.msvcrt.dll_free]
mov esi, 0x80004005
jmp 0x4047d7
mov edx, edi
mov esi, ecx
mov dword [ebp - 0x10], edx
cmp byte [ebp + 0x14], cl
je 0x404773
mov ecx, edi
xor esi, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x404659
sub ecx, edx
sar ecx, 1
cmp ecx, 0xffe
jg 0x40462a
push 0x2000
call dword [sym.imp.msvcrt.dll_malloc]
mov dword [ebp - 8], eax
pop ecx
test eax, eax
jne 0x40469b
push edi
call dword [sym.imp.msvcrt.dll_free]
push ebx
call dword [sym.imp.msvcrt.dll_free]
mov esi, 0x8007000e
jmp 0x4047d7
mov ecx, dword [ebp - 0x18]
push 0x401a94
mov dword [ebp - 0x14], esi
mov ecx, dword [ecx + 4]
call fcn.004042e7
mov esi, eax
test esi, esi
je 0x404765
mov edx, esi
mov ecx, edi
call fcn.0040434a
mov dword [ebp - 0xc], eax
test eax, eax
je 0x404765
cmp eax, dword [ebp + 0x10]
je 0x4046e6
push eax
push edi
call dword [sym.imp.api_ms_win_core_string_l2_1_0.dll_CharPrevW]
cmp word [eax], 0x22
je 0x404765
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sub eax, edi
sar eax, 1
xor edx, edx
push eax
push edi
push ecx
mov word [ecx], dx
call dword [sym.imp.api_ms_win_core_string_obsolete_l1_1_0.dll_lstrcpynW]
push 0x401aa4
push 0x1000
push dword [ebp - 8]
call dword [sym.imp.msvcrt.dll_wcscat_s]
push esi
push 0x1000
push dword [ebp - 8]
call dword [sym.imp.msvcrt.dll_wcscat_s]
push 0x401aa4
push 0x1000
push dword [ebp - 8]
call dword [sym.imp.msvcrt.dll_wcscat_s]
add esp, 0x24
lea ecx, [esi + 2]
xor edx, edx
mov ax, word [esi]
add esi, 2
cmp ax, dx
jne 0x404738
mov eax, dword [ebp - 0xc]
sub esi, ecx
sar esi, 1
lea eax, [eax + esi*2]
mov esi, dword [ebp - 8]
push eax
push 0x1000
push esi
call dword [sym.imp.msvcrt.dll_wcscat_s]
add esp, 0xc
mov dword [ebp - 0x10], esi
jmp 0x404768
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0x14]
call fcn.004042cb
mov edx, dword [ebp - 0x10]
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x14], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x28]
jne 0x40477b
sub ecx, dword [ebp - 0x14]
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
push 1
xor eax, eax
push eax
mov eax, dword [ebp + 8]
push dword [ebp + 0xc]
push dword [eax]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
test esi, esi
je 0x4047b4
push esi
call dword [sym.imp.msvcrt.dll_free]
pop ecx
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x18]
call fcn.00404c5e
push edi
mov esi, eax
call dword [sym.imp.msvcrt.dll_free]
push ebx
call dword [sym.imp.msvcrt.dll_free]
test esi, esi
js 0x4047d7
xor eax, eax
mov esi, eax
pop ecx
pop ecx
lea ecx, [ebp - 0x20]
call fcn.004042cb
mov eax, esi
lea esp, [ebp - 0x34]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040b490
leave
ret 0x10