Function at 0x70a4b960
Capabilities:
Check for peb beingdebugged flag
Get process heap flags
Link many functions at runtime
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov dword [ebp - 0x1c], 0
test byte [0x70a4d060], 8
jne 0x70a4bfa0
mov eax, dword [sym.imp.advapi32.dll_RegOpenKeyExW]
lea edi, [ebp - 0x24]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 0x10], edi
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareClientsMail
mov dword [esp], 0x80000002
mov dword [ebp - 0x30], eax
call eax
sub esp, 0x14
test eax, eax
je 0x70a4b9c0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x20]
lea esi, [ebp - 0x1c]
mov dword [esp + 0x10], 0
mov ebx, dword [sym.imp.advapi32.dll_RegQueryValueExW]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 0x14], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call ebx
sub esp, 0x18
test eax, eax
jne 0x70a4bf30
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x20]
dec eax
cmp eax, 1
ja 0x70a4bf30
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x70a4bf30
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov ecx, dword fs:[0x18]
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x38], eax
call eax
mov dword [ebp - 0x2c], eax
sub esp, 0xc
test eax, eax
je 0x70a4bf30
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call ebx
mov edx, dword [ebp - 0x34]
sub esp, 0x18
test byte [0x70a4d060], 8
jne 0x70a4c008
mov eax, 0x6f
mov ecx, str.SoftwareClientsMail
jmp 0x70a4ba9c
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x70a4ba98
mov eax, dword [ebp - 0x2c]
sub ecx, str.SoftwareClientsMail
sar ecx, 1
cmp word [eax], 0
je 0x70a4bac8
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x70a4bab8
sub eax, dword [ebp - 0x2c]
sar eax, 1
mov edx, eax
lea edx, [edx + ecx + 2]
mov dword [esp + 4], 0
add edx, edx
mov dword [esp + 8], edx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x38]
call eax
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x70a4c040
xor eax, eax
mov edx, 0x53
jmp 0x70a4bb0f
movzx edx, word [eax + str.SoftwareClientsMail]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x70a4bb08
cmp word [ebx], 0
mov edx, ebx
je 0x70a4bb31
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x70a4bb28
xor eax, eax
mov ecx, 0x5c
jmp 0x70a4bb47
movzx ecx, word [eax + 0x70a50950]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x70a4bb40
cmp word [ebx], 0
mov edx, ebx
je 0x70a4bb69
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x70a4bb60
mov esi, dword [ebp - 0x2c]
xor eax, eax
nop
movzx ecx, word [esi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x70a4bb70
mov eax, dword [ebp - 0x24]
mov esi, dword [sym.imp.advapi32.dll_RegCloseKey]
mov dword [esp], eax
call esi
sub esp, 4
test byte [0x70a4d060], 8
jne 0x70a4bfd0
mov dword [esp + 0x10], edi
mov eax, dword [ebp - 0x30]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 0x80000002
call eax
mov dword [ebp - 0x30], eax
sub esp, 0x14
test eax, eax
jne 0x70a4bf3f
mov eax, dword [ebp - 0x24]
mov ecx, 0x70a5d09c
mov edx, str.DLLPath
call sym._load_mapi_provider
mov eax, dword [ebp - 0x24]
mov ecx, 0x70a5d098
mov edx, str.DLLPathEx
call sym._load_mapi_provider
mov eax, dword [ebp - 0x30]
mov edx, 0x70a5d020
mov ecx, 0x1e
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [0x70a5d09c]
test eax, eax
je 0x70a4bd4b
mov edi, dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [esp + 4], str.MAPIAddress
mov dword [esp], eax
call edi
mov dword [0x70a5d020], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPIDeleteMail
mov dword [esp], eax
call edi
mov dword [0x70a5d024], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPIDetails
mov dword [esp], eax
call edi
mov dword [0x70a5d028], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPIFindNext
mov dword [esp], eax
call edi
mov dword [0x70a5d02c], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPILogoff
mov dword [esp], eax
call edi
mov dword [0x70a5d034], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPILogon
mov dword [esp], eax
call edi
mov dword [0x70a5d038], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPIReadMail
mov dword [esp], eax
call edi
mov dword [0x70a5d040], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPIResolveName
mov dword [esp], eax
call edi
mov dword [0x70a5d044], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPISaveMail
mov dword [esp], eax
call edi
mov dword [0x70a5d048], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPISendDocuments
mov dword [esp], eax
call edi
mov dword [0x70a5d054], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPISendMail
mov dword [esp], eax
call edi
mov dword [0x70a5d04c], eax
mov eax, dword [0x70a5d09c]
sub esp, 8
mov dword [esp + 4], str.MAPISendMailW
mov dword [esp], eax
call edi
mov dword [0x70a5d050], eax
sub esp, 8
mov eax, dword [0x70a5d098]
test eax, eax
je 0x70a4bf3f
mov edi, dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [esp + 4], str.MAPIInitialize
mov dword [esp], eax
call edi
mov dword [0x70a5d030], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.MAPILogonEx
mov dword [esp], eax
call edi
mov dword [0x70a5d03c], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.MAPIUninitialize
mov dword [esp], eax
call edi
mov dword [0x70a5d058], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.DeinitMapiUtil_0
mov dword [esp], eax
call edi
mov dword [0x70a5d05c], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.DllCanUnloadNow
mov dword [esp], eax
call edi
mov dword [0x70a5d060], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.DllGetClassObject
mov dword [esp], eax
call edi
mov dword [0x70a5d064], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.FGetComponentPath
mov dword [esp], eax
call edi
mov dword [0x70a5d068], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.HrThisThreadAdviseSink_8
mov dword [esp], eax
call edi
mov dword [0x70a5d084], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.HrQueryAllRows_24
mov dword [esp], eax
call edi
mov dword [0x70a5d088], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.MAPIAdminProfiles
mov dword [esp], eax
call edi
mov dword [0x70a5d06c], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], 0x70a50ad2
mov dword [esp], eax
call edi
mov dword [0x70a5d070], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], 0x70a50ae5
mov dword [esp], eax
call edi
mov dword [0x70a5d074], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], 0x70a50af6
mov dword [esp], eax
call edi
mov dword [0x70a5d078], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.MAPIGetDefaultMalloc_0
mov dword [esp], eax
call edi
mov dword [0x70a5d07c], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.MAPIOpenLocalFormContainer
mov dword [esp], eax
call edi
mov dword [0x70a5d080], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.OpenStreamOnFile_24
mov dword [esp], eax
call edi
mov dword [0x70a5d08c], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.ScInitMapiUtil_4
mov dword [esp], eax
call edi
mov dword [0x70a5d090], eax
mov eax, dword [0x70a5d098]
sub esp, 8
mov dword [esp + 4], str.WrapCompressedRTFStream_12
mov dword [esp], eax
call edi
mov dword [0x70a5d094], eax
sub esp, 8
jmp 0x70a4bf3f
mov dword [ebp - 0x2c], 0
mov esi, dword [sym.imp.advapi32.dll_RegCloseKey]
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call esi
sub esp, 4
mov dword [esp + 8], ebx
mov ebx, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 4], 0
mov esi, dword fs:[0x18]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x2c]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], 0x70a5093e
mov dword [esp + 8], str.load_mapi_providers
mov dword [esp + 4], 0x70a4d060
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_4
jmp 0x70a4b97d
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.0_2
mov dword [esp + 0xc], str.appKey:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.load_mapi_providers
mov dword [esp + 4], 0x70a4d060
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_4
jmp 0x70a4bb9e
mov eax, dword [ebp - 0x2c]
call sym._wine_dbgstr_wn.constprop.0_2
mov dword [esp + 0xc], str.appName:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.load_mapi_providers
mov dword [esp + 4], 0x70a4d060
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_4
mov edx, dword [ebp - 0x34]
jmp 0x70a4ba89
mov esi, dword [sym.imp.advapi32.dll_RegCloseKey]
jmp 0x70a4bf3f