Function at 0x458ed0
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x46a880
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push esi
mov esi, ecx
push edi
xor edi, edi
lea ecx, [esi + 0xc]
push 0x46d280
mov dword [esi + 4], edi
mov dword [esi + 8], edi
call fcn.0040afb0
mov al, byte [esi + 0x2d]
test al, al
mov dword [esi + 0x30], edi
jne 0x458f10
mov byte [esi + 0x2c], 0
mov ebx, dword [esp + 0x7c]
mov eax, dword [ebx + 4]
cmp byte [eax], 0x5c
jne 0x458f32
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
add esp, 0x6c
ret 8
push ebp
lea ecx, [esp + 0x10]
call fcn.0042fee0
lea ecx, [esp + 0x30]
mov dword [esp + 0x78], edi
call fcn.0042fee0
push edi
push 0x5c
mov ecx, ebx
mov byte [esp + 0x80], 1
call fcn.00457f10
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x458f75
push ebx
lea ecx, [esp + 0x14]
call fcn.0043a4c0
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x2c], ecx
jmp 0x458fc4
mov eax, dword [ebx + 8]
push eax
call sub.MFC71.DLL_operator_new_1
mov edi, eax
push edi
call fcn.004012c0
add esp, 8
test edi, edi
je 0x4593cd
mov ecx, dword [ebx + 4]
mov edx, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x458f96
push edi
lea ecx, [esp + 0x14]
mov byte [edi + ebp], al
call fcn.0040afb0
lea edx, [edi + ebp + 1]
push edx
lea ecx, [esp + 0x34]
call fcn.0040afb0
push edi
call sub.MFC71.DLL_operator_delete_1
add esp, 4
push str.M_MIL_HKEY_LOCAL_MACHINE_RUNTIME
lea ecx, [esp + 0x54]
call fcn.0040b1b0
mov eax, dword [eax + 4]
mov edi, dword [sym.imp.MSVCR71.dll__stricmp]
push eax
mov eax, dword [esp + 0x18]
push eax
call edi
add esp, 8
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [esp + 0x50]
inc bl
call fcn.0040aec0
test bl, bl
je 0x459018
mov ecx, dword [esp + 0x84]
push ecx
lea edx, [esp + 0x34]
push edx
push 1
mov ecx, esi
call fcn.0045a6c0
mov bl, al
jmp 0x459390
push str.M_MIL_HKEY_CURRENT_USER_RUNTIME
lea ecx, [esp + 0x54]
call fcn.0040b1b0
mov eax, dword [eax + 4]
push eax
mov eax, dword [esp + 0x18]
push eax
call edi
add esp, 8
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [esp + 0x50]
inc bl
call fcn.0040aec0
test bl, bl
je 0x459066
mov ecx, dword [esp + 0x84]
push ecx
lea edx, [esp + 0x34]
push edx
push 2
mov ecx, esi
call fcn.0045a6c0
mov bl, al
jmp 0x459390
push str.M_MIL_HKEY_LOCAL_MACHINE_DEVELOPMENT
lea ecx, [esp + 0x54]
call fcn.0040b1b0
mov eax, dword [eax + 4]
push eax
mov eax, dword [esp + 0x18]
push eax
call edi
add esp, 8
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [esp + 0x50]
inc bl
call fcn.0040aec0
test bl, bl
je 0x4590b4
mov ecx, dword [esp + 0x84]
push ecx
lea edx, [esp + 0x34]
push edx
push 3
mov ecx, esi
call fcn.0045a6c0
mov bl, al
jmp 0x459390
push str.M_MIL_HKEY_CURRENT_USER_RUNTIME
lea ecx, [esp + 0x54]
call fcn.0040b1b0
push eax
lea ecx, [esp + 0x14]
call fcn.00457e70
lea ecx, [esp + 0x50]
mov bl, al
call fcn.0040aec0
test bl, bl
je 0x4590f8
mov eax, dword [esp + 0x84]
push eax
lea ecx, [esp + 0x34]
push ecx
push 4
mov ecx, esi
call fcn.0045a6c0
mov bl, al
jmp 0x459390
push str.M_MIL_HKEY_LOCAL_MACHINE_IMAGING_BOARD
lea ecx, [esp + 0x54]
call fcn.0040b1b0
push eax
lea ecx, [esp + 0x14]
call fcn.00457e70
lea ecx, [esp + 0x50]
mov bl, al
call fcn.0040aec0
test bl, bl
je 0x45913c
mov edx, dword [esp + 0x84]
push edx
lea eax, [esp + 0x34]
push eax
push 5
mov ecx, esi
call fcn.0045a6c0
mov bl, al
jmp 0x459390
push str.HKEY_CLASSES_ROOT
lea ecx, [esp + 0x54]
call fcn.0040b1b0
push eax
lea ecx, [esp + 0x14]
call fcn.00457e70
lea ecx, [esp + 0x50]
mov bl, al
call fcn.0040aec0
test bl, bl
je 0x45916f
mov dword [esi + 4], 0x80000000
jmp 0x45929a
push str.HKEY_CURRENT_USER
lea ecx, [esp + 0x54]
call fcn.0040b1b0
push eax
lea ecx, [esp + 0x14]
call fcn.00457e70
lea ecx, [esp + 0x50]
mov bl, al
call fcn.0040aec0
test bl, bl
je 0x4591a2
mov dword [esi + 4], 0x80000001
jmp 0x45929a
push str.HKEY_LOCAL_MACHINE
lea ecx, [esp + 0x54]
call fcn.0040b1b0
push eax
lea ecx, [esp + 0x14]
call fcn.00457e70
lea ecx, [esp + 0x50]
mov bl, al
call fcn.0040aec0
test bl, bl
je 0x4591d5
mov dword [esi + 4], 0x80000002
jmp 0x45929a
push str.HKEY_USERS
lea ecx, [esp + 0x54]
call fcn.0040b1b0
push eax
lea ecx, [esp + 0x14]
call fcn.00457e70
lea ecx, [esp + 0x50]
mov bl, al
call fcn.0040aec0
test bl, bl
je 0x459208
mov dword [esi + 4], 0x80000003
jmp 0x45929a
push str.HKEY_CURRENT_CONFIG
lea ecx, [esp + 0x54]
call fcn.0040b1b0
push eax
lea ecx, [esp + 0x14]
call fcn.00457e70
lea ecx, [esp + 0x50]
mov bl, al
call fcn.0040aec0
test bl, bl
je 0x459238
mov dword [esi + 4], 0x80000005
jmp 0x45929a
push str.HKEY_DYN_DATA
lea ecx, [esp + 0x54]
call fcn.0040b1b0
push eax
lea ecx, [esp + 0x14]
call fcn.00457e70
lea ecx, [esp + 0x50]
mov bl, al
call fcn.0040aec0
test bl, bl
je 0x459268
mov dword [esi + 4], 0x80000006
jmp 0x45929a
push str.HKEY_PERFORMANCE_DATA
lea ecx, [esp + 0x54]
call fcn.0040b1b0
push eax
lea ecx, [esp + 0x14]
call fcn.00457e70
lea ecx, [esp + 0x50]
mov bl, al
call fcn.0040aec0
test bl, bl
je 0x4593c6
mov dword [esi + 4], 0x80000004
lea ecx, [esp + 0x30]
push ecx
lea ebp, [esi + 0xc]
mov ecx, ebp
call fcn.0043b9c0
mov eax, dword [esi + 8]
test eax, eax
je 0x4592b7
xor bl, bl
jmp 0x459390
mov eax, dword [esi + 0x14]
dec eax
cmp eax, 1
jl 0x4592e6
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
cmp byte [eax + edx - 2], 0x5c
jne 0x4592e6
mov eax, dword [ebp + 8]
push 0x20
add eax, 0xfffffffe
push eax
mov ecx, ebp
call fcn.00457e90
mov eax, dword [esi + 0x14]
dec eax
cmp eax, 1
jge 0x4592c0
mov edi, dword [esi + 0x30]
mov dl, byte [esp + 0x84]
mov eax, dword [esi + 4]
test edi, edi
setne cl
test dl, dl
je 0x45932c
mov edi, dword [ebp + 4]
lea edx, [esp + 0x80]
push edx
lea edx, [esp + 0x88]
push edx
xor edx, edx
test cl, cl
push 0
setne dl
push 0x20019
push edx
push 0
push 0
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
jmp 0x459346
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x84]
push edx
push 0x20019
push 0
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
neg eax
sbb al, al
inc al
test al, al
jne 0x45935b
xor eax, eax
mov dword [esp + 0x84], eax
jmp 0x459362
mov eax, dword [esp + 0x84]
test eax, eax
setne bl
test bl, bl
mov dword [esi + 8], eax
jne 0x459390
xor edi, edi
push 0x46d280
mov ecx, ebp
mov dword [esi + 4], edi
mov dword [esi + 8], edi
call fcn.0040afb0
mov al, byte [esi + 0x2d]
test al, al
mov dword [esi + 0x30], edi
jne 0x459390
mov byte [esi + 0x2c], 0
lea ecx, [esp + 0x30]
mov byte [esp + 0x78], 0
call fcn.0040aec0
lea ecx, [esp + 0x10]
mov dword [esp + 0x78], 0xffffffff
call fcn.0040aec0
pop ebp
pop edi
pop esi
mov al, bl
pop ebx
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
add esp, 0x6c
ret 8
mov ecx, esi
call fcn.00458200
lea ecx, [esp + 0x30]
mov byte [esp + 0x78], 0
call fcn.0040aec0
lea ecx, [esp + 0x10]
mov dword [esp + 0x78], 0xffffffff
call fcn.0040aec0
mov ecx, dword [esp + 0x70]
pop ebp
pop edi
pop esi
xor al, al
pop ebx
mov dword fs:[0], ecx
add esp, 0x6c
ret 8