joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180077010
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rcx
push rdi
sub rsp, 0x30
movsxd rax, edx
mov rdi, rcx
dec rax
mov qword [r11 + 0x20], rsi
mov rsi, r9
xor r9d, r9d
lea rax, [rcx + rax*2]
mov qword [rsp], rax
cmp rcx, rax
jae 0x180077227
mov qword [r11 + 0x18], rbp
lea rbp, [0x180000000]
mov qword [r11 + 0x10], rbx
mov qword [r11 - 0x10], r12
mov qword [r11 - 0x18], r13
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
nop
test rsi, rsi
je 0x18007706e
cmp r8, rsi
jae 0x180077204
movzx edx, byte [r8]
test dl, dl
je 0x180077204
xor ebx, ebx
mov eax, edx
shr rax, 3
mov rcx, rsi
movsx r9, byte [rax + rbp + 0xc8668]
test r9d, r9d
sete bl
add ebx, r9d
test rsi, rsi
jne 0x1800770a2
movsxd rcx, ebx
add rcx, r8
xor r14d, r14d
lea rax, [r8 + 1]
cmp r8, rcx
cmovb r14d, edx
cmp rax, rcx
jae 0x1800770bb
movzx r13d, byte [rax]
jmp 0x1800770be
xor r13b, r13b
lea rax, [r8 + 2]
cmp rax, rcx
jae 0x1800770cd
movzx r12d, byte [rax]
jmp 0x1800770d0
xor r12b, r12b
lea rax, [r8 + 3]
cmp rax, rcx
jae 0x1800770df
movzx r15d, byte [rax]
jmp 0x1800770e2
xor r15b, r15b
lea r10, [r9*4]
movzx eax, r14b
mov ebp, dword [r10 + rbp + 0xc8688]
and ebp, eax
movzx r9d, r13b
shl ebp, 6
mov eax, r9d
and eax, 0x3f
movzx edx, r12b
or ebp, eax
movzx r11d, r15b
shl ebp, 6
and r9d, 0xc0
mov eax, edx
and edx, 0xc0
and eax, 0x3f
or ebp, eax
mov eax, r11d
shr r11d, 2
and eax, 0x3f
or r11d, edx
shl ebp, 6
or ebp, eax
shr r11d, 2
or r11d, r9d
lea rax, [0x180000000]
mov ecx, dword [r10 + rax + 0xc86b8]
shr r11d, 2
shr ebp, cl
mov ecx, 0x100
cmp ebp, dword [r10 + rax + 0xc86a0]
sbb eax, eax
xor r9d, r9d
and eax, 0x40
mov edx, r9d
or r11d, eax
mov eax, ebp
and eax, 0xfffff800
cmp eax, 0xd800
mov eax, 0x80
cmove edx, eax
mov eax, r9d
or r11d, edx
cmp ebp, 0xffff
cmova eax, ecx
lea rcx, [0x180000000]
mov ecx, dword [r10 + rcx + 0xc86d0]
or r11d, eax
xor r11d, 0x2a
sar r11d, cl
test r11d, r11d
je 0x1800771e6
test r15b, r15b
mov eax, r9d
mov ecx, r9d
mov ebp, 0xfffd
setne cl
test r12b, r12b
setne al
add ecx, eax
mov eax, r9d
test r13b, r13b
setne al
add ecx, eax
mov eax, r9d
test r14b, r14b
setne al
add ecx, eax
cmp ebx, ecx
cmovl ecx, ebx
mov ebx, ecx
mov word [rdi], bp
add rdi, 2
movsxd rax, ebx
lea rbp, [0x180000000]
add r8, rax
cmp rdi, qword [rsp]
jb 0x180077060
mov rcx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x10]
mov r14, qword [rsp + 0x18]
mov r13, qword [rsp + 0x20]
mov r12, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
mov word [rdi], r9w
test rax, rax
je 0x18007723d
mov qword [rax], r8
sub rdi, rcx
sar rdi, 1
mov eax, edi
add rsp, 0x30
pop rdi
ret
Function at 0x18007e610
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rax, qword [0x1800ed3b8]
lea r10, [0x1800c8040]
mov r8d, ecx
mov rbx, qword [rax + 0x3ef8]
add rbx, 0xf0
movsxd r9, dword [rbx]
mov rax, qword [rbx + 8]
mov edi, dword [rax + r9*4 - 4]
not edi
movzx eax, r8b
movzx ecx, dil
xor rcx, rax
shr edi, 8
mov eax, r8d
shr eax, 8
movzx edx, al
mov eax, r8d
xor edi, dword [r10 + rcx*4]
movzx ecx, dil
xor rdx, rcx
shr edi, 8
shr eax, 0x10
xor edi, dword [r10 + rdx*4]
movzx ecx, dil
shr edi, 8
movzx edx, al
mov eax, r8d
mov r8d, dword [rbx + 4]
xor rdx, rcx
shr rax, 0x18
xor edi, dword [r10 + rdx*4]
movzx ecx, dil
shr edi, 8
xor rcx, rax
xor edi, dword [r10 + rcx*4]
not edi
cmp r9d, r8d
jne 0x18007e6d1
lea ecx, [r9 + 1]
test r8d, r8d
je 0x18007e6bd
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x18007e6c2
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
mov rcx, rbx
call fcn.180086ec0
movsxd rcx, dword [rbx]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*4], edi
inc dword [rbx]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x18009cf40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
mov r9, qword [rcx + 0x180]
mov r10, rcx
movsxd rax, edx
imul rbx, rax, 0x70
add rbx, qword [rcx + 0x18]
mov dword [rcx + 0x74], edx
test dword [rbx], 0x10000
movss xmm1, dword [rbx + 0x34]
je 0x18009cf7c
addss xmm1, dword [rcx + 0x8c]
lea rsi, [r9 + 0x100]
movss dword [rsi], xmm1
movss xmm0, dword [rcx + 0xc0]
addss xmm0, dword [rcx + 0x7c]
movss dword [r9 + 0x118], xmm1
subss xmm1, dword [r9 + 0x20]
movss dword [r9 + 0x104], xmm0
subss xmm1, dword [r9 + 0x144]
movss dword [r9 + 0x148], xmm1
mov eax, dword [rcx + 0x88]
mov dword [r9 + 0x138], eax
movsx eax, byte [rbx + 0x6a]
mov dword [r9 + 0x158], eax
movss dword [r9 + 0x21c], xmm0
mov eax, dword [rbx + 0x34]
mov dword [r9 + 0x218], eax
mov eax, dword [rbx + 0x38]
mov dword [r9 + 0x220], eax
mov eax, dword [rbx + 0x3c]
mov dword [r9 + 0x1bc], eax
movzx eax, byte [rbx + 0x68]
mov byte [r9 + 0xbb], al
cmp byte [rbx + 0x68], 0
je 0x18009d023
mov rax, qword [0x1800ed3b8]
xor ecx, ecx
mov dword [rax + 0x4794], ecx
mov dword [rax + 0x479c], ecx
test dword [r10 + 4], 0x100000
je 0x18009d038
mov r8d, 2
jmp 0x18009d0b8
movups xmm0, xmmword [rbx + 0x20]
mov rax, qword [r9 + 0x298]
movss xmm4, dword [rbx + 0x20]
movss xmm3, dword [rbx + 0x24]
movss xmm2, dword [rbx + 0x28]
movss xmm1, dword [rbx + 0x2c]
movups xmmword [r9 + 0x238], xmm0
movss dword [rsp + 0x20], xmm4
movss dword [rsp + 0x24], xmm3
movss dword [rsp + 0x28], xmm2
movss dword [rsp + 0x2c], xmm1
movss dword [rax + 0x88], xmm4
movss dword [rax + 0x8c], xmm3
movss dword [rax + 0x90], xmm2
movss dword [rax + 0x94], xmm1
mov rax, qword [r9 + 0x298]
movups xmm0, xmmword [rsp + 0x20]
movsxd rdx, dword [rax + 0x58]
mov rcx, qword [rax + 0x60]
add rdx, rdx
movups xmmword [rcx + rdx*8 - 0x10], xmm0
movzx r8d, word [rbx + 0x5c]
mov rdx, qword [r9 + 0x298]
mov rcx, qword [r10 + 0x198]
call fcn.180092630
mov rdi, qword [0x1800ed3b8]
cmp byte [rdi + 0x5c80], 0
je 0x18009d0fd
cmp byte [rbx + 0x68], 0
jne 0x18009d0fd
xor r8d, r8d
lea rdx, [0x1800ce560]
mov rcx, rsi
call fcn.180078da0
mov dword [rdi + 0x5cb0], 0x7f7fffff
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x18009fc90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub rsp, 0x48
mov rax, qword [0x1800ed3b8]
mov r8, qword [rax + 0x4b38]
cmp ecx, 0xffffffff
jne 0x18009fcb0
cmp dword [r8 + 0x74], ecx
cmovne ecx, dword [r8 + 0x74]
cmp ecx, dword [r8 + 0x6c]
mov eax, 0xffffffff
cmove ecx, eax
test byte [r8 + 4], 7
je 0x18009fd72
movzx eax, word [r8 + 0x78]
xor edx, edx
mov word [r8 + 0x7a], ax
movabs rax, 0x5ca6b1230de7b2e6
mov word [r8 + 0x210], cx
lea rcx, [rsp + 0x20]
mov byte [r8 + 0x227], 1
mov r8d, dword [r8]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
movabs rax, 0xb7dc4e85a5e1316a
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x28], rax
movabs rax, 0x24c3c54d62a491c5
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x30], rax
movabs rax, 0xb7dc4ef0cb847c1e
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x38], rax
movdqa xmm0, xmmword [rsp + 0x30]
xorps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
call fcn.180076aa0
xor edx, edx
mov ecx, eax
add rsp, 0x48
jmp fcn.18007daa0
add rsp, 0x48
ret

Function at 0x18009fd80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub rsp, 0x38
mov rax, qword [0x1800ed3b8]
mov rcx, qword [rax + 0x4b38]
mov r10, qword [rax + 0x3ef8]
movsxd rax, dword [rcx + 0x74]
movups xmm0, xmmword [rcx + 0x168]
movss xmm4, dword [rcx + 0x168]
movss xmm3, dword [rcx + 0x16c]
movss xmm2, dword [rcx + 0x170]
movss xmm1, dword [rcx + 0x174]
movss dword [rsp + 0x20], xmm4
movss dword [rsp + 0x24], xmm3
movss dword [rsp + 0x28], xmm2
movss dword [rsp + 0x2c], xmm1
imul r9, rax, 0x70
mov rax, qword [r10 + 0x298]
add r9, qword [rcx + 0x18]
movups xmmword [r10 + 0x238], xmm0
movss dword [rax + 0x88], xmm4
movss dword [rax + 0x8c], xmm3
movss dword [rax + 0x90], xmm2
movss dword [rax + 0x94], xmm1
mov rax, qword [r10 + 0x298]
movups xmm0, xmmword [rsp + 0x20]
movsxd r8, dword [rax + 0x58]
mov rdx, qword [rax + 0x60]
add r8, r8
movups xmmword [rdx + r8*8 - 0x10], xmm0
movzx r8d, word [r9 + 0x5c]
mov rdx, qword [r10 + 0x298]
mov rcx, qword [rcx + 0x198]
add rsp, 0x38
jmp fcn.180092630
Function at 0x18009fe50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub rsp, 0x38
mov rax, qword [0x1800ed3b8]
mov rcx, qword [rax + 0x4b38]
mov r9, qword [rax + 0x3ef8]
movups xmm0, xmmword [r9 + 0x238]
movups xmmword [rcx + 0x168], xmm0
mov rax, qword [r9 + 0x298]
movups xmm0, xmmword [rcx + 0x148]
movss xmm4, dword [rcx + 0x148]
movss xmm3, dword [rcx + 0x14c]
movss xmm2, dword [rcx + 0x150]
movss xmm1, dword [rcx + 0x154]
movups xmmword [r9 + 0x238], xmm0
movss dword [rsp + 0x20], xmm4
movss dword [rsp + 0x24], xmm3
movss dword [rsp + 0x28], xmm2
movss dword [rsp + 0x2c], xmm1
movss dword [rax + 0x88], xmm4
movss dword [rax + 0x8c], xmm3
movss dword [rax + 0x90], xmm2
movss dword [rax + 0x94], xmm1
mov rax, qword [r9 + 0x298]
movups xmm0, xmmword [rsp + 0x20]
movsxd r8, dword [rax + 0x58]
mov rdx, qword [rax + 0x60]
add r8, r8
movups xmmword [rdx + r8*8 - 0x10], xmm0
movzx r8d, word [rcx + 0x21e]
mov rcx, qword [rcx + 0x198]
mov rdx, qword [r9 + 0x298]
add rsp, 0x38
jmp fcn.180092630

Function at 0x1800bec10
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
movzx ebp, r9b
mov r15, r8
mov edi, edx
mov rsi, rcx
call fcn.1800c2220
test rax, rax
je 0x1800becd0
movzx r14d, word [rax + 0x14]
xor r12d, r12d
movzx r11d, word [rax + 6]
add r14, rax
movzx r9d, r12w
cmp r12w, r11w
jae 0x1800becd0
movzx eax, r9w
lea rcx, [rax + rax*4]
mov r10d, dword [r14 + rcx*8 + 0x20]
cmp dword [r14 + rcx*8 + 0x28], r10d
mov ebx, dword [r14 + rcx*8 + 0x24]
cmovb r10d, dword [r14 + rcx*8 + 0x28]
test ebx, ebx
je 0x1800becc6
test r10d, r10d
je 0x1800becc6
mov rdx, qword [r14 + rcx*8 + 0x18]
mov r8d, 0x84222325
mov qword [rsp + 0x28], r12
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rdx
test dl, dl
je 0x1800becc1
movsx eax, dl
lea rcx, [rcx + 1]
xor eax, r8d
imul r8d, eax, 0x1b3
movzx eax, byte [rcx]
movzx edx, al
test al, al
jne 0x1800beca6
cmp edi, r8d
je 0x1800becf1
inc r9w
cmp r9w, r11w
jb 0x1800bec62
xor eax, eax
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
mov edx, r10d
lea rcx, [rbx + rsi]
add rdx, rbx
movzx r9d, bpl
add rdx, rsi
mov r8, r15
call fcn.1800beaa0
jmp 0x1800becd2
Function at 0x1800c1bb0
Capabilities:
Access peb ldr_data
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x70
mov rax, qword gs:[0x30]
movzx ebp, dl
mov edi, ecx
mov r8, qword [rax + 0x60]
mov rsi, qword [r8 + 0x18]
add rsi, 0x20
mov r10, qword [rsi]
cmp r10, rsi
je 0x1800c1c9a
nop word [rax + rax]
movzx ebx, word [r10 + 0x48]
xorps xmm0, xmm0
xor eax, eax
shr rbx, 1
xor r9d, r9d
mov dword [rsp + 0x60], eax
movups xmmword [rsp], xmm0
movups xmmword [rsp + 0x10], xmm0
movups xmmword [rsp + 0x20], xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
add rbx, 0xfffffffffffffffc
je 0x1800c1c5b
mov r11, qword [r10 + 0x50]
nop dword [rax + rax]
movzx edx, word [r11]
lea r11, [r11 + 2]
movzx r8d, dl
sub dx, 0x41
cmp dx, 0x19
lea eax, [r8 + 0x20]
movzx ecx, al
cmova ecx, r8d
mov byte [rsp + r9], cl
inc r9
cmp r9, rbx
jne 0x1800c1c30
test edi, edi
je 0x1800c1cb2
movzx eax, byte [rsp]
lea rdx, [rsp]
mov r8d, 0x84222325
test al, al
je 0x1800c1c89
movsx ecx, al
lea rdx, [rdx + 1]
movzx eax, byte [rdx]
xor ecx, r8d
imul r8d, ecx, 0x1b3
test al, al
jne 0x1800c1c71
cmp edi, r8d
je 0x1800c1cb2
mov r10, qword [r10]
cmp r10, rsi
jne 0x1800c1bf0
xor eax, eax
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
test bpl, bpl
je 0x1800c1ce3
mov rcx, qword [r10 - 0x10]
mov rax, qword [r10 - 8]
mov qword [rcx + 8], rax
mov rcx, qword [r10 - 8]
mov rax, qword [r10 - 0x10]
mov qword [rcx], rax
mov rcx, qword [r10]
mov rax, qword [r10 + 8]
mov qword [rcx + 8], rax
mov rcx, qword [r10 + 8]
mov rax, qword [r10]
mov qword [rcx], rax
mov rax, qword [r10 + 0x20]
jmp 0x1800c1c9c

Function at 0x1800c1cf0
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov rax, qword gs:[0x30]
movzx ebp, r8b
mov rsi, rdx
mov r14d, ecx
mov r9, qword [rax + 0x60]
mov rdi, qword [r9 + 0x18]
add rdi, 0x20
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x1800c1d53
mov rcx, qword [rbx + 0x20]
cmp rsi, rcx
je 0x1800c1d4b
movzx r8d, bpl
mov edx, r14d
call fcn.1800c1d70
test rax, rax
jne 0x1800c1d55
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x1800c1d31
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x1800c2220
Capabilities:
Parse pe header

Disassembly:
test rcx, rcx
je 0x1800c2243
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x1800c2243
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
xor ecx, ecx
cmp dword [rax], 0x4550
cmovne rax, rcx
ret
xor eax, eax
ret
Function at 0x14000b704
Capabilities:
Access the windows event log

Disassembly:
mov rax, rsp
push rbp
push rdi
push r14
lea rbp, [rax - 0x368]
sub rsp, 0x450
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1401d1010]
xor rax, rsp
mov qword [rbp + 0x340], rax
mov edi, ecx
xor esi, esi
mov dword [rsp + 0x50], esi
lea rax, vtable.Mso::Logging::StructuredHr.0
mov qword [rsp + 0x68], rax
lea rax, [0x140119360]
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x78], ecx
mov word [rsp + 0x7c], si
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
lea rax, str.Heartbeat_exception_thrown
mov qword [rsp + 0x20], rax
lea edx, [rsi + 0x2d]
mov ecx, 0x28d07de
lea r8d, [rsi + 0x32]
call fcn.14000ed84
mov eax, edi
mov ecx, 0xa0000000
and eax, ecx
cmp eax, ecx
je 0x14000b79d
lea ebx, [rsi + 0x17]
jmp 0x14000b7aa
movzx ebx, di
mov eax, 0xc9
cmp ebx, eax
cmovae ebx, eax
mov dword [rsp + 0x50], edi
lea rax, str.Subscription_licensing_service_failed:__d
or r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], si
jne 0x14000b7b9
lea r9, [rsp + 0x50]
lea rcx, [rsp + 0x68]
call fcn.14000ef74
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rbp - 0x78], xmm0
movups xmm1, xmmword [rsp + 0x78]
movups xmmword [rbp - 0x68], xmm1
lea rdx, [rbp - 0x78]
movq rcx, xmm0
psrldq xmm1, 8
movq rax, xmm1
cmp rax, 8
cmovae rdx, rcx
mov qword [rsp + 0x58], rdx
mov r14d, 1
xor r8d, r8d
mov edx, r14d
mov qword [rsp + 0x40], rsi
lea rax, [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], esi
mov word [rsp + 0x28], r14w
mov qword [rsp + 0x20], rsi
xor r9d, r9d
mov rcx, qword [0x1401dc918]
call qword [sym.imp.ADVAPI32.dll_ReportEventW]
test edi, edi
js 0x14000b8a8
mov rax, qword [rbp - 0x60]
cmp rax, 8
jb 0x14000b881
mov rcx, qword [rbp - 0x78]
mov rdx, rcx
lea rax, [rax*2 + 2]
cmp rax, 0x1000
jb 0x14000b87b
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
jbe 0x14000b87b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rbp + 0x340]
xor rcx, rsp
call fcn.140107ad0
lea r11, [rsp + 0x450]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
mov r8d, r14d
mov edx, ebx
lea rcx, [rbp - 0x50]
call fcn.1400075c0
lea rdx, [0x140196ae8]
lea rcx, [rbp - 0x50]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
Function at 0x140011b3c
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rsi
push rdi
push r14
sub rsp, 0x40
mov r14, rdx
test rdx, rdx
jne 0x140011b5d
mov ecx, 0x4a355c
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_2055]
int3
and dword [rsp + 0x38], 0
xor r9d, r9d
and qword [rsp + 0x30], 0
xor r8d, r8d
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_361]
or rcx, 0xffffffffffffffff
mov rbx, rax
cmp rax, rcx
jne 0x140011ba2
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
jmp 0x140011c60
xor eax, eax
lea rdx, [rsp + 0x70]
mov rcx, rbx
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x140011c33
mov rdi, qword [rsp + 0x70]
cmp rdi, 1
jle 0x140011c33
mov eax, 0xffffffff
cmp rdi, rax
jg 0x140011c33
mov ecx, edi
xor edx, edx
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_378]
mov rsi, rax
test rax, rax
je 0x140011c33
and dword [rsp + 0x68], 0
lea r9, [rsp + 0x68]
and qword [rsp + 0x20], 0
mov r8d, edi
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140011c2a
cmp dword [rsp + 0x68], edi
jne 0x140011c2a
cmp byte [rsi], 0xff
jne 0x140011c2a
cmp byte [rsi + 1], 0xfe
jne 0x140011c2a
lea edx, [rdi - 2]
shr edx, 1
lea rcx, [rsi + 2]
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test rax, rax
jne 0x140011c44
mov rcx, rsi
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_1110]
test rbx, rbx
je 0x140011b9b
mov rcx, rbx
jmp 0x140011b95
mov rcx, rsi
mov qword [r14], rax
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_1110]
test rbx, rbx
je 0x140011c5e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
mov rbx, qword [rsp + 0x60]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x140011f28
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x90
mov qword [rbp - 0x29], 0xfffffffffffffffe
mov rbx, rcx
xor r14d, r14d
mov qword [rbp + 0x6f], r14
lea rcx, [rbp + 0x6f]
call fcn.1400131d0
mov esi, eax
mov rdi, qword [rbp + 0x6f]
test eax, eax
js 0x140012115
lea r15, vtable.Mso::Logging::StructuredObject_wchar_t_const____ptr64__1_.0
mov qword [rbp - 0x21], r15
lea rax, str.CacheFile
mov qword [rbp - 0x19], rax
mov qword [rbp - 0x11], rdi
mov word [rbp - 9], r14w
mov qword [rbp - 1], r15
lea r12, str.Information
mov qword [rbp + 7], r12
lea rax, str.Saving_updated_cache_file
mov qword [rbp + 0xf], rax
mov word [rbp + 0x17], r14w
lea rax, [rbp - 0x21]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 1]
mov qword [rsp + 0x28], rax
lea rax, str.HeartbeatAdapter::SaveCacheFile
mov qword [rsp + 0x20], rax
lea edx, [r14 + 0x2d]
mov ecx, 0x7a05d9
lea r8d, [r14 + 0x32]
call fcn.140012d4c
mov qword [rbp + 0x7f], r14
mov rcx, qword [rbx]
test rcx, rcx
jne 0x140011fec
mov esi, 0x8007000e
jmp 0x140012101
mov rax, qword [rcx]
mov rax, qword [rax + 0x70]
call qword [case.0x140089b1f.8]
mov rcx, rax
mov rax, qword [rax]
lea rdx, [rbp + 0x7f]
mov rax, qword [rax + 0xb8]
call qword [case.0x140089b1f.8]
mov esi, eax
test eax, eax
js 0x140012101
mov dword [rsp + 0x38], r14d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov esi, 2
mov dword [rsp + 0x20], esi
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
mov rcx, rdi
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_361]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400120ef
mov word [rbp + 0x6f], 0xfeff
mov qword [rsp + 0x20], r14
lea r9, [rbp + 0x77]
mov r8d, esi
lea rdx, [rbp + 0x6f]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140012137
mov rcx, qword [rbp + 0x7f]
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov qword [rsp + 0x20], r14
lea r9, [rbp + 0x77]
mov r8d, eax
mov rdx, qword [rbp + 0x7f]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140012137
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov qword [rbp - 1], r15
mov qword [rbp + 7], r12
lea rax, str.Successfully_saved_the_updated_cache
mov qword [rbp + 0xf], rax
mov word [rbp + 0x17], r14w
lea rax, [rbp - 1]
mov qword [rsp + 0x28], rax
lea rax, str.HeartbeatAdapter::SaveCacheFile
mov qword [rsp + 0x20], rax
lea edx, [rsi + 0x2b]
mov ecx, 0x7a05da
lea r8d, [rsi + 0x30]
call fcn.14000ed84
mov esi, r14d
test rbx, rbx
je 0x140012101
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, qword [rbp + 0x7f]
test rcx, rcx
je 0x140012115
mov qword [rbp + 0x7f], r14
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
test rdi, rdi
je 0x140012123
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, esi
add rsp, 0x90
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov esi, 0x80004005
jmp 0x1400120f2
Function at 0x140015f8c
Capabilities:
Access the windows event log

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x18], rdi
mov qword [r11 + 0x10], rdx
push rbp
lea rbp, [r11 - 0x5f]
sub rsp, 0x90
xor edi, edi
mov qword [rbp + 0x27], rdx
mov rbx, rcx
mov word [rbp + 0x2f], di
lea rcx, vtable.Mso::Logging::StructuredObject_wchar_t_const____ptr64__1_.0
mov word [rbp + 0x4f], di
lea rax, [0x140128940]
mov qword [rbp + 0x17], rcx
mov qword [rbp + 0x1f], rax
lea r8d, [rdi + 0x32]
lea rax, str.Information
mov qword [rbp + 0x37], rcx
mov qword [rbp + 0x3f], rax
mov edx, 0x448
lea rax, str.Reporting_Ols_Error
mov ecx, 0x7a055f
mov qword [rbp + 0x47], rax
lea rax, [rbp + 0x17]
mov qword [r11 - 0x68], rax
lea rax, [rbp + 0x37]
mov qword [r11 - 0x70], rax
lea rax, str.OlsInterface::ReportErrorEvent
mov qword [r11 - 0x78], rax
call fcn.140012d4c
mov rax, qword [rbx + 0xd0]
test rax, rax
jne 0x14001603d
lea rdx, str.Microsoft_Office_16
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_RegisterEventSourceW]
mov qword [rbx + 0xd0], rax
test rax, rax
je 0x140016075
mov qword [rsp + 0x40], rdi
lea rcx, [rbp + 0x6f]
mov qword [rsp + 0x38], rcx
mov r9d, 1
mov dword [rsp + 0x30], edi
mov edx, r9d
mov word [rsp + 0x28], r9w
xor r8d, r8d
mov r9d, 0xc00007db
mov qword [rsp + 0x20], rdi
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_ReportEventW]
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret

Function at 0x140020e28
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x60
mov rax, qword [0x1401d1010]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140020ee1
cmp byte [rcx + 0x72], 0
je 0x140020ee1
mov rax, qword [rcx]
mov edi, 0xffff
mov edx, edi
mov rax, qword [rax + 0x18]
call qword [case.0x140089b1f.8]
cmp di, ax
je 0x140020ea2
mov rcx, qword [rbx + 0x68]
lea rax, [rsp + 0x30]
lea rdx, [rbx + 0x74]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x38]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_wchar_t__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140020ea6
sub eax, 1
je 0x140020eaa
sub eax, 2
je 0x140020ee1
xor al, al
jmp 0x140020ee3
mov byte [rbx + 0x72], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140020ed8
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x38]
mov r8, rdi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rdi, rax
jne 0x140020ea2
cmp byte [rbx + 0x72], 0
sete al
jmp 0x140020ee3
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140107ad0
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret