Function at 0x403cb0
Capabilities:
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x34]
push ebx
sub esp, 0x50
mov dword [ebp - 0x34], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xf003f
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftWindows_NTCurrentVersionWindows
mov dword [esp], 0x80000002
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
sub esp, 0x14
cmp eax, 5
je 0x404380
mov ebx, eax
test eax, eax
jne 0x404200
lea ebx, [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x2c], 0
mov edi, dword [sym.imp.advapi32.dll_RegQueryValueExA]
mov dword [ebp - 0x30], 0xf
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.TransmissionRetryTimeout
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call edi
sub esp, 0x18
mov esi, eax
call fcn.00406970
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x423
lea eax, [ebp - 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x30]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
xor eax, eax
and esi, 0xfffffffd
sete al
mov dword [esp + 4], str.returned__lu_and__lu_for___s___expected_ERROR_SUCCESS_or_ERROR_FILE_NOT_FOUND__n
mov dword [esp], eax
call fcn.00401a30
mov dword [esp + 4], str.TransmissionRetryTimeout
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_RegDeleteValueA]
mov dword [ebp - 0x3c], eax
call eax
mov dword [ebp - 0x30], 0xdeadbeef
sub esp, 8
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x38], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0x4080c4
mov dword [esp + 4], str.ConfigureLPTPortCommandOK
mov eax, dword [0x41d470]
mov dword [esp], eax
call dword [0x41d478]
mov edx, dword [ebp - 0x38]
sub esp, 0x1c
cmp eax, 0x57
mov esi, eax
je 0x4043b0
cmp eax, 5
je 0x404230
mov dword [ebp - 0x38], edx
call fcn.00406970
mov edx, dword [ebp - 0x38]
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x435
mov eax, dword [edx + 0x34]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
xor eax, eax
test esi, esi
lea esi, [ebp - 0x1c]
sete al
mov dword [esp + 4], str.returned__ld_with__lu__expected_ERROR_SUCCESS__n
mov dword [esp], eax
call fcn.00401a30
mov dword [ebp - 0x30], 0xf
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.TransmissionRetryTimeout
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call edi
sub esp, 0x18
mov dword [ebp - 0x38], eax
call fcn.00406970
mov edx, dword [ebp - 0x38]
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x438
xor eax, eax
test edx, edx
je 0x404358
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 0x10], 0x40af35
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.returned__ld_and__s__expected_ERROR_SUCCESS_and__s__n
call fcn.00401a30
mov dword [ebp - 0x30], 0xdeadbeef
mov ecx, dword fs:[0x18]
mov dword [ecx + 0x34], 0xdeadbeef
mov dword [ebp - 0x40], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0x4080c0
mov dword [esp + 4], str.ConfigureLPTPortCommandOK
mov eax, dword [0x41d470]
mov dword [esp], eax
call dword [0x41d478]
sub esp, 0x1c
mov dword [ebp - 0x38], eax
call fcn.00406970
mov ecx, dword [ebp - 0x40]
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x441
mov eax, dword [ecx + 0x34]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x38]
xor eax, eax
mov dword [esp + 4], str.returned__ld_with__lu__expected_ERROR_SUCCESS__n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00401a30
mov dword [ebp - 0x30], 0xf
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.TransmissionRetryTimeout
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call edi
sub esp, 0x18
mov dword [ebp - 0x38], eax
call fcn.00406970
mov edx, dword [ebp - 0x38]
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x444
xor eax, eax
test edx, edx
je 0x404330
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 0x10], 0x40af33
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.returned__ld_and__s__expected_ERROR_SUCCESS_and__s__n
call fcn.00401a30
mov dword [ebp - 0x30], 0xdeadbeef
mov ecx, dword fs:[0x18]
mov dword [ecx + 0x34], 0xdeadbeef
mov dword [ebp - 0x40], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xe
mov dword [esp + 8], 0x4080b0
mov dword [esp + 4], str.ConfigureLPTPortCommandOK
mov eax, dword [0x41d470]
mov dword [esp], eax
call dword [0x41d478]
sub esp, 0x1c
mov dword [ebp - 0x38], eax
call fcn.00406970
mov ecx, dword [ebp - 0x40]
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x44c
mov eax, dword [ecx + 0x34]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x38]
xor eax, eax
mov dword [esp + 4], str.returned__ld_with__lu__expected_ERROR_SUCCESS__n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00401a30
mov dword [ebp - 0x30], 0xf
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.TransmissionRetryTimeout
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call edi
sub esp, 0x18
mov dword [ebp - 0x38], eax
call fcn.00406970
mov edx, dword [ebp - 0x38]
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x44f
xor eax, eax
test edx, edx
je 0x404308
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 0x10], str.999999
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.returned__ld_and__s__expected_ERROR_SUCCESS_and__s__n
call fcn.00401a30
mov dword [ebp - 0x30], 0xdeadbeef
mov ecx, dword fs:[0x18]
mov dword [ecx + 0x34], 0xdeadbeef
mov dword [ebp - 0x40], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x4080a0
mov dword [esp + 4], str.ConfigureLPTPortCommandOK
mov eax, dword [0x41d470]
mov dword [esp], eax
call dword [0x41d478]
sub esp, 0x1c
mov dword [ebp - 0x38], eax
call fcn.00406970
mov ecx, dword [ebp - 0x40]
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x457
mov eax, dword [ecx + 0x34]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x38]
xor eax, eax
mov dword [esp + 4], str.returned__ld_with__lu__expected_ERROR_SUCCESS__n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00401a30
mov dword [ebp - 0x30], 0xf
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.TransmissionRetryTimeout
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call edi
sub esp, 0x18
mov ebx, eax
call fcn.00406970
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x45a
xor eax, eax
test ebx, ebx
je 0x4042e0
mov dword [esp], eax
mov dword [esp + 0x10], str.1000000
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], str.returned__ld_and__s__expected_ERROR_SUCCESS_and__s__n
call fcn.00401a30
mov dword [esp + 4], str.TransmissionRetryTimeout
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
sub esp, 8
cmp byte [ebp - 0x2c], 0
jne 0x404260
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.00406970
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x41d
mov dword [esp + 4], ebx
mov dword [esp], str.got__ld_n
call fcn.00401480
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.00406970
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x432
mov dword [esp], str.ConfigureLPTPortCommandOK_failed_with_ERROR_ACCESS_DENIED_n
call fcn.00401480
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x2c]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_strlen]
mov dword [esp + 0xc], 1
add eax, 1
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x2c]
mov dword [esp + 0x10], eax
mov dword [esp + 4], str.TransmissionRetryTimeout
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegSetValueExA]
sub esp, 0x18
mov ebx, eax
call fcn.00406970
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x466
lea eax, [ebp - 0x2c]
mov dword [esp + 0xc], eax
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], str.unable_to_restore_original_value__got__lu_:__s_n
mov dword [esp], eax
call fcn.00401a30
jmp 0x4041e4
mov dword [esp + 4], str.1000000
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_lstrcmpA]
sub esp, 8
test eax, eax
sete al
movzx eax, al
jmp 0x4041a8
mov dword [esp + 4], str.999999
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_lstrcmpA]
mov edx, dword [ebp - 0x38]
sub esp, 8
test eax, eax
sete al
movzx eax, al
jmp 0x4040a6
mov dword [esp + 4], 0x40af33
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_lstrcmpA]
mov edx, dword [ebp - 0x38]
sub esp, 8
test eax, eax
sete al
movzx eax, al
jmp 0x403fa0
mov dword [esp + 4], 0x40af35
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_lstrcmpA]
mov edx, dword [ebp - 0x38]
sub esp, 8
test eax, eax
sete al
movzx eax, al
jmp 0x403e9a
call fcn.00406970
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x417
mov dword [esp], str.ACCESS_DENIED_n
call fcn.00401480
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.00406970
mov dword [eax], 0x40a123
mov dword [eax + 4], 0x42e
mov dword [esp], str.ConfigureLPTPortCommandOK_not_supported_n
call fcn.00401480
jmp 0x4041f3