Function at 0x1038e45
Capabilities:
Query or enumerate registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x107342c]
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x24]
push eax
push 0x20019
xor edi, edi
push edi
push 0x10145e4
push dword [0x10747a0]
call ebx
test eax, eax
jne 0x1038f5d
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x24]
mov dword [ebp - 0x2c], 9
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
push dword [ebp - 0x24]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x1038f5d
xor edx, edx
mov al, byte [ebp + edx - 0x10]
cmp al, 0x30
jl 0x1038ed5
cmp al, 0x39
jg 0x1038ed5
movsx eax, al
sub eax, 0x30
jmp 0x1038ef8
cmp al, 0x61
jl 0x1038ee5
cmp al, 0x66
jg 0x1038ee5
movsx eax, al
sub eax, 0x57
jmp 0x1038ef8
cmp al, 0x41
jl 0x1038ef5
cmp al, 0x46
jg 0x1038ef5
movsx eax, al
sub eax, 0x37
jmp 0x1038ef8
or eax, 0xffffffff
mov cl, byte [ebp + edx - 0xf]
cmp cl, 0x30
jl 0x1038f0e
cmp cl, 0x39
jg 0x1038f0e
movsx ecx, cl
sub ecx, 0x30
jmp 0x1038f35
cmp cl, 0x61
jl 0x1038f20
cmp cl, 0x66
jg 0x1038f20
movsx ecx, cl
sub ecx, 0x57
jmp 0x1038f35
cmp cl, 0x41
jl 0x1038f32
cmp cl, 0x46
jg 0x1038f32
movsx ecx, cl
sub ecx, 0x37
jmp 0x1038f35
or ecx, 0xffffffff
cmp eax, edi
jl 0x1039251
cmp ecx, edi
jl 0x1039251
shl al, 4
add al, cl
mov ecx, dword [ebp - 0x28]
inc dword [ebp - 0x28]
inc edx
inc edx
cmp edx, 8
mov byte [ecx], al
jb 0x1038ec1
lea eax, [ebp - 0x24]
push eax
push 0x20019
push edi
push 0x10145d8
push dword [0x10747a0]
call ebx
test eax, eax
jne 0x103904e
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x24]
mov dword [ebp - 0x2c], 9
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
push dword [ebp - 0x24]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x103904e
xor edx, edx
mov al, byte [ebp + edx - 0x10]
cmp al, 0x30
jl 0x1038fc6
cmp al, 0x39
jg 0x1038fc6
movsx eax, al
sub eax, 0x30
jmp 0x1038fe9
cmp al, 0x61
jl 0x1038fd6
cmp al, 0x66
jg 0x1038fd6
movsx eax, al
sub eax, 0x57
jmp 0x1038fe9
cmp al, 0x41
jl 0x1038fe6
cmp al, 0x46
jg 0x1038fe6
movsx eax, al
sub eax, 0x37
jmp 0x1038fe9
or eax, 0xffffffff
mov cl, byte [ebp + edx - 0xf]
cmp cl, 0x30
jl 0x1038fff
cmp cl, 0x39
jg 0x1038fff
movsx ecx, cl
sub ecx, 0x30
jmp 0x1039026
cmp cl, 0x61
jl 0x1039011
cmp cl, 0x66
jg 0x1039011
movsx ecx, cl
sub ecx, 0x57
jmp 0x1039026
cmp cl, 0x41
jl 0x1039023
cmp cl, 0x46
jg 0x1039023
movsx ecx, cl
sub ecx, 0x37
jmp 0x1039026
or ecx, 0xffffffff
cmp eax, edi
jl 0x1039251
cmp ecx, edi
jl 0x1039251
shl al, 4
add al, cl
mov ecx, dword [ebp - 0x28]
inc dword [ebp - 0x28]
inc edx
inc edx
cmp edx, 8
mov byte [ecx], al
jb 0x1038fb2
lea eax, [ebp - 0x24]
push eax
push 0x20019
push edi
push 0x10145d0
push dword [0x10747a0]
call ebx
test eax, eax
jne 0x103913f
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x24]
mov dword [ebp - 0x2c], 9
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
push dword [ebp - 0x24]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x103913f
xor edx, edx
mov al, byte [ebp + edx - 0x10]
cmp al, 0x30
jl 0x10390b7
cmp al, 0x39
jg 0x10390b7
movsx eax, al
sub eax, 0x30
jmp 0x10390da
cmp al, 0x61
jl 0x10390c7
cmp al, 0x66
jg 0x10390c7
movsx eax, al
sub eax, 0x57
jmp 0x10390da
cmp al, 0x41
jl 0x10390d7
cmp al, 0x46
jg 0x10390d7
movsx eax, al
sub eax, 0x37
jmp 0x10390da
or eax, 0xffffffff
mov cl, byte [ebp + edx - 0xf]
cmp cl, 0x30
jl 0x10390f0
cmp cl, 0x39
jg 0x10390f0
movsx ecx, cl
sub ecx, 0x30
jmp 0x1039117
cmp cl, 0x61
jl 0x1039102
cmp cl, 0x66
jg 0x1039102
movsx ecx, cl
sub ecx, 0x57
jmp 0x1039117
cmp cl, 0x41
jl 0x1039114
cmp cl, 0x46
jg 0x1039114
movsx ecx, cl
sub ecx, 0x37
jmp 0x1039117
or ecx, 0xffffffff
cmp eax, edi
jl 0x1039251
cmp ecx, edi
jl 0x1039251
shl al, 4
add al, cl
mov ecx, dword [ebp - 0x28]
inc dword [ebp - 0x28]
inc edx
inc edx
cmp edx, 8
mov byte [ecx], al
jb 0x10390a3
lea eax, [ebp - 0x24]
push eax
push 0x20019
push edi
push 0x10145c4
push dword [0x10747a0]
call ebx
test eax, eax
jne 0x1039226
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x24]
mov dword [ebp - 0x2c], 9
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
push dword [ebp - 0x24]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x1039226
mov esi, dword [ebp - 0x28]
xor edx, edx
mov al, byte [ebp + edx - 0x10]
cmp al, 0x30
jl 0x10391ab
cmp al, 0x39
jg 0x10391ab
movsx eax, al
sub eax, 0x30
jmp 0x10391ce
cmp al, 0x61
jl 0x10391bb
cmp al, 0x66
jg 0x10391bb
movsx eax, al
sub eax, 0x57
jmp 0x10391ce
cmp al, 0x41
jl 0x10391cb
cmp al, 0x46
jg 0x10391cb
movsx eax, al
sub eax, 0x37
jmp 0x10391ce
or eax, 0xffffffff
mov cl, byte [ebp + edx - 0xf]
cmp cl, 0x30
jl 0x10391e4
cmp cl, 0x39
jg 0x10391e4
movsx ecx, cl
sub ecx, 0x30
jmp 0x103920b
cmp cl, 0x61
jl 0x10391f6
cmp cl, 0x66
jg 0x10391f6
movsx ecx, cl
sub ecx, 0x57
jmp 0x103920b
cmp cl, 0x41
jl 0x1039208
cmp cl, 0x46
jg 0x1039208
movsx ecx, cl
sub ecx, 0x37
jmp 0x103920b
or ecx, 0xffffffff
cmp eax, edi
jl 0x1039251
cmp ecx, edi
jl 0x1039251
shl al, 4
add al, cl
mov byte [esi], al
inc esi
inc edx
inc edx
cmp edx, 8
jb 0x1039197
xor eax, eax
movzx ecx, byte [eax + 0x1073350]
mov dl, byte [ebp + eax - 0x20]
mov esi, dword [ebp - 0x30]
inc eax
cmp eax, 0x10
mov byte [ecx + esi], dl
jb 0x1039228
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0103e4d8
leave
ret 4
xor eax, eax
jmp 0x1039242