Function at 0x100074c0
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x330
mov eax, dword [0x101bafec]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push ebx
push 0
push 0xfde9
mov dword [ebp - 0x32c], ecx
mov dword [ebp - 0x330], eax
call edi
mov esi, eax
push esi
call fcn.1000919e
add esp, 4
mov dword [ebp - 0x328], eax
push 0
push 0
push esi
push eax
push 0xffffffffffffffff
push ebx
push 0
push 0xfde9
call edi
push 0x208
call fcn.1000919e
add esp, 4
mov dword [ebp - 0x318], 0
mov esi, eax
mov dword [ebp - 0x31c], 0
lea eax, [ebp - 0x318]
mov dword [ebp - 0x324], esi
mov byte [ebp - 0x311], 0
push eax
push str.SYSTEMCurrentControlSetEnumUSBPRINT
push reloc.OLEAUT32.dll_SysReAllocString
mov byte [esi], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x1000777e
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
xor ebx, ebx
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x320], ebx
nop dword [eax + eax]
cmp byte [ebp - 0x311], 0
jne 0x100075c1
push 0x104
lea eax, [ebp - 0x310]
push eax
push ebx
push dword [ebp - 0x318]
call edi
test eax, eax
je 0x10007638
cmp eax, 0x103
jne 0x10007733
mov eax, dword [ebp - 0x318]
test eax, eax
je 0x100075ce
push eax
call esi
mov esi, dword [ebp - 0x324]
push 0x208
push dword [ebp - 0x330]
mov dword [ebp - 0x31c], 0
push 0xffffffffffffffff
push esi
push 0
push 0xfde9
mov dword [ebp - 0x318], 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 0x328]
test eax, eax
je 0x10007616
push eax
call fcn.10009199
add esp, 4
push esi
call fcn.10009199
mov al, byte [ebp - 0x311]
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1013fa65
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebp - 0x31c]
push eax
lea eax, [ebp - 0x310]
push eax
push dword [ebp - 0x318]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x1000774b
mov byte [ebp - 0x311], al
xor esi, esi
push 0x104
lea eax, [ebp - 0x108]
push eax
push esi
push dword [ebp - 0x31c]
call edi
test eax, eax
je 0x10007688
cmp eax, 0x103
je 0x10007714
jmp 0x100076fe
mov ebx, dword [ebp - 0x328]
lea eax, [ebp - 0x108]
push ebx
push eax
call fcn.10142460
mov edx, eax
add esp, 8
test edx, edx
je 0x100076fe
mov ecx, ebx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100076b0
sub ecx, edi
cmp byte [ecx + edx], al
jne 0x100076f8
mov byte [edx - 1], al
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [ebp - 0x324]
mov ecx, dword [ebp - 0x32c]
lea eax, [ebp - 0x20c]
push eax
mov byte [ebp - 0x1ff], 0
call fcn.100077a0
test al, al
jne 0x1000770d
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
inc esi
cmp esi, 0x100
jb 0x10007662
jmp 0x10007714
mov byte [ebp - 0x311], 1
mov eax, dword [ebp - 0x31c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x10007727
push eax
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov ebx, dword [ebp - 0x320]
inc ebx
mov dword [ebp - 0x320], ebx
cmp ebx, 0x100
jb 0x10007590
jmp 0x100075c1
push dword [ebp - 0x318]
call esi
mov eax, dword [ebp - 0x328]
mov dword [ebp - 0x318], 0
test eax, eax
je 0x10007770
push eax
call fcn.10009199
add esp, 4
push dword [ebp - 0x324]
call fcn.10009199
add esp, 4
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1013fa65
mov esp, ebp
pop ebp
ret 0xc