joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4e9cc0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push rdi
mov eax, 0x10c0
push rsi
push rbx
call fcn.00649e40
sub rsp, rax
lea rdx, [0x007689d8]
movabs rax, 0x48534946574f4c42
mov r8d, 0x1a
lea rsi, [rsp + 0x70]
lea rbx, [rsp + 0x20]
lea rdi, [rsp + 0x60]
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x68], 0
mov rcx, rsi
mov byte [rsp + 0x30], 0xfe
mov byte [rsp + 0x31], 0xdc
mov byte [rsp + 0x32], 0xba
mov byte [rsp + 0x33], 0x98
mov byte [rsp + 0x34], 0x76
mov byte [rsp + 0x35], 0x54
mov byte [rsp + 0x36], 0x32
mov byte [rsp + 0x37], 0x10
mov byte [rsp + 0x40], 0x41
mov byte [rsp + 0x41], 0x79
mov byte [rsp + 0x42], 0x6e
mov byte [rsp + 0x43], 0xa0
mov byte [rsp + 0x44], 0x52
mov byte [rsp + 0x45], 0x61
mov byte [rsp + 0x46], 0x6e
mov byte [rsp + 0x47], 0xe4
mov byte [rsp + 0x50], 0xe1
mov byte [rsp + 0x51], 0x13
mov byte [rsp + 0x52], 0xf4
mov byte [rsp + 0x53], 0x10
mov byte [rsp + 0x54], 0x2c
mov byte [rsp + 0x55], 0xfc
mov byte [rsp + 0x56], 0xce
mov byte [rsp + 0x57], 0x43
call fcn.004e9ea0
mov r8, rdi
mov rdx, rbx
mov rcx, rsi
call fcn.004e9720
mov ecx, 0x40
call fcn.004cbbf0
lea rdx, [0x007689f3]
mov rcx, rbx
mov r8d, 8
call sub.msvcrt.dll_memcmp
test eax, eax
lea rcx, str.Blowfish_selftest_failed__1_.
je 0x4e9dd0
mov rax, rcx
add rsp, 0x10c0
pop rbx
pop rsi
pop rdi
ret
mov r8, rbx
mov rdx, rbx
mov rcx, rsi
call fcn.004e97d0
mov ecx, 0x40
call fcn.004cbbf0
mov rcx, rbx
mov r8d, 8
mov rdx, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
lea rcx, str.Blowfish_selftest_failed__2_.
jne 0x4e9db8
lea rdx, [rsp + 0x40]
lea rdi, [rsp + 0x30]
mov r8d, 8
mov rcx, rsi
call fcn.004e9ea0
mov r8, rdi
mov rdx, rbx
mov rcx, rsi
call fcn.004e9720
mov ecx, 0x40
call fcn.004cbbf0
lea rdx, [rsp + 0x50]
mov rcx, rbx
mov r8d, 8
call sub.msvcrt.dll_memcmp
test eax, eax
lea rcx, str.Blowfish_selftest_failed__3_.
jne 0x4e9db8
mov r8, rbx
mov rdx, rbx
mov rcx, rsi
call fcn.004e97d0
mov ecx, 0x40
call fcn.004cbbf0
mov rcx, rbx
mov r8d, 8
mov rdx, rdi
call sub.msvcrt.dll_memcmp
xor ecx, ecx
test eax, eax
lea rax, str.Blowfish_selftest_failed__4_.
cmovne rcx, rax
jmp 0x4e9db8
Function at 0x4ed220
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push r14
push r12
push rbp
push rdi
push rsi
push rbx
mov r11d, dword [rcx]
mov r10d, dword [rcx + 4]
test r9d, r9d
lea rbx, [rcx + 8]
lea r12d, [r9 - 1]
je 0x4ed28c
add r12, 1
xor eax, eax
add r11d, 1
movzx r11d, r11b
movsxd r9, r11d
add r9, rbx
movzx ebp, byte [r9]
movzx esi, bpl
add r10d, esi
movzx r10d, r10b
movsxd rdi, r10d
add rdi, rbx
movzx r14d, byte [rdi]
mov byte [r9], r14b
mov byte [rdi], bpl
add sil, byte [r9]
movzx r9d, byte [r8 + rax]
movzx esi, sil
xor r9b, byte [rbx + rsi]
mov byte [rdx + rax], r9b
add rax, 1
cmp rax, r12
jne 0x4ed242
mov dword [rcx], r11d
mov dword [rcx + 4], r10d
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r14
ret

Function at 0x4ed2c0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x140
mov eax, dword [0x007efd18]
mov rbx, rcx
mov rbp, rdx
mov edi, r8d
test eax, eax
je 0x4ed310
cmp qword [0x007efd10], 0
mov esi, 0x32
je 0x4ed3f1
mov ecx, 0x12c
call fcn.004cbbf0
mov eax, esi
add rsp, 0x140
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
lea rsi, [rsp + 0x30]
lea rdx, [0x00657d45]
mov r8d, 5
lea r12, [rsp + 0x20]
mov dword [0x007efd18], 1
mov rcx, rsi
call fcn.004ed2c0
lea r8, [0x00657d40]
mov r9d, 5
mov rdx, r12
mov rcx, rsi
call fcn.004ed220
mov ecx, 0x40
call fcn.004cbbf0
lea rdx, [0x0076a4c8]
mov r8d, 5
mov rcx, r12
call sub.msvcrt.dll_memcmp
test eax, eax
lea rdx, str.Arcfour_encryption_test_1_failed.
je 0x4ed393
lea rcx, str.ARCFOUR_selftest_failed___s__n
mov qword [0x007efd10], rdx
call fcn.004cba40
jmp 0x4ed2e0
lea rdx, [0x00657d45]
mov r8d, 5
mov rcx, rsi
call fcn.004ed2c0
mov r9d, 5
mov r8, r12
mov rdx, r12
mov rcx, rsi
call fcn.004ed220
mov ecx, 0x40
call fcn.004cbbf0
lea rdx, [0x00657d40]
mov r8d, 5
mov rcx, r12
call sub.msvcrt.dll_memcmp
test eax, eax
lea rdx, str.Arcfour_decryption_test_1_failed.
jne 0x4ed37b
mov qword [0x007efd10], 0
cmp edi, 4
mov esi, 0x2c
jbe 0x4ed2f3
mov dword [rbx + 4], 0
mov dword [rbx], 0
xor eax, eax
nop
mov byte [rbx + rax + 8], al
add rax, 1
cmp rax, 0x100
jne 0x4ed410
lea rsi, [rsp + 0x30]
xor r9d, r9d
nop dword [rax + rax]
mov eax, r9d
xor edx, edx
div edi
mov ecx, edx
movzx eax, byte [rbp + rcx]
mov byte [rsi + r9], al
add r9, 1
cmp r9, 0x100
jne 0x4ed430
xor eax, eax
xor edx, edx
movzx r9d, byte [rbx + rax + 8]
mov ecx, r9d
add cl, byte [rsi + rax]
add edx, ecx
movzx edx, dl
movsxd r8, edx
movzx ecx, byte [rbx + r8 + 8]
mov byte [rbx + rax + 8], cl
add rax, 1
mov byte [rbx + r8 + 8], r9b
cmp rax, 0x100
jne 0x4ed453
mov rdi, rsi
mov ecx, 0x20
xor ax, ax
rep stosq qword [rdi], rax
xor esi, esi
jmp 0x4ed2f3
Function at 0x4ef1f0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov eax, dword [rcx + 0x1e4]
mov rsi, rcx
mov rbx, rdx
test eax, eax
je 0x4ef265
mov rax, r8
or rax, rbx
test al, 0xf
je 0x4ef250
mov rdx, qword [r8 + 8]
mov rax, qword [r8]
lea r8, [rsp + 0x30]
mov rcx, rsi
mov qword [rsp + 0x38], rdx
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x30], rax
call fcn.004eea70
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov qword [rbx], rax
mov qword [rbx + 8], rdx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rdx, rbx
mov rcx, rsi
call fcn.004eea70
nop
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rax, rcx
mov r9d, 0xf
nop
mov edx, dword [rax]
add rax, 0x10
mov dword [rax + 0xe0], edx
mov edx, dword [rax - 0xc]
mov dword [rax + 0xe4], edx
mov edx, dword [rax - 8]
mov dword [rax + 0xe8], edx
mov edx, dword [rax - 4]
mov dword [rax + 0xec], edx
sub r9d, 1
jne 0x4ef270
cmp dword [rsi + 0x1e0], 1
jle 0x4ef378
lea rax, [rsi + 0x100]
lea r11, [0x0076d0c0]
lea r10, [0x0076d4c0]
lea rcx, [0x0076ccc0]
lea rdx, [0x0076c8c0]
mov edi, 1
movzx ebp, byte [rax]
movzx r9d, byte [rax + 1]
add edi, 1
add rax, 0x10
mov r9d, dword [r11 + r9*4]
xor r9d, dword [r10 + rbp*4]
movzx ebp, byte [rax - 0xe]
xor r9d, dword [rcx + rbp*4]
movzx ebp, byte [rax - 0xd]
xor r9d, dword [rdx + rbp*4]
movzx ebp, byte [rax - 0xc]
mov dword [rax - 0x10], r9d
movzx r9d, byte [rax - 0xb]
mov r9d, dword [r11 + r9*4]
xor r9d, dword [r10 + rbp*4]
movzx ebp, byte [rax - 0xa]
xor r9d, dword [rcx + rbp*4]
movzx ebp, byte [rax - 9]
xor r9d, dword [rdx + rbp*4]
movzx ebp, byte [rax - 8]
mov dword [rax - 0xc], r9d
movzx r9d, byte [rax - 7]
mov r9d, dword [r11 + r9*4]
xor r9d, dword [r10 + rbp*4]
movzx ebp, byte [rax - 6]
xor r9d, dword [rcx + rbp*4]
movzx ebp, byte [rax - 5]
xor r9d, dword [rdx + rbp*4]
movzx ebp, byte [rax - 4]
mov dword [rax - 8], r9d
movzx r9d, byte [rax - 3]
mov r9d, dword [r11 + r9*4]
xor r9d, dword [r10 + rbp*4]
movzx ebp, byte [rax - 2]
xor r9d, dword [rcx + rbp*4]
movzx ebp, byte [rax - 1]
xor r9d, dword [rdx + rbp*4]
mov dword [rax - 4], r9d
cmp edi, dword [rsi + 0x1e0]
jl 0x4ef2d2
mov ecx, 0x40
mov qword [rsp + 0x28], r8
call fcn.004cbbf0
mov dword [rsi + 0x1e4], 1
mov r8, qword [rsp + 0x28]
jmp 0x4ef208
Function at 0x4f9210
Capabilities:
Hash data using murmur3

Disassembly:
push rsi
push rbx
movzx eax, byte [r8 + 1]
movzx r9d, byte [r8]
mov ebx, 0xf
movzx r10d, byte [r8 + 3]
movzx r11d, byte [r8 + 5]
shl eax, 8
or r9d, eax
movzx eax, byte [r8 + 2]
shl r10d, 8
shl r11d, 8
or eax, r10d
movzx r10d, byte [r8 + 4]
or r10d, r11d
movzx r11d, byte [r8 + 7]
movzx r8d, byte [r8 + 6]
shl r11d, 8
or r8d, r11d
mov r11, rcx
nop dword [rax]
mov esi, r10d
rol r8w, 0xb
and esi, eax
add si, word [r11 + 0x7e]
sub r8d, esi
mov esi, r10d
rol r10w, 0xd
not esi
and esi, r9d
sub r8d, esi
mov esi, eax
and esi, r9d
add si, word [r11 + 0x7c]
sub r10d, esi
mov esi, eax
rol ax, 0xe
not esi
sub ax, word [r11 + 0x7a]
and esi, r8d
sub r10d, esi
mov esi, r8d
and esi, r9d
sub eax, esi
mov esi, r9d
rol r9w, 0xf
not esi
sub r9w, word [r11 + 0x78]
and esi, r10d
sub eax, esi
mov esi, r10d
and esi, r8d
sub r9d, esi
mov esi, r8d
not esi
and esi, eax
sub r9d, esi
cmp ebx, 0xb
je 0x4f92db
cmp ebx, 5
jne 0x4f9306
mov rsi, r10
and esi, 0x3f
sub r8w, word [rcx + rsi*2]
mov rsi, rax
and esi, 0x3f
sub r10w, word [rcx + rsi*2]
mov rsi, r9
and esi, 0x3f
sub ax, word [rcx + rsi*2]
mov rsi, r8
and esi, 0x3f
sub r9w, word [rcx + rsi*2]
sub ebx, 1
sub r11, 8
cmp ebx, 0xffffffff
jne 0x4f9260
mov byte [rdx], r9b
mov byte [rdx + 2], al
shr r9w, 8
shr ax, 8
mov byte [rdx + 4], r10b
mov byte [rdx + 6], r8b
shr r10w, 8
shr r8w, 8
mov byte [rdx + 1], r9b
mov byte [rdx + 3], al
mov byte [rdx + 5], r10b
mov byte [rdx + 7], r8b
pop rbx
pop rsi
ret
Function at 0x503070
Capabilities:
Hash data using sha1

Disassembly:
push rsi
push rbx
sub rsp, 0x88
lea rbx, [rsp + 0x20]
mov rsi, rcx
mov dword [rsp + 0x20], 0x67452301
mov dword [rsp + 0x24], 0xefcdab89
mov dword [rsp + 0x28], 0x98badcfe
mov rcx, rbx
mov dword [rsp + 0x2c], 0x10325476
mov dword [rsp + 0x30], 0xc3d2e1f0
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x78], 0
call fcn.00502d00
mov rcx, rbx
call fcn.00502e70
mov rax, qword [rsp + 0x38]
mov qword [rsi], rax
mov rax, qword [rbx + 0x20]
mov qword [rsi + 8], rax
mov eax, dword [rbx + 0x28]
mov dword [rsi + 0x10], eax
add rsp, 0x88
pop rbx
pop rsi
ret
Function at 0x5049b0
Capabilities:
Hash data using sha1

Disassembly:
push rsi
push rbx
sub rsp, 0x88
lea rbx, [rsp + 0x20]
mov rsi, rcx
mov dword [rsp + 0x20], 0x67452301
mov dword [rsp + 0x24], 0xefcdab89
mov dword [rsp + 0x28], 0x98badcfe
mov rcx, rbx
mov dword [rsp + 0x2c], 0x10325476
mov dword [rsp + 0x30], 0xc3d2e1f0
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x78], 0
call fcn.00504500
mov rcx, rbx
call fcn.00504670
mov rax, qword [rsp + 0x38]
mov qword [rsi], rax
mov rax, qword [rbx + 0x20]
mov qword [rsi + 8], rax
mov eax, dword [rbx + 0x28]
mov dword [rsi + 0x10], eax
add rsp, 0x88
pop rbx
pop rsi
ret
Function at 0x5064cf
Capabilities:
Hash data using tiger

Disassembly:
push rbp
push rdi
push rsi
push rbx
mov rax, r9
xor rax, qword [r8]
movzx ebx, ah
lea r9, [0x00776420]
mov r10, rax
shr r10, 0x18
movzx r10d, r10b
lea r11, [0x00776c20]
mov rsi, qword [r9 + rbx*8]
xor rsi, qword [r11 + r10*8]
mov rbx, rax
shr rbx, 0x38
lea r10, [0x00777c20]
xor rsi, qword [r10 + rbx*8]
mov rdi, rax
shr rdi, 0x28
movzx edi, dil
lea rbx, [0x00777420]
xor rsi, qword [rbx + rdi*8]
add rsi, qword [rdx]
mov rbp, rax
shr rbp, 0x10
movzx ebp, bpl
mov rdi, rax
shr rdi, 0x20
movzx edi, dil
mov rbx, qword [rbx + rbp*8]
xor rbx, qword [r11 + rdi*8]
mov r11, rbx
movzx ebx, al
xor r11, qword [r10 + rbx*8]
mov r10, rax
shr r10, 0x30
movzx r10d, r10b
xor r11, qword [r9 + r10*8]
sub qword [rcx], r11
movsxd r9, dword [rsp + 0x48]
mov rcx, rsi
imul rcx, r9
mov qword [rdx], rcx
mov qword [r8], rax
pop rbx
pop rsi
pop rdi
pop rbp
ret

Function at 0x5066a3
Capabilities:
Hash data using tiger

Disassembly:
push rdi
push rsi
push rbx
mov rax, qword [rcx + 0x38]
movabs rdx, 0xa5a5a5a5a5a5a5a5
xor rdx, rax
mov r8, qword [rcx]
sub r8, rdx
mov r9, r8
xor r9, qword [rcx + 8]
mov rsi, r9
add rsi, qword [rcx + 0x10]
mov rdx, r9
not rdx
shl rdx, 0x13
xor rdx, rsi
mov rbx, qword [rcx + 0x18]
sub rbx, rdx
mov rdx, rbx
xor rdx, qword [rcx + 0x20]
mov r11, rdx
add r11, qword [rcx + 0x28]
mov r10, rdx
not r10
shr r10, 0x17
xor r10, r11
mov rdi, qword [rcx + 0x30]
sub rdi, r10
mov r10, rdi
xor rax, rdi
add r8, rax
mov qword [rcx], r8
mov rdi, rax
not rdi
shl rdi, 0x13
xor r8, rdi
sub r9, r8
mov r8, r9
mov qword [rcx + 8], r9
xor r8, rsi
mov qword [rcx + 0x10], r8
lea r9, [r8 + rbx]
mov qword [rcx + 0x18], r9
not r8
shr r8, 0x17
xor r9, r8
sub rdx, r9
mov qword [rcx + 0x20], rdx
xor rdx, r11
mov qword [rcx + 0x28], rdx
add rdx, r10
mov qword [rcx + 0x30], rdx
movabs r8, 0x123456789abcdef
xor rdx, r8
sub rax, rdx
mov qword [rcx + 0x38], rax
pop rbx
pop rsi
pop rdi
ret
Function at 0x508410
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov edx, dword [0x007efe70]
mov rsi, rcx
lea rbx, [rcx + 0x258]
test edx, edx
je 0x508607
lea rdi, [rsp + 0x20]
lea rbp, [rsi + 0x244]
lea r15, [rsi + 0x26c]
mov rcx, rdi
call fcn.005014d0
mov rax, qword [rsi + 0x244]
mov rdx, rbx
mov rcx, rdi
mov qword [rsi + 0x258], rax
mov rax, qword [rbp + 8]
mov qword [rbx + 8], rax
mov eax, dword [rbp + 0x10]
mov dword [rbx + 0x10], eax
mov rax, qword [rsi]
mov qword [rsi + 0x26c], rax
mov rax, qword [rsi + 8]
mov qword [r15 + 8], rax
mov rax, qword [rsi + 0x10]
mov qword [r15 + 0x10], rax
mov rax, qword [rsi + 0x18]
mov qword [r15 + 0x18], rax
mov rax, qword [rsi + 0x20]
mov qword [r15 + 0x20], rax
mov eax, dword [rsi + 0x28]
mov dword [r15 + 0x28], eax
call fcn.00503030
mov rax, qword [rsi + 0x258]
mov qword [rsi], rax
mov rax, qword [rbx + 8]
mov qword [rsi + 8], rax
mov eax, dword [rbx + 0x10]
mov dword [rsi + 0x10], eax
mov eax, dword [0x007efe24]
test eax, eax
je 0x5084dd
cmp rsi, qword [0x007efee0]
je 0x5085c4
lea r14, [rsi + 0x28]
lea r12, [rsi + 0x298]
mov r13, rsi
nop dword [rax + rax]
mov rax, qword [r13]
add r13, 0x14
mov r8, r14
mov qword [rbx], rax
mov rax, qword [r13 - 0xc]
mov qword [rbx + 8], rax
mov eax, dword [r13 - 4]
lea rdx, [r13 + 0x54]
cmp rbx, rdx
mov dword [rbx + 0x10], eax
mov rax, r15
ja 0x508591
nop dword [rax]
cmp rbx, r8
cmovbe r8, rsi
add rax, 1
mov r9, r8
lea r8, [r8 + 1]
movzx r9d, byte [r9]
mov byte [rax - 1], r9b
cmp rax, r12
jne 0x508520
mov rdx, rbx
mov rcx, rdi
add r14, 0x14
call fcn.00503030
mov rax, qword [rbx]
cmp r13, rbp
mov qword [r13], rax
mov rax, qword [rbx + 8]
mov qword [r13 + 8], rax
mov eax, dword [rbx + 0x10]
mov dword [r13 + 0x10], eax
jne 0x5084f0
cmp rsi, qword [0x007efee0]
je 0x5085e3
mov ecx, 0x180
call fcn.004cbbf0
nop
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r14]
mov qword [r15], rax
mov rax, qword [r14 + 8]
mov qword [r15 + 8], rax
mov rax, qword [r14 + 0x10]
mov qword [r15 + 0x10], rax
mov rax, qword [r14 + 0x18]
mov qword [r15 + 0x18], rax
mov rax, qword [r14 + 0x20]
mov qword [r15 + 0x20], rax
mov eax, dword [r14 + 0x28]
mov dword [r15 + 0x28], eax
jmp 0x50853f
lea rdx, [0x007efe10]
xor eax, eax
movzx ecx, byte [rdx + rax]
xor byte [rsi + rax], cl
add rax, 1
cmp rax, 0x14
jne 0x5085cd
jmp 0x5084dd
lea rcx, [0x007efe10]
mov r8d, 0x258
mov rdx, rsi
call fcn.00503070
mov dword [0x007efe24], 1
jmp 0x508572
lea r9, str.mix_pool
lea rdx, str.random_csprng.c
lea rcx, str.pool_is_locked
mov r8d, 0x267
call fcn.004cb9b0
nop
nop dword [rax + rax]
Function at 0x510b30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
mov eax, dword [rcx]
lea r8, [rsp + 0x20]
mov dword [rsp], eax
mov eax, dword [rcx + 4]
lea r10, [r8 + 0x40]
mov dword [rsp + 4], eax
mov eax, dword [rcx + 8]
mov dword [rsp + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0xc], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x10], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x14], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x18], eax
mov eax, dword [rcx + 0x1c]
mov dword [rsp + 0x1c], eax
mov rax, r8
movzx r9d, byte [rdx]
add rdx, 4
add rax, 4
mov byte [rax - 1], r9b
movzx r9d, byte [rdx - 3]
mov byte [rax - 2], r9b
movzx r9d, byte [rdx - 2]
mov byte [rax - 3], r9b
movzx r9d, byte [rdx - 1]
mov byte [rax - 4], r9b
cmp rax, r10
jne 0x510b85
lea r13, [rsp + 0x60]
xor eax, eax
nop dword [rax]
mov edx, dword [r8 + rax]
mov dword [r13 + rax], edx
add rax, 4
cmp rax, 0x40
jne 0x510bc0
lea rax, [r13 + 0x38]
lea rbx, [r13 + 0xf8]
nop
mov r10d, dword [rax]
mov r9d, dword [rax - 0x38]
add rax, 4
add r9d, dword [rax - 0x18]
mov r8d, dword [rax - 0x38]
mov edx, r10d
mov r11d, r10d
shr r10d, 0xa
ror edx, 0x13
ror r11d, 0x11
xor edx, r11d
xor edx, r10d
mov r10d, r8d
add r9d, edx
mov edx, r8d
ror r10d, 7
ror edx, 0x12
shr r8d, 3
xor edx, r10d
xor edx, r8d
add edx, r9d
mov dword [rax + 4], edx
cmp rax, rbx
jne 0x510be0
mov r15d, dword [rsp + 0x1c]
mov ebx, dword [rsp + 0x18]
xor r11d, r11d
mov edi, dword [rsp + 0x14]
mov edx, dword [rsp + 0x10]
lea r14, [0x0077e240]
mov r12d, dword [rsp + 0xc]
mov ebp, dword [rsp + 8]
mov esi, dword [rsp + 4]
mov eax, dword [rsp]
jmp 0x510c74
mov r15d, ebx
mov ebx, edi
mov edi, edx
mov edx, r12d
mov r12d, ebp
mov ebp, esi
mov esi, eax
mov eax, r8d
mov r8d, edx
mov r9d, edx
mov r10d, dword [r13 + r11]
ror r9d, 6
add r10d, dword [r14 + r11]
ror r8d, 0xb
xor r8d, r9d
mov r9d, edx
add r11, 4
ror r9d, 0x19
xor r8d, r9d
mov r9d, esi
add r8d, r10d
mov r10d, ebx
or r9d, eax
xor r10d, edi
and r9d, ebp
and r10d, edx
xor r10d, ebx
add r10d, r8d
mov r8d, esi
and r8d, eax
add r10d, r15d
mov r15d, eax
or r9d, r8d
mov r8d, eax
ror r15d, 2
ror r8d, 0xd
add r12d, r10d
xor r8d, r15d
mov r15d, eax
ror r15d, 0x16
xor r8d, r15d
add r8d, r9d
add r8d, r10d
cmp r11, 0x100
jne 0x510c60
mov r10d, dword [rsp]
add eax, dword [rsp + 4]
add esi, dword [rsp + 8]
add ebp, dword [rsp + 0xc]
add r12d, dword [rsp + 0x10]
add edx, dword [rsp + 0x14]
add edi, dword [rsp + 0x18]
add ebx, dword [rsp + 0x1c]
add r10d, r8d
mov dword [rcx], r10d
mov dword [rcx + 4], eax
mov dword [rcx + 8], esi
mov dword [rcx + 0xc], ebp
mov dword [rcx + 0x10], r12d
mov dword [rcx + 0x14], edx
mov dword [rcx + 0x18], edi
mov dword [rcx + 0x1c], ebx
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x511160
Capabilities:
Authenticate hmac
Encode data using xor
Hash data using sha256

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov r12, rcx
mov ecx, 0xac
mov r13, rdx
call sub.msvcrt.dll_malloc
test rax, rax
mov rbx, rax
je 0x5113c5
and byte [rax + 0x28], 0xfc
test r12, r12
mov dword [rax], 0x6a09e667
mov dword [rax + 4], 0xbb67ae85
mov dword [rax + 8], 0x3c6ef372
mov dword [rax + 0xc], 0xa54ff53a
mov dword [rax + 0x10], 0x510e527f
mov dword [rax + 0x14], 0x9b05688c
mov dword [rax + 0x18], 0x1f83d9ab
mov dword [rax + 0x1c], 0x5be0cd19
mov dword [rax + 0x20], 0
mov dword [rax + 0x24], 0
je 0x511314
lea rbp, [rbx + 0x69]
lea rsi, [rsp + 0x20]
xor eax, eax
mov ecx, 8
mov r9d, 0x40
mov rdi, rsi
test bpl, 1
rep stosq qword [rdi], rax
mov rdi, rbp
jne 0x51138d
test dil, 2
jne 0x51139d
test dil, 4
jne 0x5113b2
mov ecx, r9d
xor eax, eax
shr ecx, 3
test r9b, 4
rep stosq qword [rdi], rax
jne 0x51136a
test r9b, 2
jne 0x511352
and r9d, 1
jne 0x51133f
cmp r13, 0x40
jbe 0x511321
xor edx, edx
xor ecx, ecx
call fcn.00511160
test rax, rax
mov rdi, rax
je 0x5113cc
mov r8, r13
mov rdx, r12
mov rcx, rax
call fcn.00510d90
test byte [rdi + 0x28], 1
je 0x511380
mov rdx, qword [rdi + 0x29]
mov rcx, rdi
mov qword [rsp + 0x20], rdx
mov rdx, qword [rdi + 0x31]
mov qword [rsp + 0x28], rdx
mov rdx, qword [rdi + 0x39]
mov qword [rsp + 0x30], rdx
mov rdx, qword [rdi + 0x41]
mov qword [rsp + 0x38], rdx
mov rdx, qword [rdi + 0x29]
mov qword [rbx + 0x69], rdx
mov rdx, qword [rdi + 0x31]
mov qword [rbp + 8], rdx
mov rdx, qword [rdi + 0x39]
mov qword [rbp + 0x10], rdx
mov rax, qword [rdi + 0x41]
mov qword [rbp + 0x18], rax
call fcn.00510d50
xor r8d, r8d
nop word cs:[rax + rax]
xor byte [rsi + r8], 0x36
xor byte [rbx + r8 + 0x69], 0x5c
add r8, 1
cmp r8, 0x40
jne 0x5112d0
mov rdx, rsi
mov rcx, rbx
or byte [rbx + 0x28], 2
call fcn.00510d90
mov rdx, rsi
nop word [rax + rax]
lea rax, [rsp + 0x60]
mov byte [rdx], 0
add rdx, 1
cmp rdx, rax
jne 0x511300
mov rax, rbx
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov r8, r13
mov rdx, r12
mov rcx, rsi
call sub.msvcrt.dll_memcpy
mov r8, r13
mov rdx, r12
mov rcx, rbp
call sub.msvcrt.dll_memcpy
jmp 0x5112c3
cmp r13, 0x40
mov byte [rdi], 0
ja 0x51124a
nop dword [rax]
jmp 0x511321
xor r8d, r8d
add rdi, 2
mov word [rdi - 2], r8w
and r9d, 1
je 0x511240
jmp 0x51133f
mov dword [rdi], 0
add rdi, 4
test r9b, 2
je 0x511236
jmp 0x511352
mov rcx, rdi
call fcn.00510ee0
jmp 0x511277
mov byte [rbx + 0x69], 0
lea rdi, [rbx + 0x6a]
mov r9b, 0x3f
jmp 0x511203
xor r10d, r10d
add rdi, 2
sub r9d, 2
mov word [rdi - 2], r10w
jmp 0x51120d
mov dword [rdi], 0
sub r9d, 4
add rdi, 4
jmp 0x511217
xor eax, eax
jmp 0x511314
mov rcx, rbx
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x511314
Function at 0x511650
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rdi, rcx
lea rcx, str.GNUPG_RNDW32_NOPERF
mov ebp, edx
call sub.msvcrt.dll_getenv
test rax, rax
je 0x5116c0
mov eax, dword [0x007eff78]
test eax, eax
je 0x5116a0
mov rcx, 0xffffffff80000004
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
lea rcx, str.note:_get_performance_data_has_been_disabled_n
mov dword [0x007eff78], 1
call fcn.004cb9e0
jmp 0x51167c
movsxd rcx, dword [0x00659ee0]
lea r13, [rsp + 0x3c]
mov esi, 0xa
call fcn.004c8850
mov r12, qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov rbx, rax
mov eax, dword [0x00659ee0]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
lea rdx, str.Global
mov rcx, 0xffffffff80000004
mov dword [rsp + 0x3c], eax
call r12
test eax, eax
je 0x511750
cmp eax, 0xea
jne 0x511780
mov eax, dword [0x00659ee0]
mov rcx, rbx
add eax, 0x4000
movsxd rdx, eax
mov dword [0x00659ee0], eax
call fcn.004c88d0
sub esi, 1
mov rbx, rax
jne 0x5116e0
mov rcx, rbx
call fcn.004c8620
jmp 0x51167c
lea rdx, str.PERF
mov r8d, 8
mov rcx, rbx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x51179e
mov edx, dword [rsp + 0x3c]
mov r8d, ebp
mov rcx, rbx
call rdi
jmp 0x51173a
cmp eax, dword [0x007eff74]
je 0x51173a
lea rcx, str.rndw32:_get_performance_data_problem:_ec_ld_n
mov edx, eax
mov dword [0x007eff74], eax
call fcn.004cbad0
jmp 0x51173a
lea rcx, str.rndw32:_no_PERF_signature_n
call fcn.004cbad0
jmp 0x51173a
Function at 0x512600
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov ecx, dword [0x00659ef0]
call qword [sym.imp.KERNEL32.DLL_TlsGetValue]
test rax, rax
mov rbx, rax
je 0x512622
mov rax, rbx
add rsp, 0x20
pop rbx
ret
mov edx, 4
mov ecx, 0x40
call qword [sym.imp.KERNEL32.DLL_LocalAlloc]
test rax, rax
mov rbx, rax
je 0x512658
mov ecx, dword [0x00659ef0]
mov rdx, rax
mov dword [rax], 0
call qword [sym.imp.KERNEL32.DLL_TlsSetValue]
mov rax, rbx
add rsp, 0x20
pop rbx
ret
call sub.msvcrt.dll_abort
nop
nop

Function at 0x5126b0
Capabilities:
Get file size
Read file on windows

Disassembly:
sub rsp, 0x28
movzx edx, cx
and ch, 0x80
mov ecx, edx
je 0x5126e4
call fcn.00514470
test eax, eax
mov ecx, 0x3ffe
mov edx, 0x3ffe
jne 0x512715
lea eax, [rdx - 0x400]
cmp eax, 0xf
ja 0x512732
lea eax, [rcx - 0x313]
jmp 0x5126ee
cmp edx, 0xc4
mov eax, edx
ja 0x512720
lea rdx, [0x0077e8a0]
cdqe
lea rcx, [0x0077e875]
movsxd rdx, dword [rdx + rax*4]
lea rax, str.Success
add rdx, rax
add rsp, 0x28
jmp fcn.00514410
mov ecx, eax
add rsp, 0x28
jmp sub.msvcrt.dll_strerror
lea r8d, [rdx - 0xc6]
cmp r8d, 0xf
ja 0x51274b
sub eax, 1
jmp 0x5126ee
sub edx, 0x3ffd
sub ecx, 0x3f00
mov eax, 0x100
cmp edx, 2
cmovbe eax, ecx
jmp 0x5126ee
lea r8d, [rdx - 0x101]
cmp r8d, 0xe
ja 0x51275d
sub eax, 0x2c
jmp 0x5126ee
lea r8d, [rdx - 0x111]
cmp r8d, 8
ja 0x5126d1
sub eax, 0x2d
jmp 0x5126ee