Function at 0x1008d000
Capabilities:
Set global application hook

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100efb8d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x40
push esi
push edi
mov eax, dword [0x1011d1c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0x11], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x10121da0], eax
mov ecx, dword [0x1011de3c]
cmp ecx, 0x1011de3c
je 0x1008d07d
test byte [ecx + 0x1c], 4
je 0x1008d07d
cmp byte [ecx + 0x19], 4
jb 0x1008d07d
push eax
push dword [ecx + 0x14]
mov edx, 0x101059c4
push dword [ecx + 0x10]
mov ecx, 0x26
call fcn.10022cf0
add esp, 0xc
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0xfffffff7
mov eax, dword [eax]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], 0
cmp eax, dword [ecx]
jne 0x1008d0aa
push 0x54
push 0
push 0x10121938
call fcn.100c0600
add esp, 0xc
jmp 0x1008d0de
movaps xmm0, xmmword [0x10109ce0]
movups xmmword [0x10121938], xmm0
mov dword [0x10121988], 0xfffffff7
movups xmmword [0x10121948], xmm0
movups xmmword [0x10121958], xmm0
movups xmmword [0x10121968], xmm0
movups xmmword [0x10121978], xmm0
mov edi, dword [ebx + 8]
push edi
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x100f5330]
call esi
mov ecx, dword [0x10121e94]
test ecx, ecx
je 0x1008d10b
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100f5330]
call esi
mov dword [0x10121e94], edi
call fcn.10099090
call fcn.100992a0
mov ecx, dword [0x10121e8c]
cmp ecx, 0xc
jge 0x1008d16f
mov byte [0x10121e90], 1
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008da75
test byte [eax + 0x1c], 4
je 0x1008da75
cmp byte [eax + 0x19], 2
jb 0x1008da75
push ecx
push dword [eax + 0x14]
mov edx, 0x101059c4
mov ecx, 0x27
push dword [eax + 0x10]
call fcn.10022cf0
add esp, 0xc
jmp 0x1008da75
mov ecx, dword [0x10121e98]
test ecx, ecx
je 0x1008d193
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100f5330]
call esi
mov dword [0x10121e98], 0
mov ecx, dword [0x10121e94]
mov edx, 0x10121940
push 3
push 0x10121e98
push 0
push 0
push 2
push str.Session
call fcn.10058780
add esp, 0x18
test eax, eax
jns 0x1008d203
mov ecx, dword [0x1011de3c]
cmp ecx, 0x1011de3c
je 0x1008da75
test byte [ecx + 0x1c], 4
je 0x1008da75
cmp byte [ecx + 0x19], 2
jb 0x1008da75
push eax
lfence
push dword [ecx + 0x14]
mov edx, 0x101059c4
push dword [ecx + 0x10]
mov ecx, 0x28
call fcn.10022cf0
add esp, 0xc
jmp 0x1008da75
lea eax, [ebp - 0x50]
push eax
lfence
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov dword [ebp - 4], 0
lea eax, [ebp - 0x50]
mov ecx, dword [0x10121e98]
mov edx, 0x10121968
push 3
push eax
push str.MAPIOBJECT
call fcn.10059360
add esp, 0xc
test eax, eax
jns 0x1008d280
mov ecx, dword [0x1011de3c]
cmp ecx, 0x1011de3c
je 0x1008da64
test byte [ecx + 0x1c], 4
je 0x1008da64
cmp byte [ecx + 0x19], 2
jb 0x1008da64
push eax
lfence
push dword [ecx + 0x14]
mov edx, 0x101059c4
push dword [ecx + 0x10]
mov ecx, 0x29
call fcn.10022cf0
add esp, 0xc
jmp 0x1008da64
lea ecx, [ebp - 0x50]
call fcn.10063ae0
mov edx, dword [0x10121e9c]
mov edi, eax
test edx, edx
je 0x1008d2a7
lfence
mov ecx, dword [edx]
push edx
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100f5330]
call esi
lea eax, [ebp - 0x50]
mov dword [0x10121e9c], edi
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lfence
test eax, eax
js 0x1008da8b
sub esp, 8
call fcn.1002ea00
push str.eplgOutlookWndMsg
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [0x10121da4], eax
test eax, eax
jne 0x1008d31f
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008d4f9
test byte [eax + 0x1c], 4
je 0x1008d4ce
cmp byte [eax + 0x19], 2
jb 0x1008d4ce
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x1011de3c]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x2a
jmp 0x1008d4bc
lfence
push dword [0x10121da0]
push 0
push 0x10089990
push 9
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [0x10121d94], eax
test eax, eax
je 0x1008d372
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008d3af
test byte [eax + 0x1c], 4
je 0x1008d3af
cmp byte [eax + 0x19], 4
jb 0x1008d3af
push dword [eax + 0x14]
mov edx, 0x101059c4
mov ecx, 0x2b
push dword [eax + 0x10]
call fcn.10022c70
add esp, 8
jmp 0x1008d3af
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008d3af
test byte [eax + 0x1c], 4
je 0x1008d3af
cmp byte [eax + 0x19], 2
jb 0x1008d3af
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x1011de3c]
mov edx, 0x101059c4
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x2c
call fcn.10022cf0
add esp, 0xc
push dword [0x10121da0]
push 0
push 0x100899c0
push 3
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [0x10121d98], eax
test eax, eax
je 0x1008d3fb
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008d438
test byte [eax + 0x1c], 4
je 0x1008d438
cmp byte [eax + 0x19], 4
jb 0x1008d438
lfence
push dword [0x10121da4]
mov ecx, 0x2d
push dword [eax + 0x14]
push dword [eax + 0x10]
jmp 0x1008d42b
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008d438
test byte [eax + 0x1c], 4
je 0x1008d438
cmp byte [eax + 0x19], 2
jb 0x1008d438
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x1011de3c]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x2e
mov edx, 0x101059c4
call fcn.10022cf0
add esp, 0xc
push dword [0x10121da0]
push 0
push 0x100899f0
push 0xb
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [0x10121d9c], eax
test eax, eax
je 0x1008d48c
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008d4f9
test byte [eax + 0x1c], 4
je 0x1008d4ce
cmp byte [eax + 0x19], 4
jb 0x1008d4ce
push dword [eax + 0x14]
mov edx, 0x101059c4
mov ecx, 0x2f
push dword [eax + 0x10]
call fcn.10022c70
add esp, 8
jmp 0x1008d4c9
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008d4f9
test byte [eax + 0x1c], 4
je 0x1008d4ce
cmp byte [eax + 0x19], 2
jb 0x1008d4ce
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x1011de3c]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x30
mov edx, 0x101059c4
call fcn.10022cf0
add esp, 0xc
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008d4f9
test byte [eax + 0x1c], 4
je 0x1008d4f9
cmp byte [eax + 0x19], 4
jb 0x1008d4f9
push dword [eax + 0x14]
mov edx, 0x101094b0
mov ecx, 0xa
push dword [eax + 0x10]
call fcn.10022c70
add esp, 8
call fcn.100afee0
mov ecx, dword [0x1011de3c]
cmp ecx, 0x1011de3c
je 0x1008d536
test byte [ecx + 0x1c], 4
je 0x1008d536
cmp byte [ecx + 0x19], 4
jb 0x1008d536
push dword [ecx + 0x14]
mov edx, 0x101054f0
push dword [ecx + 0x10]
mov ecx, 0xe
call fcn.10022c70
mov ecx, dword [0x1011de3c]
add esp, 8
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0xfffffff7
mov eax, dword [eax]
lea edx, [ebp - 0x28]
mov dword [ebp - 0x28], 0
cmp eax, dword [edx]
jne 0x1008d566
xorps xmm0, xmm0
mov dword [0x10121930], 0
movups xmmword [0x10121910], xmm0
jmp 0x1008d585
movaps xmm0, xmmword [0x10109ce0]
movups xmmword [0x10121910], xmm0
mov dword [0x10121930], 0xfffffff7
movaps xmm0, xmmword [0x10109ce0]
movups xmmword [0x10121920], xmm0
cmp ecx, 0x1011de3c
je 0x1008d5b8
test byte [ecx + 0x1c], 4
je 0x1008d5b8
cmp byte [ecx + 0x19], 4
jb 0x1008d5b8
push dword [ecx + 0x14]
mov edx, 0x10109720
push dword [ecx + 0x10]
mov ecx, 0xc
call fcn.10022c70
add esp, 8
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0xfffffff7
mov eax, dword [eax]
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], 0
cmp eax, dword [ecx]
jne 0x1008d5e5
push 0x38
push 0
push 0x1012198c
call fcn.100c0600
add esp, 0xc
jmp 0x1008d609
movaps xmm0, xmmword [0x10109ce0]
movups xmmword [0x1012198c], xmm0
movups xmmword [0x1012199c], xmm0
movups xmmword [0x101219ac], xmm0
movq qword [0x101219bc], xmm0
lea ecx, [ebp - 0x3c]
call fcn.1009f530
mov byte [ebp - 4], 1
mov ecx, 0x10121edc
push eax
call fcn.1003b350
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x3c]
call fcn.10014ec0
push 0x10121edc
mov ecx, 0x10121ee4
call fcn.100461f0
lea ecx, [ebp - 0x3c]
call fcn.1009f530
mov byte [ebp - 4], 2
mov ecx, 0x10121eec
push eax
call fcn.1003b350
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x3c]
call fcn.10014ec0
push 0x10121eec
mov ecx, 0x10121ef4
call fcn.100461f0
push 0
push 1
push 1
push 0
call dword [0x1011d090]
push 1
mov ecx, 0x10121a20
mov dword [0x10121e2c], eax
call fcn.10092310
mov eax, dword [0x10121e9c]
mov ecx, dword [0x10121ea0]
mov dword [ebp - 0x18], eax
mov eax, dword [eax]
mov edi, dword [eax + 0x10]
test ecx, ecx
je 0x1008d6c0
lfence
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100f5330]
call esi
mov dword [0x10121ea0], 0
push 0x10121ea0
push SysReAllocString
push dword [ebp - 0x18]
mov ecx, edi
call dword [0x100f5330]
call edi
test eax, eax
jns 0x1008d722
mov ecx, dword [0x1011de3c]
cmp ecx, 0x1011de3c
je 0x1008d821
test byte [ecx + 0x1c], 4
je 0x1008d821
cmp byte [ecx + 0x19], 2
jb 0x1008d821
push eax
lfence
push dword [ecx + 0x14]
mov edx, 0x101059c4
push dword [ecx + 0x10]
mov ecx, 0x35
call fcn.10022cf0
add esp, 0xc
jmp 0x1008d821
mov ecx, 0x10121ea4
lfence
call fcn.10084410
push eax
push 0
push 0x1008daa0
call fcn.100bc990
test eax, eax
jns 0x1008d784
mov ecx, dword [0x1011de3c]
cmp ecx, 0x1011de3c
je 0x1008d7f1
test byte [ecx + 0x1c], 4
je 0x1008d7f1
cmp byte [ecx + 0x19], 2
jb 0x1008d7f1
push eax
lfence
push dword [ecx + 0x14]
mov edx, 0x101059c4
push dword [ecx + 0x10]
mov ecx, 0x36
call fcn.10022cf0
add esp, 0xc
jmp 0x1008d7f1
lfence
mov ecx, dword [0x10121ea0]
push 0x10121ea8
push dword [0x10121ea4]
mov eax, dword [ecx]
push 0x100
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x100f5330]
call esi
test eax, eax
jns 0x1008d7f1
lfence
mov edx, dword [0x1011de3c]
cmp edx, 0x1011de3c
je 0x1008d7e7
test byte [edx + 0x1c], 4
je 0x1008d7e7
cmp byte [edx + 0x19], 2
jb 0x1008d7e7
push eax
push dword [edx + 0x14]
mov ecx, 0x37
push dword [edx + 0x10]
mov edx, 0x101059c4
call fcn.10022cf0
add esp, 0xc
mov ecx, 0x10121ea4
call fcn.10056ee0
cmp dword [0x10121ea4], 0
jne 0x1008d821
mov ecx, dword [0x10121ea0]
test ecx, ecx
je 0x1008d821
lfence
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100f5330]
call esi
mov dword [0x10121ea0], 0
mov ecx, dword [0x10121e94]
mov edx, 0x10105a24
push 0
push 0x10100480
call fcn.100561d0
mov edi, eax
add esp, 8
mov eax, dword [0x10121f2c]
test eax, eax
je 0x1008d859
lfence
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100f5330]
call esi
mov dword [0x10121f2c], edi
test edi, edi
jne 0x1008d897
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008d891
test byte [eax + 0x1c], 4
je 0x1008d891
cmp byte [eax + 0x19], 2
jb 0x1008d891
push dword [eax + 0x14]
mov edx, 0x101059c4
lea ecx, [edi + 0x38]
push dword [eax + 0x10]
call fcn.10022c70
add esp, 8
mov byte [ebp - 0x11], 1
jmp 0x1008d8cd
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008d8cd
test byte [eax + 0x1c], 4
je 0x1008d8cd
cmp byte [eax + 0x19], 4
jb 0x1008d8cd
lfence
push dword [edi + 0x10]
mov edx, 0x101059c4
mov ecx, 0x39
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.10022cf0
add esp, 0xc
push 0
push 1
mov ecx, 0x10121a20
call fcn.10090950
test eax, eax
jns 0x1008d919
mov ecx, dword [0x1011de3c]
cmp ecx, 0x1011de3c
je 0x1008d915
test byte [ecx + 0x1c], 4
je 0x1008d915
cmp byte [ecx + 0x19], 2
jb 0x1008d915
push eax
lfence
push dword [ecx + 0x14]
mov edx, 0x101059c4
push dword [ecx + 0x10]
mov ecx, 0x3a
call fcn.10022cf0
add esp, 0xc
mov byte [ebp - 0x11], 1
push ecx
push 1
call fcn.100911d0
test eax, eax
jns 0x1008d95f
mov ecx, dword [0x1011de3c]
cmp ecx, 0x1011de3c
je 0x1008d95b
test byte [ecx + 0x1c], 4
je 0x1008d95b
cmp byte [ecx + 0x19], 2
jb 0x1008d95b
push eax
lfence
push dword [ecx + 0x14]
mov edx, 0x101059c4
push dword [ecx + 0x10]
mov ecx, 0x3b
call fcn.10022cf0
add esp, 0xc
mov byte [ebp - 0x11], 1
mov eax, dword [0x10121a70]
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x34], 0
mov esi, dword [eax + 8]
call fcn.100a0c40
mov byte [ebp - 4], 3
mov ecx, dword [eax]
mov dword [eax], 0
mov dword [ebp - 0x18], ecx
mov byte [ebp - 4], 4
lea eax, [ebp - 0x18]
push 0
push eax
mov ecx, esi
call dword [0x100f5330]
mov ecx, 0x10121a70
call esi
mov byte [ebp - 0x12], al
mov byte [ebp - 4], 3
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x1008d9c1
mov ecx, dword [esi]
push 1
mov edi, dword [ecx]
mov ecx, edi
call dword [0x100f5330]
mov ecx, esi
call edi
mov byte [ebp - 4], 0
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x1008d9de
mov eax, dword [esi]
push 1
mov edi, dword [eax]
mov ecx, edi
call dword [0x100f5330]
mov ecx, esi
call edi
cmp byte [ebp - 0x12], 0
jne 0x1008da14
mov eax, dword [0x1011de3c]
cmp eax, 0x1011de3c
je 0x1008da19
test byte [eax + 0x1c], 4
je 0x1008da19
cmp byte [eax + 0x19], 2
jb 0x1008da19
push dword [eax + 0x14]
mov edx, 0x101059c4
mov ecx, 0x3c
push dword [eax + 0x10]
call fcn.10022c70
add esp, 8
mov eax, dword [0x1011de3c]
cmp byte [ebp - 0x11], 0
je 0x1008da39
cmp eax, 0x1011de3c
je 0x1008da64
test byte [eax + 0x1c], 4
je 0x1008da64
cmp byte [eax + 0x19], 2
jb 0x1008da64
mov ecx, 0x3d
jmp 0x1008da51
cmp eax, 0x1011de3c
je 0x1008da64
test byte [eax + 0x1c], 4
je 0x1008da64
cmp byte [eax + 0x19], 4
jb 0x1008da64
mov ecx, 0x3e
push dword [eax + 0x14]
mov edx, 0x101059c4
push dword [eax + 0x10]
call fcn.10022c70
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
push eax
call fcn.100bce60
int3