Function at 0xa686a0
Capabilities:
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28c
mov eax, dword [0xc940a0]
xor eax, esp
mov dword [esp + 0x288], eax
mov edx, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [esp + 8], edx
mov ecx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0x14]
cmp dword [ebx + 0x60], 0
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], esi
je 0xa686eb
cmp dword [ebx + 0x40], 0
je 0xa686eb
cmp dword [ebx + 0x50], 0
jne 0xa686f9
cmp edi, 1
je 0xa686f9
cmp edi, 2
jne case.0xa68b64.1051
cmp edi, 0x100
ja 0xa68951
je 0xa68931
lea eax, [edi - 1]
cmp eax, 0x83
ja case.0xa68b64.1051
movzx eax, byte [eax + 0xa691ac]
jmp dword [eax*4 + 0xa6917c]
push edx
mov ecx, ebx
call fcn.00a873ce
xor ecx, ecx
test eax, eax
setns cl
lea eax, [ecx - 1]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
mov ecx, ebx
call fcn.00b8a151
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebx + 0xfc]
cmp byte [eax + 0x2c], 0
je case.0xa68b64.1051
push 0
mov ecx, eax
call fcn.00b7f934
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push esi
push ecx
push edi
push edx
call dword [sym.imp.ext_ms_win_rtcore_ntuser_window_ext_l1_1_0.dll_DefWindowProcW]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebx + 0x164], 0
je 0xa687c0
mov dword [ebx + 0x164], 0
jmp case.0xa68b64.1031
cmp dword [ebx + 0xcc], 0
je 0xa687e4
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x44], 0
je case.0xa68b64.1031
push dword [eax + 4]
call dword [sym.imp.ext_ms_win_rtcore_ntuser_window_ext_l1_1_0.dll_SetFocus]
jmp case.0xa68b64.1031
mov ecx, dword [ebx + 0xd8]
test ecx, ecx
je 0xa68895
mov eax, dword [0x9f752c]
mov dword [esp + 0x68], eax
mov eax, dword [0x9f7530]
mov dword [esp + 0x6c], eax
mov eax, dword [0x9f7534]
mov dword [esp + 0x70], eax
mov eax, dword [0x9f7538]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0
mov dword [esp + 0x284], 0
mov dword [esp + 0x288], 3
mov dword [esp + 0x28c], 0
mov eax, dword [ecx]
mov esi, dword [eax + 0x34]
lea eax, [esp + 0x68]
push eax
push ecx
mov ecx, esi
call dword [0xc99200]
call esi
test eax, eax
js 0xa68895
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x6c]
push eax
lea ecx, [ebx + 0x30]
call fcn.00b8662e
mov edi, eax
cmp edi, 0xffffffff
je 0xa68895
mov esi, dword [esp + 0x14]
test esi, esi
je 0xa68895
push edi
push esi
mov ecx, ebx
call fcn.00b8b1cc
test eax, eax
je 0xa68895
push 0
push edi
mov ecx, esi
call fcn.00b86b0b
jmp case.0xa68b64.1031
push 1
push 0xc
mov ecx, ebx
call fcn.00b8aca8
jmp case.0xa68b64.1031
push ecx
mov ecx, ebx
call fcn.00a4db80
jmp case.0xa68b64.1031
cmp dword [ebx + 0x114], 0
je 0xa688d7
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
push ecx
mov ecx, ebx
call fcn.00b8c13a
jmp case.0xa68b64.1031
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
push esi
mov ecx, ebx
call fcn.00a78564
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
push dword [ebx + 0xbc]
mov ecx, ebx
push 1
call fcn.00a7c936
jmp case.0xa68b64.1031
push ecx
push ecx
mov ecx, ebx
call fcn.00b8bd64
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
cmp edi, 0x401
ja 0xa68b3c
je 0xa68b0c
cmp edi, 0x218
ja 0xa689c0
je case.0xa6871c.26
mov eax, edi
sub eax, 0x111
je 0xa6898c
sub eax, 2
jne case.0xa68b64.1051
push ecx
mov ecx, ebx
call fcn.00a4aac9
jmp case.0xa68b64.1031
cmp dword [ebx + 0xcc], 0
jne case.0xa68b64.1031
mov eax, ecx
shr eax, 0x10
push eax
push esi
movzx eax, cx
push eax
push ecx
mov ecx, ebx
call fcn.00b8b489
jmp case.0xa68b64.1031
push esi
push ecx
push edi
mov ecx, ebx
call fcn.00a8307f
jmp 0xa6877f
mov eax, edi
sub eax, 0x318
je case.0xa6871c.15
sub eax, 2
jne case.0xa68b64.1051
mov ecx, ebx
call fcn.00a46d82
jmp case.0xa68b64.1031
xor esi, esi
xor edi, edi
mov dword [esp + 0x10], esi
test ecx, ecx
je 0xa68a00
lea eax, [esp + 0x20]
mov dword [esp + 0x14], ecx
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetClipBox]
mov eax, dword [esp + 0x14]
jmp 0xa68a74
lea eax, [esp + 0x18]
push eax
push dword [ebx + 0x1c]
call dword [sym.imp.ext_ms_win_ntuser_draw_l1_1_0.dll_BeginPaint]
mov eax, dword [ebx + 0xc4]
shr eax, 0x1f
test al, al
jne 0xa68af2
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, eax
test esi, esi
je 0xa68af9
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x24]
push ecx
push dword [esp + 0x20]
call dword [sym.imp.ext_ms_win_gdi_draw_l1_1_0.dll_CreateCompatibleBitmap]
mov edi, eax
test edi, edi
je 0xa68a91
push edi
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push 0
push dword [esp + 0x28]
mov dword [esp + 0x18], eax
push dword [esp + 0x28]
push esi
call dword [sym.imp.ext_ms_win_gdi_draw_l1_1_2.dll_OffsetWindowOrgEx]
mov eax, esi
test eax, eax
je 0xa68a84
push 0
push eax
push dword [ebx + 4]
call dword [sym.imp.UxTheme.dll_DrawThemeParentBackground]
cmp dword [esp + 0xc], 0
jne case.0xa68b64.1031
jmp 0xa68a98
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
test esi, esi
je 0xa68af9
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
push 0xcc0020
push edx
push ecx
push esi
sub eax, edx
push eax
mov eax, dword [esp + 0x3c]
sub eax, ecx
push eax
push edx
push ecx
push dword [esp + 0x38]
call dword [sym.imp.ext_ms_win_gdi_draw_l1_1_0.dll_BitBlt]
push dword [esp + 0x10]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
lea eax, [esp + 0x18]
push eax
push dword [ebx + 0x1c]
call dword [sym.imp.ext_ms_win_ntuser_draw_l1_1_0.dll_EndPaint]
jmp case.0xa68b64.1031
mov byte [ebx + 0xc8], 1
lea eax, [esp + 0x18]
push eax
push dword [ebx + 0x1c]
call dword [sym.imp.ext_ms_win_ntuser_draw_l1_1_0.dll_EndPaint]
jmp case.0xa68b64.1031
cmp dword [ebx + 0xcc], 0
jne case.0xa68b64.1031
mov ecx, dword [ebx + 0xd8]
test ecx, ecx
je case.0xa68b64.1031
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0xc99200]
call esi
jmp case.0xa68b64.1031
cmp edi, 0x5b8
ja 0xa6914d
je 0xa69144
lea eax, [edi - 0x402]
cmp eax, 0x62
ja case.0xa68b64.1051
movzx eax, byte [eax + 0xa692a0]
jmp dword [eax*4 + 0xa69230]
push esi
push ecx
mov ecx, ebx
call fcn.00a60880
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebx + 0x2c]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebx + 0x24]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
sub ecx, 5
je 0xa68c23
sub ecx, 4
je 0xa68c0d
sub ecx, 1
jne case.0xa68b64.1031
mov edi, dword [ebx + 0x28]
push esi
mov eax, dword [edi]
mov esi, dword [eax + 0x68]
mov ecx, esi
call dword [0xc99200]
mov ecx, edi
call esi
cmp dword [esp + 0x14], 0
mov ecx, dword [ebx + 0x28]
je 0xa68d33
mov eax, dword [ecx + 0x28]
and eax, 3
cmp al, 3
je case.0xa68b64.1031
call fcn.00ab3485
jmp case.0xa68b64.1031
neg esi
sbb esi, esi
and esi, 5
push esi
push dword [ebx + 0x24]
call dword [sym.imp.ext_ms_win_rtcore_ntuser_window_ext_l1_1_0.dll_ShowWindow]
jmp case.0xa68b64.1031
mov ecx, dword [ebx + 0xe4]
call fcn.00a5a3af
jmp case.0xa68b64.1031
movsx edi, si
shr esi, 0x10
movsx esi, si
cmp ecx, 0xa
jne case.0xa68b64.1031
lea eax, [esp + 0x58]
push eax
mov eax, dword [ebx + 0x28]
push dword [eax + 4]
call dword [sym.imp.ext_ms_win_rtcore_ntuser_window_ext_l1_1_0.dll_GetWindowRect]
push esi
push edi
lea eax, [esp + 0x60]
push eax
call dword [sym.imp.api_ms_win_ntuser_rectangle_l1_1_0.dll_PtInRect]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
mov edi, dword [ebx + 0xec]
cmp dword [edi + 0x28], ecx
je 0xa68c9d
mov eax, dword [edi]
mov dword [edi + 0x28], ecx
mov esi, dword [eax + 0x4c]
mov ecx, esi
call dword [0xc99200]
mov ecx, edi
call esi
mov ecx, dword [esp + 0xc]
mov edi, dword [ebx + 0xf4]
cmp dword [edi + 0x28], ecx
je 0xa68cc0
mov eax, dword [edi]
mov dword [edi + 0x28], ecx
mov esi, dword [eax + 0x4c]
mov ecx, esi
call dword [0xc99200]
mov ecx, edi
call esi
mov ecx, dword [esp + 0xc]
mov edi, dword [ebx + 0xf0]
cmp dword [edi + 0x28], ecx
je 0xa68ce3
mov eax, dword [edi]
mov dword [edi + 0x28], ecx
mov esi, dword [eax + 0x4c]
mov ecx, esi
call dword [0xc99200]
mov ecx, edi
call esi
mov ecx, dword [esp + 0xc]
mov edi, dword [ebx + 0x28]
cmp dword [edi + 0x28], ecx
je 0xa68d03
mov eax, dword [edi]
mov dword [edi + 0x28], ecx
mov esi, dword [eax + 0x4c]
mov ecx, esi
call dword [0xc99200]
mov ecx, edi
call esi
mov ecx, dword [esp + 0xc]
mov edi, dword [ebx + 0xe4]
cmp dword [edi + 0x28], ecx
je 0xa68d26
mov eax, dword [edi]
mov dword [edi + 0x28], ecx
mov esi, dword [eax + 0x4c]
mov ecx, esi
call dword [0xc99200]
mov ecx, edi
call esi
mov ecx, dword [esp + 0xc]
mov eax, dword [ebx + 0x28]
and ecx, 3
cmp cl, 3
jne 0xa68d3d
mov ecx, eax
call fcn.00b5e57e
jmp case.0xa68b64.1031
push 0xfffffffffffffff0
push dword [eax + 4]
call dword [sym.imp.ext_ms_win_rtcore_ntuser_window_ext_l1_1_0.dll_GetWindowLongW]
test eax, 0x10000000
je case.0xa68b64.1031
mov eax, dword [ebx + 0x28]
cmp byte [eax + 0x82], 0
jne case.0xa68b64.1031
push 0
push 0
push dword [eax + 4]
mov byte [eax + 0x82], 1
mov byte [eax + 0x1cf], 1
call dword [sym.imp.ext_ms_win_ntuser_draw_l1_1_0.dll_InvalidateRect]
jmp case.0xa68b64.1031
push ecx
push 3
lea ecx, [ebx + 0x50]
call fcn.00a44eeb
xor ecx, ecx
test eax, eax
setg cl
mov eax, ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x288]
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10
test esi, esi
je case.0xa68b64.1031
push 0
push esi
push ecx
mov ecx, ebx
call fcn.00a4e9e6
mov ecx, esi
call fcn.00a54f3e
push 0x44
push esi
call fcn.00ab420c
add esp, 8
jmp case.0xa68b64.1031
mov ecx, ebx
call fcn.00aa7c08
test eax, eax
jns case.0xa68b64.1031
mov ecx, dword [ebp + 4]
mov edx, 0x18f1
push eax
push 0x9fa3e4
call fcn.00ab606d
jmp case.0xa68b64.1031
push esi
mov ecx, ebx
call fcn.00a7c7e4
push esi
push 0
push 0x40d
push dword [ebx + 0x2c]
call dword [sym.imp.ext_ms_win_rtcore_ntuser_window_ext_l1_1_0.dll_SendMessageW]
jmp case.0xa68b64.1031
cmp dword [ebx + 0xcc], 0
jne case.0xa68b64.1031
lea ecx, [ebx + 0x40]
call fcn.00ab2d19
test eax, eax
je 0xa68e45
push 0xc969fc
call fcn.00ab2170
jmp case.0xa68b64.1031
mov ecx, ebx
call fcn.00aae1cb
push 0
push 0
push 0
lea eax, [esp + 0x18]
mov dword [esp + 0x1c], 0
push eax
lea eax, [esp + 0x20]
mov dword [esp + 0x1c], 4
push eax
push 0
push 0x9fa4a8
push 0x9fa408
call dword [sym.imp.api_ms_win_core_registryuserspecific_l1_1_0.dll_SHRegGetUSValueW]
cmp dword [esp + 0x10], 0
jne case.0xa68b64.1031
xor esi, esi
jmp 0xa68e90
push esi
mov ecx, ebx
call fcn.00a4e1c3
lea edi, [ebx + 0x88]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0xa68eae
push edi
push ecx
push eax
push ecx
call fcn.00aaa848
inc esi
cmp esi, 3
jl 0xa68e90
push 0
push ebx
push fcn.00aa68a0
push 1
mov ecx, edi
call fcn.00aa6d9a
jmp case.0xa68b64.1031
mov dword [ebx + 0x158], 0
jmp case.0xa68b64.1031
mov edx, dword [ebx + 0xd8]
test edx, edx
je 0xa68f15
mov eax, dword [edx]
mov esi, dword [eax + 0x10]
cmp ecx, 1
jne 0xa68f03
cmp dword [ebx + 0xcc], 0
jne 0xa68f03
cmp dword [ebx + 0xe0], 0
je 0xa68f03
mov al, cl
jmp 0xa68f05
xor al, al
push eax
push edx
mov ecx, esi
call dword [0xc99200]
call esi
mov ecx, dword [esp + 0xc]
xor eax, eax
cmp ecx, 1
sete al
mov dword [ebx + 0xe0], eax
jmp case.0xa68b64.1031
push ecx
mov ecx, ebx
call fcn.00b8c0f9
jmp case.0xa68b64.1031
movzx eax, byte [ebx + 0x15d]
test ecx, ecx
push eax
setne al
mov ecx, ebx
movzx eax, al
push eax
call fcn.00a487dd
jmp case.0xa68b64.1031
test ecx, ecx
mov ecx, ebx
setne al
movzx eax, al
push eax
movzx eax, byte [ebx + 0x15c]
push eax
call fcn.00a487dd
jmp case.0xa68b64.1031
mov edx, dword [ebx + 0xd8]
test edx, edx
je case.0xa68b64.1031
test ecx, ecx
je 0xa68fa5
cmp dword [ebx + 0xcc], 0
jne case.0xa68b64.1031
mov eax, dword [edx]
push 1
push edx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0xc99200]
call esi
jmp case.0xa68b64.1031
mov eax, dword [edx]
push 0
push edx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0xc99200]
call esi
jmp case.0xa68b64.1031
cmp dword [ebx + 0xcc], 0
jne case.0xa68b64.1031
mov edi, dword [ebx + 0xe4]
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0xc99200]
mov ecx, edi
call esi
test al, al
je case.0xa68b64.1031
mov ecx, dword [ebx + 0xe4]
push 0
call fcn.00b9bd85
test eax, eax
jns case.0xa68b64.1031
mov ecx, dword [ebp + 4]
mov edx, 0x197a
push eax
push 0x9fa3e4
call fcn.00ab606d
jmp case.0xa68b64.1031
cmp dword [ebx + 0xcc], 0
jne case.0xa68b64.1031
mov edi, dword [ebx + 0xf0]
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0xc99200]
mov ecx, edi
call esi
test al, al
je case.0xa68b64.1031
mov ecx, dword [ebx + 0xf0]
push 0
call fcn.00b65a9a
test eax, eax
jns case.0xa68b64.1031
mov ecx, dword [ebp + 4]
mov edx, 0x1985
push eax
push 0x9fa3e4
call fcn.00ab606d
jmp case.0xa68b64.1031
push ecx
mov ecx, ebx
call fcn.00b8bc71
jmp case.0xa68b64.1031
push 1
mov ecx, ebx
call fcn.00b8982f
jmp case.0xa68b64.1031
push ecx
mov ecx, ebx
call fcn.00b8bc06
jmp case.0xa68b64.1031
push ecx
mov ecx, ebx
call fcn.00b8bcf9
jmp case.0xa68b64.1031
push 1
mov ecx, ebx
call fcn.00a82a37
mov ecx, ebx
call fcn.00a82a95
jmp case.0xa68b64.1031
mov ecx, 0xc95f28
call fcn.00abbec5
test al, al
je case.0xa68b64.1031
lea ecx, [ebx + 0xf8]
call fcn.00abb509
cmp eax, 0xffffffff
je case.0xa68b64.1031
mov esi, dword [ecx]
sub esp, 0x10
mov eax, dword [0x9ff30c]
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [0x9ff310]
mov dword [ecx + 4], eax
mov eax, dword [0x9ff314]
mov dword [ecx + 8], eax
mov eax, dword [0x9ff318]
mov dword [ecx + 0xc], eax
lea ecx, [ebx + 0x40]
call fcn.00aacc46
test eax, eax
mov ecx, esi
setns al
push eax
push dword [esp + 0x18]
push dword [esp + 0x14]
call fcn.00ad0c13
test eax, eax
jns case.0xa68b64.1031
mov ecx, dword [ebp + 4]
mov edx, 0x19a3
push eax
push 0x9fa3e4
call fcn.00ab606d
jmp case.0xa68b64.1031
lea ecx, [ebx + 0x10]
call fcn.00b89250
jmp case.0xa68b64.1031
mov ecx, ebx
call fcn.00aad09e
jmp case.0xa68b64.1031
cmp edi, 0x5c7
jne case.0xa68b64.1051
mov ecx, ebx
call fcn.00a82a69
mov ecx, dword [esp + 0x294]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00ab3c50
mov esp, ebp
pop ebp
ret 0x10