Function at 0x70d92a00
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x168]
push ebx
sub esp, 0x19c
mov dword [esp + 8], eax
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionThemeManager
mov dword [esp], 0x80000001
call sym._RegOpenKeyW_12
sub esp, 0xc
test eax, eax
jne 0x70d92bf8
test byte [0x70d9808c], 8
jne 0x70d92df0
lea eax, [ebp - 0x158]
lea ebx, [ebp - 0x164]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x168]
mov dword [esp + 0x14], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], str.ThemeActive
mov dword [esp], eax
mov dword [ebp - 0x164], 0x14
call sym._RegQueryValueExW_24
sub esp, 0x18
test eax, eax
jne 0x70d92d50
xor eax, eax
cmp word [ebp - 0x158], 0x30
setne al
mov dword [0x70db3348], eax
mov eax, dword [ebp - 0x168]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0x70db30c0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.ColorName
mov dword [esp], eax
mov dword [ebp - 0x164], pe_nt_image_headers32
call sym._RegQueryValueExW_24
sub esp, 0x18
test eax, eax
je 0x70d92aef
xor esi, esi
mov word [0x70db30c0], si
mov eax, dword [ebp - 0x168]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0x70db3040
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.SizeName
mov dword [esp], eax
mov dword [ebp - 0x164], pe_nt_image_headers32
call sym._RegQueryValueExW_24
sub esp, 0x18
test eax, eax
je 0x70d92b3b
xor ebx, ebx
mov word [0x70db3040], bx
mov dword [ebp - 0x15c], 0x208
mov ebx, dword [ebp - 0x168]
test byte [0x70d9808c], 8
jne 0x70d931c0
lea eax, [ebp - 0x15c]
mov dword [esp + 0x10], 0x70db3140
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x160]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.DllName
mov dword [esp], ebx
call sym._RegQueryValueExW_24
sub esp, 0x18
mov esi, eax
test eax, eax
je 0x70d92dd0
cmp eax, 0xea
je 0x70d92dd0
xor ebx, ebx
mov word [0x70db3140], bx
mov eax, dword [ebp - 0x168]
mov dword [esp], eax
call sym._RegCloseKey_4
sub esp, 4
mov ecx, dword [0x70db3348]
test ecx, ecx
jne 0x70d92c30
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._MSSTYLES_SetActiveTheme
test byte [0x70d9808c], 8
jne 0x70d92d20
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [0x70d9808c], 8
je 0x70d92bbe
mov dword [esp + 0xc], str.Failed_to_open_theme_registry_key_n
mov dword [esp + 8], str.UXTHEME_LoadTheme
mov dword [esp + 4], 0x70d9808c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_7
mov ecx, dword [0x70db3348]
test ecx, ecx
je 0x70d92bc8
nop
xor ecx, ecx
mov edx, 0x70db3040
cmp word [0x70db3040], 0
mov eax, 0x70db30c0
cmove edx, ecx
mov dword [esp], 0x70db3140
cmp word [0x70db30c0], 0
cmove eax, ecx
lea ecx, [ebp - 0x15c]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call sym._MSSTYLES_OpenThemeFile
test eax, eax
js 0x70d92da0
mov ecx, dword [ebp - 0x15c]
mov eax, 0x70db30c0
mov edx, dword [ecx + 0x218]
lea esi, [esi]
movzx esi, word [edx]
test si, si
je 0x70d92ca9
add eax, 2
add edx, 2
mov word [eax - 2], si
cmp eax, 0x70db313e
jne 0x70d92c90
xor edx, edx
mov esi, 0x70db3040
mov word [eax], dx
mov edx, dword [ecx + 0x21c]
mov eax, esi
nop
lea esi, [esi]
movzx edi, word [edx]
test di, di
je 0x70d92cd9
add eax, 2
add edx, 2
mov word [eax - 2], di
cmp eax, 0x70db30be
jne 0x70d92cc0
xor ebx, ebx
mov word [eax], bx
mov dword [esp], ecx
call sym._UXTHEME_SetActiveTheme
test byte [0x70d9808c], 8
jne 0x70d92e20
mov eax, dword [ebp - 0x15c]
mov dword [esp], eax
call sym._MSSTYLES_CloseThemeFile
mov esi, dword [0x70db3348]
test esi, esi
je 0x70d92bc8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], str.Theming_not_active_n
mov dword [esp + 8], str.UXTHEME_LoadTheme
mov dword [esp + 4], 0x70d9808c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_7
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0x70db3348], 0
test byte [0x70d9808c], 8
je 0x70d92aa3
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.Failed_to_get_ThemeActive:__ld_n
mov dword [esp + 8], str.UXTHEME_LoadTheme
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x70d9808c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_7
jmp 0x70d92aa3
mov dword [0x70db3348], 0
xor eax, eax
xor edx, edx
mov word [0x70db3140], ax
xor eax, eax
mov word [0x70db30c0], ax
mov word [0x70db3040], dx
jmp 0x70d92bc8
mov edx, dword [ebp - 0x160]
cmp edx, 2
je 0x70d93308
test esi, esi
je 0x70d92bad
jmp 0x70d92ba4
mov dword [esp + 0xc], str.Loading_theme_config_n
mov dword [esp + 8], str.UXTHEME_LoadTheme
mov dword [esp + 4], 0x70d9808c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_7
jmp 0x70d92a42
mov eax, esi
shr eax, 0x10
je 0x70d93708
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0x70db3040
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov dword [ebp - 0x184], 0x70dae938
sub esp, 8
test eax, eax
jne 0x70d92f3a
cmp word [0x70db3040], 0
je 0x70d93819
nop
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [edx + edx + 0x70db3042], 0
jne 0x70d92e68
mov eax, 0x224c
lea ecx, [ebp - 0x142]
mov esi, 0x70db3040
mov word [ebp - 0x144], ax
jmp 0x70d92ed0
cmp ax, 9
je 0x70d93630
cmp ax, 0xa
jne 0x70d9364e
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
nop
lea esi, [esi]
lea eax, [edx - 1]
test edx, edx
jle 0x70d92f08
lea ebx, [ebp - 0x22]
cmp ecx, ebx
ja 0x70d92f08
mov edx, eax
movzx eax, word [esi]
add esi, 2
cmp ax, 0xd
je 0x70d93618
jbe 0x70d92e98
cmp ax, 0x22
je 0x70d936a0
cmp ax, 0x5c
jne 0x70d93641
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x70d92ec0
mov byte [ecx], 0x22
test eax, eax
jle 0x70d93832
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x144]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [ebp - 0x184], eax
mov ebx, 0x70db30c0
shr ebx, 0x10
je 0x70d936d8
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0x70db30c0
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov dword [ebp - 0x180], 0x70dae938
sub esp, 8
test eax, eax
jne 0x70d93062
cmp word [0x70db30c0], 0
je 0x70d937f8
mov edx, eax
lea eax, [eax + 1]
cmp word [edx + edx + 0x70db30c2], 0
jne 0x70d92f80
mov ebx, 0x224c
lea ecx, [ebp - 0x142]
lea esi, [ebp - 0x22]
mov word [ebp - 0x144], bx
mov ebx, 0x70db30c0
mov dword [ebp - 0x17c], ebx
jmp 0x70d92fed
cmp ax, 9
je 0x70d93518
cmp ax, 0xa
jne 0x70d935ae
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
nop
lea esi, [esi]
lea eax, [edx - 1]
test edx, edx
jle 0x70d93030
cmp ecx, esi
ja 0x70d93030
mov edx, eax
add dword [ebp - 0x17c], 2
mov eax, dword [ebp - 0x17c]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x70d934e8
jbe 0x70d92fb8
cmp ax, 0x22
je 0x70d93600
cmp ax, 0x5c
jne 0x70d935a1
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x70d92fe0
mov byte [ecx], 0x22
test eax, eax
jle 0x70d93811
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x144]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [ebp - 0x180], eax
mov eax, 0x70db3140
mov ebx, eax
shr ebx, 0x10
je 0x70d936b8
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0x70db3140
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x70dae938
sub esp, 8
test eax, eax
jne 0x70d9317e
cmp word [0x70db3140], 0
je 0x70d9383a
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [edx + edx + 0x70db3142], 0
jne 0x70d930a8
mov edi, 0x224c
mov ebx, 0x70db3140
lea ecx, [ebp - 0x142]
mov word [ebp - 0x144], di
lea esi, [ebp - 0x22]
mov dword [ebp - 0x17c], ebx
jmp 0x70d9310d
cmp ax, 9
je 0x70d93500
cmp ax, 0xa
jne 0x70d93536
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea eax, [edx - 1]
cmp ecx, esi
ja 0x70d93150
test edx, edx
jle 0x70d93150
mov edx, eax
add dword [ebp - 0x17c], 2
mov eax, dword [ebp - 0x17c]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x70d934d0
jbe 0x70d930e0
cmp ax, 0x22
je 0x70d93590
cmp ax, 0x5c
jne 0x70d93529
mov eax, 0x5c5c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d93100
mov byte [ecx], 0x22
test eax, eax
jle 0x70d93853
mov edi, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], di
mov byte [eax], 0
lea eax, [ebp - 0x144]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov eax, dword [ebp - 0x184]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Theme_active:__s__s__s_n
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x180]
mov dword [esp + 8], str.UXTHEME_LoadTheme
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0x70d9808c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_7
jmp 0x70d92cf3
mov eax, str.DllName
mov edi, eax
shr edi, 0x10
je 0x70d93468
mov dword [esp + 4], 0xffffffff
mov dword [esp], str.DllName
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x70dae938
sub esp, 8
test eax, eax
jne 0x70d932cc
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [edx + edx + 0x70daea96], 0
jne 0x70d931f8
mov ecx, 0x224c
mov dword [ebp - 0x17c], ebx
mov esi, str.DllName
mov word [ebp - 0x144], cx
lea ecx, [ebp - 0x142]
jmp 0x70d93260
cmp ax, 9
je 0x70d933d8
cmp ax, 0xa
jne 0x70d933f6
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea eax, [edx - 1]
test edx, edx
jle 0x70d93298
lea ebx, [ebp - 0x22]
cmp ecx, ebx
ja 0x70d93298
mov edx, eax
movzx eax, word [esi]
add esi, 2
cmp ax, 0xd
je 0x70d933c0
jbe 0x70d93230
cmp ax, 0x22
je 0x70d93450
cmp ax, 0x5c
jne 0x70d933e9
mov eax, 0x5c5c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d93250
mov byte [ecx], 0x22
mov ebx, dword [ebp - 0x17c]
test eax, eax
jle 0x70d934c0
mov edi, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], di
mov byte [eax], 0
lea eax, [ebp - 0x144]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x18], 0x70db3140
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str._hkey_p__s__p__n
mov dword [esp + 8], 0x70daef1c
mov dword [esp + 4], 0x70d9808c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_7
jmp 0x70d92b58
cmp esi, 0xea
je 0x70d9375a
cmp word [0x70db3140], 0
mov eax, 0x70db3140
je 0x70d93338
nop
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x70d93328
sub eax, 0x70db313e
mov edx, eax
mov dword [ebp - 0x144], edx
mov dword [esp + 4], edx
mov dword [esp], 0x40
call dword [sym.imp.kernel32.dll_LocalAlloc]
mov ebx, eax
sub esp, 8
xor eax, eax
lea esi, [esi]
lea edi, [edi]
movzx edx, word [eax + 0x70db3140]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x70d93360
mov dword [esp + 8], 0x104
mov dword [esp + 4], 0x70db3140
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_ExpandEnvironmentStringsW]
sub esp, 0xc
cmp eax, 0x104
jbe 0x70d93498
cmp dword [ebp - 0x144], eax
cmovae eax, dword [ebp - 0x144]
mov dword [esp], ebx
mov dword [ebp - 0x15c], eax
call dword [sym.imp.kernel32.dll_LocalFree]
sub esp, 4
jmp 0x70d92ba4
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d93250
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d93250
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x70d93488
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefquery_reg_path]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x70d93250
mov eax, 0x225c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d93250
movzx eax, ax
mov dword [esp], 0x70dae92b
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0_2
mov edx, eax
jmp 0x70d932cc
mov byte [ecx], al
add ecx, 1
jmp 0x70d93250
cmp dword [ebp - 0x144], eax
cmovae eax, dword [ebp - 0x144]
mov dword [esp], ebx
mov dword [ebp - 0x15c], eax
call dword [sym.imp.kernel32.dll_LocalFree]
sub esp, 4
jmp 0x70d92ddf
lea eax, [ecx + 1]
jmp 0x70d932b9
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d93100
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d92fe0
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d93100
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d92fe0
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x70d93750
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefquery_reg_path]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x70d93100
mov eax, 0x225c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d93100
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x70d93740
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefquery_reg_path]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x70d92fe0
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x70d92fe0
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d92ec0
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x70d92ec0
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x70d93730
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefquery_reg_path]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefquery_reg_path]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x70d92ec0
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x70d92ec0
movzx eax, ax
mov dword [esp], 0x70dae92b
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0_2
mov edx, eax
jmp 0x70d9317e
mov dword [ebp - 0x17c], 0x70db30c0
movzx ebx, word [ebp - 0x17c]
mov dword [esp], 0x70dae92b
mov dword [esp + 4], ebx
call sym._wine_dbg_sprintf.constprop.0_2
mov dword [ebp - 0x180], eax
jmp 0x70d93062
movzx esi, si
mov dword [esp], 0x70dae92b
mov dword [esp + 4], esi
call sym._wine_dbg_sprintf.constprop.0_2
mov dword [ebp - 0x184], eax
jmp 0x70d92f3a
mov byte [ecx], al
add ecx, 1
jmp 0x70d92ec0
mov byte [ecx], al
add ecx, 1
jmp 0x70d92fe0
mov byte [ecx], al
add ecx, 1
jmp 0x70d93100
mov eax, dword [ebp - 0x15c]
xor esi, esi
mov dword [esp], 0x40
mov word [ebp - 0x16a], si
mov dword [ebp - 0x144], eax
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_LocalAlloc]
sub esp, 8
mov esi, eax
lea eax, [ebp - 0x144]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.DllName
mov dword [esp], ebx
call sym._RegQueryValueExW_24
lea eax, [ebp - 0x16a]
sub esp, 0x18
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_ExpandEnvironmentStringsW]
sub esp, 0xc
cmp dword [ebp - 0x144], eax
cmovae eax, dword [ebp - 0x144]
mov dword [esp], esi
mov dword [ebp - 0x15c], eax
call dword [sym.imp.kernel32.dll_LocalFree]
sub esp, 4
jmp 0x70d92ba4
mov byte [ebp - 0x142], 0x22
mov ecx, 0x224c
mov word [ebp - 0x144], cx
lea ecx, [ebp - 0x142]
lea eax, [ecx + 1]
jmp 0x70d9304b
mov edx, 0x224c
mov byte [ebp - 0x142], 0x22
lea ecx, [ebp - 0x142]
mov word [ebp - 0x144], dx
lea eax, [ecx + 1]
jmp 0x70d92f23
mov esi, 0x224c
mov byte [ebp - 0x142], 0x22
lea ecx, [ebp - 0x142]
mov word [ebp - 0x144], si
lea eax, [ecx + 1]
jmp 0x70d9316b