Function at 0x445860
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x63c1e8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x65c
push ebx
mov ebx, ecx
push esi
xor esi, esi
mov eax, dword [ebx + 0x90]
push edi
cmp eax, esi
mov dword [ebp - 0x10], esp
mov dword [ebp - 4], esi
jne 0x44589b
lea eax, [ebx + 0x94]
lea ecx, [ebp - 0x468]
lea edx, [ebp - 0x668]
push ecx
push edx
lea ecx, [ebp - 0x268]
lea edx, [ebp - 0x34]
push ecx
push edx
push eax
call fcn.0060a943
add esp, 0x14
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x24], esi
mov word [ebp - 0x28], si
mov eax, 0x6c900c
test eax, eax
je 0x4459df
lea ecx, [ebp - 0x34]
test ecx, ecx
je 0x4459df
lea edx, [ebp - 0x268]
test edx, edx
je 0x4459df
lea ecx, [ebp - 0x20]
call fcn.004027c0
push esi
push 0x6c900c
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 2
call fcn.004027e0
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x4c]
push eax
call fcn.00401ee0
lea ecx, [ebp - 0x268]
mov byte [ebp - 4], 3
push ecx
lea ecx, [ebp - 0x40]
call fcn.00401ee0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.00401070
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x40]
call fcn.00401f10
push eax
call fcn.00609a4e
add esp, 4
lea ecx, [ebp - 0x4c]
mov edi, eax
call fcn.00401f10
push eax
call fcn.00609a4e
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.00622acb
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x2c], edx
je 0x4459b9
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x40]
call fcn.00401f10
push eax
lea ecx, [ebp - 0x4c]
call fcn.00401f10
push eax
lea ecx, [ebp - 0x20]
call fcn.00401f10
push eax
mov eax, dword [ebp - 0x2c]
push esi
push eax
call fcn.006099de
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00609a4e
add esp, 0x18
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.00401070
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
call fcn.00401070
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call fcn.00401070
xor esi, esi
mov edx, dword [ebx + 0x268]
push esi
push esi
push 0xf0
push edx
mov byte [ebp - 0x11], 1
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, esi
mov dword [ebp - 0x58], esi
setne byte [ebp - 0x12]
mov dword [ebp - 0x50], esi
mov word [ebp - 0x54], si
mov eax, dword [ebx + 0x288]
push esi
push esi
push 0x147
push eax
mov byte [ebp - 4], 5
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0x58]
push ecx
push eax
lea ecx, [ebx + 0x284]
call fcn.00426990
xor edi, edi
mov eax, dword [ebx + 0x5c]
cmp edi, dword [eax + 8]
jge 0x445b38
mov eax, dword [eax + 4]
lea edx, [edi + edi*4]
lea esi, [edi + edx*2]
shl esi, 2
mov ecx, dword [eax + esi + 4]
lea eax, [eax + esi + 4]
test ecx, ecx
jne 0x445a58
lea ecx, [eax + 4]
mov edx, dword [ebp - 0x58]
test edx, edx
jne 0x445a62
lea edx, [ebp - 0x54]
push ecx
push edx
call fcn.0060a1a4
add esp, 8
test eax, eax
jne 0x445b30
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jne 0x445a7e
lea ecx, [ebp - 0x28]
mov edx, dword [ebx + 0x5c]
push ecx
mov eax, dword [edx + 4]
mov eax, dword [eax + esi + 0x20]
push eax
call fcn.0060c3d3
add esp, 8
test eax, eax
je 0x445a9a
mov byte [ebp - 0x11], 0
mov ecx, dword [ebx + 0x5c]
mov edx, dword [ecx + 4]
mov cl, byte [ebp - 0x12]
lea eax, [edx + esi + 0x24]
mov dl, byte [edx + esi + 0x24]
cmp dl, cl
jne 0x445ab3
test cl, cl
je 0x445ae9
test cl, cl
mov byte [eax], cl
je 0x445ae1
mov edi, dword [ebp - 0x2c]
test edi, edi
jne 0x445ac3
lea edi, [ebp - 0x28]
mov eax, dword [ebx + 0x5c]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + esi + 0x20]
lea esi, [ecx + esi + 0x20]
push edx
call dword [0x6fc1e0]
push edi
call dword [0x6fc1e4]
mov dword [esi], eax
mov ecx, dword [ebx + 0x5c]
call fcn.004c31e0
xor esi, esi
mov al, byte [ebp - 0x11]
test al, al
jne 0x445b07
mov eax, dword [ebp - 0x2c]
cmp eax, esi
jne 0x445afc
lea eax, [ebp - 0x28]
push eax
mov ecx, 0x6fc4f8
call fcn.0052aa30
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.00401070
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.00401070
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
xor esi, esi
jmp 0x445a31
xor al, al
test al, al
jne 0x445aeb
mov bl, byte [ebp - 0x12]
mov edx, dword [0x6fcafc]
lea ecx, [ebp - 0x5c]
push 4
xor eax, eax
push ecx
test bl, bl
push 4
push esi
setne al
push str.RememberLastSave
push edx
mov dword [ebp - 0x5c], eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test bl, bl
je 0x445af2
xor eax, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x20], eax
mov word [ebp - 0x1c], si
mov ecx, 0x6c900c
test ecx, ecx
je 0x445c91
lea edx, [ebp - 0x34]
test edx, edx
je 0x445c91
lea ecx, [ebp - 0x268]
test ecx, ecx
je 0x445c91
lea ecx, [ebp - 0x40]
call fcn.004027c0
push esi
push 0x6c900c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 7
call fcn.004027e0
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x68]
push edx
call fcn.00401ee0
lea eax, [ebp - 0x268]
mov bl, 8
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], bl
call fcn.00401ee0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 9
call fcn.00401070
mov esi, dword [ebp - 0x38]
lea ecx, [ebp - 0x4c]
call fcn.00401f10
push eax
call fcn.00609a4e
add esp, 4
lea ecx, [ebp - 0x68]
mov edi, eax
call fcn.00401f10
push eax
call fcn.00609a4e
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.00622acb
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x20], edx
je 0x445c69
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x4c]
call fcn.00401f10
push eax
lea ecx, [ebp - 0x68]
call fcn.00401f10
push eax
lea ecx, [ebp - 0x40]
call fcn.00401f10
push eax
mov eax, dword [ebp - 0x20]
push esi
push eax
call fcn.006099de
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.00609a4e
add esp, 0x18
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], bl
call fcn.00401070
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 7
call fcn.00401070
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 6
call fcn.00401070
mov eax, dword [ebp - 0x20]
xor esi, esi
cmp eax, esi
jne 0x445cce
lea eax, [ebp - 0x1c]
lea edi, [ebp - 0x1c]
push eax
call fcn.00609a4e
add esp, 4
lea edx, [eax + eax + 2]
mov eax, dword [0x6fcafc]
push edx
push edi
push esi
push esi
push str.LocalPathW
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 5
call fcn.00401070
jmp 0x445af2
mov edi, eax
jmp 0x445c9b