Function at 0x180012f40
Capabilities:
Link many functions at runtime

Disassembly:
mov dword [rsp + 0x10], edx
push r12
sub rsp, 0x90
cmp dword [0x1801cb96c], 0xffffffff
mov r12d, ecx
jne 0x180012f68
mov eax, 1
add rsp, 0x90
pop r12
ret
xor ecx, ecx
mov qword [rsp + 0x80], rsi
call fcn.180068660
bt r12d, 0xb
jae 0x180012fd7
call fcn.1800681c0
test eax, eax
jne 0x180012fd7
lea rcx, str.libcef.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
je 0x180012fd2
cmp qword [0x1801cc798], 0
jne 0x180012fd2
lea rdx, str.cef_string_utf8_to_utf16
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cc798], rax
test rax, rax
je 0x180012fd2
lea rdx, [0x180029000]
lea rcx, [0x1801cc798]
call fcn.180068320
call fcn.180068210
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x78], rdi
call fcn.1800681c0
mov esi, 1
test eax, eax
jne 0x1800136ce
xor ebp, ebp
cmp dword [0x1801ac770], ebp
jbe 0x1800136c9
xor ebx, ebx
nop
mov rcx, qword [0x1801abc28]
cmp dword [rbx + rcx + 0x24], 0
jne 0x1800136b7
cmp dword [rbx + rcx + 0x20], 0
jne 0x1800136b7
mov rcx, qword [rbx + rcx]
lea rdx, str.KernelUtil.dll
xor esi, esi
call fcn.1800a7cb0
test eax, eax
jne 0x1800136b2
lea rcx, str.KernelUtil.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
je 0x180013651
mov rcx, qword [0x1801abc28]
lea rdx, str.SaveMsg
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a2718
test rax, rax
je 0x180013236
mov rcx, qword [0x1801abc28]
lea rdx, str._SaveMsg_Msg_Util__YAHPB_WKKKPAUITXMsgPack__PAUITXData___Z
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x1800131e5
mov rcx, qword [0x1801abc28]
lea rdx, str._SaveMsg194_Msg_Util__YAHPB_WKKKPAUITXMsgPack__PAUITXData___Z
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x1800131e5
mov rcx, qword [0x1801abc28]
lea rdx, str._SaveMsg194_Msg_Util__YAHPB_W000KKPAUITXMsgPack__PAUITXData___Z
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
jne 0x180013121
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb980], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb980]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rcx, qword [0x1801abc28]
lea rdx, str._SaveMsg194_Msg_Util__YAHPB_WKKKPAUITXMsgPack__PAUITXData__PAUITXCallback___Z
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
jne 0x180013181
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb988], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb988]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rcx, qword [0x1801abc28]
lea rdx, str._SaveMsg194_Msg_Util__YAHPB_W000KKPAUITXMsgPack__PAUITXData__PAUITXCallback___Z
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
jne 0x180013651
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb990], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb990]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
cmp qword [0x1801cb970], rsi
jne 0x180013651
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb970], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb970]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.GetStatus
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x180013297
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb978], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb978]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.TransformMsg
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x1800132f8
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb998], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb998]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.TranslateGroupMsgToMsgPack
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x180013359
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb9a0], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb9a0]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.TranslateBuddyMsgToMsgPack
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x1800133ba
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb9a8], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb9a8]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.GetContactShowName
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x18001341b
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb9b0], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb9b0]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.GetDiscussMemShowName
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x18001347c
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb9b8], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb9b8]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.GetGroupMemShowName
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x1800134dd
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb9c0], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb9c0]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.GetGroupAnonymousSenderID
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x18001353e
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb9c8], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb9c8]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.GetGroupSigBuffer
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x18001359f
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb9d0], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb9d0]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.TranslateMsgPackToBuddyMsg
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x1800135f9
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb9d8], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb9d8]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
jmp 0x180013651
mov rax, qword [0x1801abc28]
lea rdx, str.TranslateMsgPackToMobileMsg
mov rcx, qword [rbx + rax + 8]
call fcn.1800a2718
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
mov rcx, rdi
mov rdx, qword [rbx + rdx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1801cb9e0], rax
test rax, rax
je 0x180013651
mov rdx, qword [0x1801abc28]
lea rcx, [0x1801cb9e0]
mov rdx, qword [rbx + rdx + 0x10]
call fcn.180068320
mov esi, eax
cmp dword [0x1801df0a0], 0
je 0x180013695
mov rcx, qword [0x1801abc28]
mov dword [rsp + 0x30], esi
lea r9, str.InstallDetours_1___S____S____d_
mov rax, qword [rbx + rcx + 8]
lea r8, str.IMHookAPI
or edx, 0xffffffff
mov qword [rsp + 0x28], rax
mov rax, qword [rbx + rcx]
lea rcx, [0x1801de7b8]
mov qword [rsp + 0x20], rax
call fcn.18008da50
test esi, esi
je 0x1800136ab
mov rax, qword [0x1801abc28]
mov esi, 1
mov dword [rbx + rax + 0x24], esi
jmp 0x1800136b7
mov esi, 1
jmp 0x1800136b7
mov esi, 1
inc ebp
add rbx, 0x30
cmp ebp, dword [0x1801ac770]
jb 0x180013010
call fcn.180068210
test dword [0x1801cb96c], r12d
jne 0x180013f23
mov qword [rsp + 0x70], r13
mov ebx, 2
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x60], r15
lea r15, [rsp + 0xb0]
mov dword [rsp + 0xb0], esi
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0xb4], ebx
mov qword [rsp + 0xb8], r15
mov r14d, dword [r15]
mov edx, esi
mov ecx, r14d
call fcn.18000efc0
test eax, eax
jne 0x180013ef2
xor r13d, r13d
cmp dword [0x1801ac770], r13d
jbe 0x180013eea
mov r15d, dword [rsp + 0xa8]
xor ebx, ebx
mov rax, qword [0x1801abc28]
cmp dword [rbx + rax + 0x24], 0
jne 0x180013ec9
cmp dword [rbx + rax + 0x20], 0
jne 0x180013ec9
cmp dword [rbx + rax + 0x28], r14d
jne 0x180013ec9
call fcn.1800dbc90
test eax, eax
jne 0x180013792
mov rcx, qword [0x1801abc28]
lea rdx, [0x1801421b0]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
test r12b, 0x10
jne 0x1800137d8
mov rcx, qword [0x1801abc28]
lea rdx, [0x1801421a0]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, [0x180142190]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov ebp, r12d
and ebp, 0x20
jne 0x18001386f
bt r12d, 0xd
jb 0x18001386f
mov rcx, qword [0x1801abc28]
lea rdx, str.NtCreateFile
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, [0x180142170]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, str.WriteFileEx
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, [0x180142150]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
test r12b, 0x40
jne 0x1800138d5
mov rcx, qword [0x1801abc28]
lea rdx, str.CreateWindowExW
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, [0x180142130]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, str.SetWindowTextW
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
test r12b, 1
jne 0x18001393b
mov rcx, qword [0x1801abc28]
lea rdx, [0x180142108]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, [0x1801420f8]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, [0x1801420e8]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
test r12b, r12b
js 0x180013a04
mov rcx, qword [0x1801abc28]
lea rdx, [0x1801420dc]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, [0x1801420d0]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, [0x1801420c0]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, [0x1801420b0]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, str.ScriptShape
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov rcx, qword [0x1801abc28]
lea rdx, str.CreateTextServices
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec9
mov esi, r12d
and esi, 0x100
jne 0x180013a93
mov rcx, qword [0x1801abc28]
lea rdx, str.DrawTextW
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e40
mov rcx, qword [0x1801abc28]
lea rdx, str.TextOutW
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e4a
mov rcx, qword [0x1801abc28]
lea rdx, str.CreateRectRgnIndirect
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e54
mov rcx, qword [0x1801abc28]
lea rdx, str.ExtSelectClipRgn
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013eb6
test r12b, 2
jne 0x180013b1d
mov rcx, qword [0x1801abc28]
lea rdx, str.PeekMessageA
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e5b
mov rcx, qword [0x1801abc28]
lea rdx, str.PeekMessageW
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e62
mov rcx, qword [0x1801abc28]
lea rdx, str.GetMessageA
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e69
mov rcx, qword [0x1801abc28]
lea rdx, str.GetMessageW
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ebd
mov edi, r12d
and edi, 4
jne 0x180013b45
mov rcx, qword [0x1801abc28]
lea rdx, [0x180141fe0]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e0e
test r15d, r15d
je 0x180013b5d
test esi, esi
jne 0x180013b7d
test edi, edi
jne 0x180013b7d
test ebp, ebp
jne 0x180013b7d
bt r12d, 0xd
jb 0x180013b7d
mov rcx, qword [0x1801abc28]
lea rdx, [0x180141fd0]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e18
bt r12d, 0xa
jb 0x180013bab
bt r12d, 0xd
jb 0x180013bab
mov rcx, qword [0x1801abc28]
lea rdx, str.GdipSaveImageToFile
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e22
bt r12d, 0xc
jb 0x180013bd2
mov rcx, qword [0x1801abc28]
lea rdx, str.SetClipBoardData
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e2c
bt r12d, 0xd
jb 0x180013d3d
mov rcx, qword [0x1801abc28]
lea rdx, [0x180141fd0]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e70
mov rcx, qword [0x1801abc28]
lea rdx, [0x180141f90]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e77
mov rcx, qword [0x1801abc28]
lea rdx, str.ReadFileEx
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e7e
mov rcx, qword [0x1801abc28]
lea rdx, str.ReadFileScatter
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e85
mov rcx, qword [0x1801abc28]
lea rdx, [0x180141f60]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e8c
mov rcx, qword [0x1801abc28]
lea rdx, str.CopyFileExW
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e93
mov rcx, qword [0x1801abc28]
lea rdx, str.CopyFile2
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013e9a
mov rcx, qword [0x1801abc28]
lea rdx, [0x180142170]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ea1
mov rcx, qword [0x1801abc28]
lea rdx, str.WriteFileEx
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ea8
mov rcx, qword [0x1801abc28]
lea rdx, [0x180142150]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013eaf
mov rcx, qword [0x1801abc28]
lea rdx, [0x180141f30]
mov rcx, qword [rbx + rcx + 8]
call fcn.1800a7cb0
test eax, eax
je 0x180013ec4
mov rcx, qword [0x1801abc28]
lea rdx, str.KernelUtil.dll
mov rcx, qword [rbx + rcx]
call fcn.1800a7cb0
test eax, eax
je 0x180013e36
call fcn.180068080
mov rdx, qword [0x1801abc28]
mov dword [rsp + 0x30], 0x12c
mov r9, qword [rbx + rdx + 0x10]
mov r8, qword [rbx + rdx + 8]
test al, 2
mov eax, 0
mov esi, 1
mov ecx, r14d
cmovne eax, esi
mov dword [rsp + 0x28], eax
mov rax, qword [rbx + rdx + 0x18]
mov rdx, qword [rbx + rdx]
mov qword [rsp + 0x20], rax
call fcn.18000f000
cmp dword [0x1801df0a0], 0
mov edi, eax
je 0x180013df6
mov rdx, qword [0x1801abc28]
mov dword [rsp + 0x40], eax
lea r9, str.InstallDetours_2__i_d____S____S___type:__08x____d_
mov ecx, dword [rbx + rdx + 0x28]
lea r8, str.IMHookAPI
mov dword [rsp + 0x38], ecx
mov rcx, qword [rbx + rdx + 8]
mov qword [rsp + 0x30], rcx
mov rcx, qword [rbx + rdx]
or edx, 0xffffffff
mov qword [rsp + 0x28], rcx
lea rcx, [0x1801de7b8]
mov dword [rsp + 0x20], r13d
call fcn.18008da50
test edi, edi
je 0x180013ec9
mov rax, qword [0x1801abc28]
mov dword [rbx + rax + 0x24], esi
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
jmp 0x180013ec9
mov esi, 1
inc r13d
add rbx, 0x30
cmp r13d, dword [0x1801ac770]
jb 0x180013741
mov r15, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x50]
mov ecx, r14d
call fcn.18000efe0
add r15, 4
sub rbx, 1
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0xb8], r15
jne 0x180013712
or dword [0x1801cb96c], r12d
mov r15, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xa0]
cmp r12d, 0x40
ja 0x180014027
cmp r12d, 0x40
je 0x18001400e
lea eax, [r12 - 1]
cmp eax, 0x1f
ja case.0x180013f75.7
lea r10, [0x180000000]
movzx eax, byte [r10 + rax + 0x14120]
mov r9d, dword [r10 + rax*4 + 0x14104]
add r9, r10
jmp r9
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKDC
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKCTRLAC
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKPHOTO
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKFILE
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKCLIPBOARD
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKWRITE
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKWND
jmp 0x1800140c6
cmp r12d, 0x80
je 0x1800140b6
cmp r12d, 0x100
je 0x1800140a4
cmp r12d, 0x400
je 0x180014092
cmp r12d, 0x800
je 0x180014080
cmp r12d, 0x2000
je 0x18001406e
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__DEFAULT____
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKFILECTRL
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKCEF
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKGUIPLUS
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKDCTEXT
jmp 0x1800140c6
cmp dword [0x1801df0a0], 0
je 0x1800140dc
lea r9, str.InstallDetours__HOOKDCEX
lea r8, str.IMHookAPI
lea rcx, [0x1801de7b8]
or edx, 0xffffffff
call fcn.18008da50
lea rcx, str.OAGENT3
xor edx, edx
call fcn.1800d5c90
mov dword [0x1801cb95c], esi
mov eax, esi
mov rsi, qword [rsp + 0x80]
add rsp, 0x90
pop r12
ret