joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4699d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
xor eax, eax
push edi
push esi
push ebx
sub esp, 0x14
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
mov edx, dword [esi + 0x3c]
or edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
jne 0x469a05
mov eax, edi
xor edx, edx
add eax, ecx
adc edx, ebx
cmp edx, 0x20000000
jbe 0x469a0d
xor eax, eax
add esp, 0x14
pop ebx
pop esi
pop edi
pop ebp
ret
jae 0x469b03
mov dword [esi + 0x34], edx
mov edx, dword [esi + 0x16c]
mov dword [esi + 0x30], eax
test edx, edx
je 0x469a73
test edi, edi
jne 0x469a34
jmp 0x469a4e
test edi, edi
je 0x469a4a
add ebp, 1
movzx eax, byte [ebp - 1]
sub edi, 1
xor byte [esi + edx + 0x40], al
add edx, 1
and edx, 0xf
jne 0x469a30
test edx, edx
je 0x469a61
mov dword [esi + 0x16c], edx
add esp, 0x14
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esi + 0x60]
mov dword [esp + 4], eax
lea eax, [esi + 0x40]
mov dword [esp], eax
call dbg.gcm_gmult_4bit
cmp edi, 0xf
jbe 0x469ad6
lea ecx, [esi + 0x40]
mov ebx, ebp
lea eax, [esi + 0x60]
mov dword [esp + 0xc], ecx
mov ecx, edi
mov dword [esp + 0x2c], ebp
mov ebp, eax
mov dword [esp + 0x30], edi
mov edi, ebx
mov ebx, ecx
xor eax, eax
movzx edx, byte [edi + eax]
xor byte [esi + eax + 0x40], dl
add eax, 1
cmp eax, 0x10
jne 0x469a96
mov eax, dword [esp + 0xc]
sub ebx, 0x10
add edi, 0x10
mov dword [esp + 4], ebp
mov dword [esp], eax
call dbg.gcm_gmult_4bit
cmp ebx, 0xf
ja 0x469a94
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
lea eax, [edi - 0x10]
and edi, 0xf
and eax, 0xfffffff0
lea ebp, [ebp + eax + 0x10]
test edi, edi
je 0x469af0
xor edx, edx
lea esi, [esi]
movzx eax, byte [ebp + edx]
xor byte [esi + edx + 0x40], al
add edx, 1
cmp edx, edi
jne 0x469ae0
mov dword [esi + 0x16c], edi
add esp, 0x14
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 0
jbe 0x469a13
xor eax, eax
jmp 0x469a05
Function at 0x46ae30
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov ebx, dword [eax]
test ebx, ebx
je 0x46ae7a
test edx, edx
je 0x46ae7a
mov edi, dword [esp + 0x30]
jmp 0x46ae5b
test edx, edx
je 0x46ae76
movzx eax, byte [esi + ebx]
add edi, 1
add ebx, 1
xor al, byte [edi - 1]
add ecx, 1
sub edx, 1
and ebx, 0xf
mov byte [ecx - 1], al
jne 0x46ae57
mov dword [esp + 0x30], edi
cmp edx, 0xf
jbe 0x46af62
mov edi, dword [esp + 0x30]
mov eax, edx
mov ebp, ecx
mov dword [esp + 0x38], edx
mov edx, esi
mov dword [esp + 0x34], ecx
mov esi, edi
mov edi, eax
lea esi, [esi]
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], edx
mov dword [esp], edx
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call dword [esp + 0x48]
cmp ebx, 0xf
mov edx, dword [esp + 0xc]
ja 0x46aed2
mov eax, dword [edx + ebx]
xor eax, dword [esi + ebx]
mov dword [ebp + ebx], eax
add ebx, 4
cmp ebx, 0xf
jbe 0x46aec0
sub edi, 0x10
add ebp, 0x10
add esi, 0x10
cmp edi, 0xf
jbe 0x46aee4
xor ebx, ebx
jmp 0x46aea0
mov esi, edx
mov edx, dword [esp + 0x38]
xor ebx, ebx
mov ecx, dword [esp + 0x34]
mov edi, edx
sub edx, 0x10
and edx, 0xfffffff0
and edi, 0xf
lea eax, [edx + 0x10]
add dword [esp + 0x30], eax
add ecx, eax
test edi, edi
jne 0x46af16
mov eax, dword [esp + 0x44]
mov dword [eax], ebx
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], esi
mov dword [esp], esi
add esi, ebx
mov dword [esp + 8], eax
call dword [esp + 0x48]
mov ecx, dword [esp + 0xc]
xor eax, eax
mov edx, dword [esp + 0x30]
add ecx, ebx
lea ebp, [edx + ebx]
nop
movzx edx, byte [esi + eax]
xor dl, byte [ebp + eax]
mov byte [ecx + eax], dl
add eax, 1
cmp eax, edi
jne 0x46af40
add ebx, eax
mov eax, dword [esp + 0x44]
mov dword [eax], ebx
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, edx
jmp 0x46af04

Function at 0x46b210
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
cmp ebx, 0x30
ja 0x46b230
mov dword [esp + 8], ebx
pop ebx
jmp sym._CTR_DRBG_init.part.85
xor eax, eax
pop ebx
ret
Function at 0x46b240
Capabilities:
Encode data using xor

Disassembly:
push ebx
sub esp, 0x38
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
test ecx, ecx
je 0x46b2c1
cmp ecx, 0x30
ja 0x46b2f5
mov eax, dword [edx]
mov dword [esp], eax
mov eax, dword [edx + 4]
mov dword [esp + 4], eax
mov eax, dword [edx + 8]
mov dword [esp + 8], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [edx + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x2c], eax
xor eax, eax
movzx edx, byte [ebx + eax]
xor byte [esp + eax], dl
add eax, 1
cmp eax, ecx
jne 0x46b2b1
mov edx, esp
mov eax, dword [esp + 0x40]
mov ecx, 0x30
call sym._ctr_drbg_update.part.82
test eax, eax
je 0x46b2f5
mov eax, dword [esp + 0x40]
mov dword [eax + 0x110], 1
mov dword [eax + 0x114], 0
add esp, 0x38
mov eax, 1
pop ebx
ret
add esp, 0x38
xor eax, eax
pop ebx
ret
Function at 0x4737a0
Capabilities:
Hash data using sha1

Disassembly:
push edi
push ebx
mov edx, dword [esp + 0xc]
mov ebx, 0x60
test dl, 1
mov edi, edx
jne 0x473803
test edi, 2
jne 0x473813
mov ecx, ebx
xor eax, eax
shr ecx, 2
test bl, 2
rep stosd dword es:[edi], eax
je 0x4737d1
xor eax, eax
add edi, 2
mov word [edi - 2], ax
and ebx, 1
je 0x4737d9
mov byte [edi], 0
mov dword [edx], 0x67452301
mov eax, 1
mov dword [edx + 4], 0xefcdab89
mov dword [edx + 8], 0x98badcfe
mov dword [edx + 0xc], 0x10325476
mov dword [edx + 0x10], 0xc3d2e1f0
pop ebx
pop edi
ret
lea edi, [edx + 1]
mov bl, 0x5f
test edi, 2
mov byte [edx], 0
je 0x4737ba
xor ecx, ecx
add edi, 2
mov word [edi - 2], cx
sub ebx, 2
jmp 0x4737ba

Function at 0x473860
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 8]
mov ecx, 1
mov eax, dword [esp + 4]
jmp dbg.sha1_block_data_order

Function at 0x473ae0
Capabilities:
Hash data using sha1

Disassembly:
push edi
xor eax, eax
push esi
mov ecx, 0x18
push ebx
sub esp, 0x70
mov edx, dword [esp + 0x84]
lea ebx, [esp + 0x10]
mov edi, ebx
mov esi, dword [esp + 0x88]
rep stosd dword es:[edi], eax
mov dword [esp + 0x10], 0x67452301
test edx, edx
mov dword [esp + 0x14], 0xefcdab89
mov dword [esp + 0x18], 0x98badcfe
mov dword [esp + 0x1c], 0x10325476
mov dword [esp + 0x20], 0xc3d2e1f0
je 0x473b3f
mov ecx, edx
mov edx, dword [esp + 0x80]
mov eax, ebx
call sym._SHA1_Update.part.100
mov dword [esp + 4], ebx
mov dword [esp], esi
call dbg.SHA1_Final
mov dword [esp], ebx
mov dword [esp + 4], 0x60
call sym.adb.exe_OPENSSL_cleanse
add esp, 0x70
mov eax, esi
pop ebx
pop esi
pop edi
ret

Function at 0x473b70
Capabilities:
Hash data using sha224

Disassembly:
push edi
push ebx
mov edx, dword [esp + 0xc]
mov ebx, 0x70
test dl, 1
mov edi, edx
jne 0x473bf0
test edi, 2
jne 0x473c00
mov ecx, ebx
xor eax, eax
shr ecx, 2
test bl, 2
rep stosd dword es:[edi], eax
je 0x473ba1
xor eax, eax
add edi, 2
mov word [edi - 2], ax
and ebx, 1
je 0x473ba9
mov byte [edi], 0
mov dword [edx], 0xc1059ed8
mov eax, 1
mov dword [edx + 4], 0x367cd507
mov dword [edx + 8], 0x3070dd17
mov dword [edx + 0xc], 0xf70e5939
mov dword [edx + 0x10], 0xffc00b31
mov dword [edx + 0x14], 0x68581511
mov dword [edx + 0x18], 0x64f98fa7
mov dword [edx + 0x1c], 0xbefa4fa4
mov dword [edx + 0x6c], 0x1c
pop ebx
pop edi
ret
lea edi, [edx + 1]
mov bl, 0x6f
test edi, 2
mov byte [edx], 0
je 0x473b8a
xor ecx, ecx
add edi, 2
mov word [edi - 2], cx
sub ebx, 2
jmp 0x473b8a
Function at 0x473c30
Capabilities:
Hash data using sha256

Disassembly:
push edi
push ebx
mov edx, dword [esp + 0xc]
mov ebx, 0x70
test dl, 1
mov edi, edx
jne 0x473cb0
test edi, 2
jne 0x473cc0
mov ecx, ebx
xor eax, eax
shr ecx, 2
test bl, 2
rep stosd dword es:[edi], eax
je 0x473c61
xor eax, eax
add edi, 2
mov word [edi - 2], ax
and ebx, 1
je 0x473c69
mov byte [edi], 0
mov dword [edx], 0x6a09e667
mov eax, 1
mov dword [edx + 4], 0xbb67ae85
mov dword [edx + 8], 0x3c6ef372
mov dword [edx + 0xc], 0xa54ff53a
mov dword [edx + 0x10], 0x510e527f
mov dword [edx + 0x14], 0x9b05688c
mov dword [edx + 0x18], 0x1f83d9ab
mov dword [edx + 0x1c], 0x5be0cd19
mov dword [edx + 0x6c], 0x20
pop ebx
pop edi
ret
lea edi, [edx + 1]
mov bl, 0x6f
test edi, 2
mov byte [edx], 0
je 0x473c4a
xor ecx, ecx
add edi, 2
mov word [edi - 2], cx
sub ebx, 2
jmp 0x473c4a

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

Disassembly:
mov edx, dword [esp + 8]
mov ecx, 1
mov eax, dword [esp + 4]
jmp dbg.sha256_block_data_order

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

Disassembly:
mov edx, dword [esp + 8]
mov ecx, 1
mov eax, dword [esp + 4]
jmp dbg.sha512_block_data_order
Function at 0x474ec0
Capabilities:
Hash data using sha256

Disassembly:
push esi
push ebx
sub esp, 0xf4
mov eax, dword [esp + 0x104]
lea ebx, [esp + 0x18]
mov esi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 0x18], 0xf3bcc908
mov dword [esp + 8], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x1c], 0x6a09e667
mov dword [esp + 0x20], 0x84caa73b
mov dword [esp + 0x24], 0xbb67ae85
mov dword [esp + 4], eax
mov dword [esp + 0x28], 0xfe94f82b
mov dword [esp + 0x2c], 0x3c6ef372
mov dword [esp + 0x30], 0x5f1d36f1
mov dword [esp + 0x34], 0xa54ff53a
mov dword [esp + 0x38], 0xade682d1
mov dword [esp + 0x3c], 0x510e527f
mov dword [esp + 0x40], 0x2b3e6c1f
mov dword [esp + 0x44], 0x9b05688c
mov dword [esp + 0x48], 0xfb41bd6b
mov dword [esp + 0x4c], 0x1f83d9ab
mov dword [esp + 0x50], 0x137e2179
mov dword [esp + 0x54], 0x5be0cd19
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0x40
call dbg.SHA512_Update
mov dword [esp + 4], ebx
mov dword [esp], esi
call dbg.SHA512_Final
mov dword [esp], ebx
mov dword [esp + 4], 0xd8
call sym.adb.exe_OPENSSL_cleanse
add esp, 0xf4
mov eax, esi
pop ebx
pop esi
ret
Function at 0x4761f0
Capabilities:
Hash data using sha224

Disassembly:
push esi
push ebx
sub esp, 0xf4
mov eax, dword [esp + 0x104]
lea ebx, [esp + 0x18]
mov esi, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 0x18], 0xc1059ed8
mov dword [esp + 8], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x1c], 0xcbbb9d5d
mov dword [esp + 0x20], 0x367cd507
mov dword [esp + 0x24], 0x629a292a
mov dword [esp + 4], eax
mov dword [esp + 0x28], 0x3070dd17
mov dword [esp + 0x2c], 0x9159015a
mov dword [esp + 0x30], 0xf70e5939
mov dword [esp + 0x34], 0x152fecd8
mov dword [esp + 0x38], 0xffc00b31
mov dword [esp + 0x3c], 0x67332667
mov dword [esp + 0x40], 0x68581511
mov dword [esp + 0x44], 0x8eb44a87
mov dword [esp + 0x48], 0x64f98fa7
mov dword [esp + 0x4c], 0xdb0c2e0d
mov dword [esp + 0x50], 0xbefa4fa4
mov dword [esp + 0x54], 0x47b5481d
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0x30
call dbg.SHA512_Update
mov dword [esp + 4], ebx
mov dword [esp], esi
call dbg.SHA512_Final
mov dword [esp], ebx
mov dword [esp + 4], 0xd8
call sym.adb.exe_OPENSSL_cleanse
add esp, 0xf4
mov eax, esi
pop ebx
pop esi
ret
Function at 0x476300
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x78]
test ebx, ebx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x3c], ecx
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x38], eax
je 0x4763d8
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], esi
call sym._memset
mov dword [esp + 4], dbg.EVP_md5_sha1_init
mov dword [esp], 0x5bc4b0
call dbg.CRYPTO_once
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x5bc4c0
je 0x4763e5
mov eax, dword [esp + 0x38]
mov edx, ebx
mov dword [esp + 0x64], ebp
mov dword [esp + 0x60], edi
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x68], eax
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
jmp dbg.tls1_P_hash
mov eax, 1
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ebp
shr eax, 1
mov dword [esp + 4], dbg.EVP_md5_init
sub ebp, eax
mov dword [esp], 0x5bc620
mov dword [esp + 0x3c], eax
call dbg.CRYPTO_once
mov eax, dword [esp + 0x38]
mov ecx, 0x5bc640
mov dword [esp + 4], ebp
mov edx, ebx
mov dword [esp], edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, esi
call dbg.tls1_P_hash
test eax, eax
je 0x4763dd
mov dword [esp + 4], dbg.EVP_sha1_init
mov dword [esp], 0x5bc5e0
add edi, dword [esp + 0x3c]
call dbg.CRYPTO_once
mov ecx, 0x5bc600
jmp 0x476390

Function at 0x476580
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
push ebx
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
test ebx, ebx
je 0x4765ae
xor edx, edx
xor eax, eax
movzx ecx, byte [edi + edx]
xor cl, byte [esi + edx]
add edx, 1
or eax, ecx
cmp edx, ebx
jne 0x476597
movzx eax, al
pop ebx
pop esi
pop edi
ret
xor eax, eax
jmp 0x4765aa

Function at 0x4765c0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
test ebx, ebx
je 0x4765e8
mov edx, dword [esp + 8]
mov eax, 0x811c9dc5
add ebx, edx
movzx ecx, byte [edx]
add edx, 1
xor ecx, eax
imul eax, ecx, 0x1000193
cmp edx, ebx
jne 0x4765d4
pop ebx
ret
mov eax, 0x811c9dc5
pop ebx
ret
Function at 0x48eda0
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xfc
mov edi, dword [esp + 0x118]
lea ebp, [esp + 0x10]
mov dword [esp + 8], ebp
mov ebx, dword [esp + 0x114]
mov dword [esp + 4], 0x20
mov esi, dword [esp + 0x110]
mov dword [esp], edi
call dbg.SHA512
movzx eax, byte [esp + 0x2f]
mov dword [esp + 4], ebp
lea ebp, [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 8], 0x57aa20
and eax, 0x3f
or eax, 0x40
mov byte [esp + 0x2f], al
and byte [esp + 0x10], 0xf8
call dbg.x25519_ge_scalarmult_small_precomp
mov edx, ebp
mov eax, esi
call dbg.ge_p3_tobytes
mov eax, dword [edi]
mov dword [ebx], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [ebx + 0x1c], eax
mov edx, dword [esi]
mov dword [ebx + 0x20], edx
mov edx, dword [esi + 4]
mov dword [ebx + 0x24], edx
mov edx, dword [esi + 8]
mov dword [ebx + 0x28], edx
mov edx, dword [esi + 0xc]
mov dword [ebx + 0x2c], edx
mov edx, dword [esi + 0x10]
mov dword [ebx + 0x30], edx
mov edx, dword [esi + 0x14]
mov dword [ebx + 0x34], edx
mov edx, dword [esi + 0x18]
mov dword [ebx + 0x38], edx
mov edx, dword [esi + 0x1c]
mov dword [ebx + 0x3c], edx
add esp, 0xfc
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x48ef00
Capabilities:
Encrypt data using curve25519

Disassembly:
sub esp, 0x15c
mov eax, dword [esp + 0x164]
mov edx, dword [eax]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 4]
and byte [esp + 0x18], 0xf8
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 8], 0x57aa20
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
shr eax, 0x18
and eax, 0x7f
or eax, 0x40
mov byte [esp + 0x37], al
lea eax, [esp + 0x18]
mov dword [esp + 4], eax
lea eax, [esp + 0xb0]
mov dword [esp], eax
call dbg.x25519_ge_scalarmult_small_precomp
lea ecx, [esp + 0xd8]
lea edx, [esp + 0x100]
lea eax, [esp + 0x38]
call dbg.fe_add_impl
lea ecx, [esp + 0xd8]
lea edx, [esp + 0x100]
lea eax, [esp + 0x60]
call dbg.fe_sub_impl
lea edx, [esp + 0x60]
lea eax, [esp + 0x88]
call dbg.fe_loose_invert
lea ecx, [esp + 0x88]
lea edx, [esp + 0x38]
mov eax, ecx
call dbg.fe_mul_impl
mov eax, dword [esp + 0x160]
lea edx, [esp + 0x88]
call dbg.fe_tobytes
add esp, 0x15c
ret
Function at 0x4a5f10
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 4
mov eax, dword [esp + 0x18]
mov ebx, dword [eax]
lea esi, [eax + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4a5f6f
xor eax, eax
lea esi, [esi]
add ebx, 1
movzx ebx, bl
lea edi, [esi + ebx*4]
mov edx, dword [edi]
add ecx, edx
movzx ecx, cl
lea ebp, [esi + ecx*4]
mov dword [esp], ebp
mov ebp, dword [ebp]
mov dword [edi], ebp
mov edi, dword [esp]
mov dword [edi], edx
mov edi, dword [esp + 0x20]
add edx, ebp
movzx edx, dl
mov edx, dword [esi + edx*4]
xor dl, byte [edi + eax]
mov edi, dword [esp + 0x24]
mov byte [edi + eax], dl
add eax, 1
cmp eax, dword [esp + 0x1c]
jne 0x4a5f30
mov eax, dword [esp + 0x18]
mov dword [eax], ebx
mov dword [eax + 4], ecx
add esp, 4
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x4a6c50
Capabilities:
Write file on windows

Disassembly:
push ebx
mov eax, 1
sub esp, 0x18
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
test edx, edx
je 0x4a6c89
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._fwrite
cmp ebx, eax
sete al
movzx eax, al
add esp, 0x18
pop ebx
ret
Function at 0x4baa30
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov edi, dword [esp + 0xd4]
lea esi, [esp + 0x2c]
mov ebx, dword [esp + 0xdc]
mov dword [esp], edi
call sym.adb.exe_EVP_MD_size
mov dword [esp], esi
mov dword [esp + 0x18], eax
call dbg.HMAC_CTX_init
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc], edi
xor edi, edi
mov dword [esp + 0x10], 0
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
call dbg.HMAC_Init_ex
test eax, eax
je 0x4bac49
mov ecx, dword [esp + 0xd8]
test ecx, ecx
je 0x4bac39
mov dword [esp + 0x1c], 1
lea ebp, [esp + 0x60]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0xd8], eax
cmovbe eax, dword [esp + 0xd8]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov edi, eax
mov eax, ecx
shr eax, 0x18
mov byte [esp + 0x28], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x29], al
mov eax, ecx
shr eax, 8
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
mov byte [esp + 0x2a], al
mov byte [esp + 0x2b], cl
call dbg.HMAC_Init_ex
test eax, eax
je 0x4bac5e
mov eax, dword [esp + 0xcc]
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], eax
call sym.adb.exe_HMAC_Update
test eax, eax
je 0x4bac5e
lea eax, [esp + 0x28]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], esi
call sym.adb.exe_HMAC_Update
test eax, eax
je 0x4bac5e
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov dword [esp], esi
call dbg.HMAC_Final
test eax, eax
je 0x4bac5e
test edi, edi
jne 0x4bac62
cmp dword [esp + 0xd0], 1
mov dword [esp + 0x14], 1
jbe 0x4bac25
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
call dbg.HMAC_Init_ex
test eax, eax
je 0x4bac5e
mov eax, dword [esp + 0x18]
mov dword [esp + 4], ebp
mov dword [esp], esi
mov dword [esp + 8], eax
call sym.adb.exe_HMAC_Update
test eax, eax
je 0x4bac5e
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov dword [esp], esi
call dbg.HMAC_Final
test eax, eax
je 0x4bac5e
test edi, edi
je 0x4bac0f
xor eax, eax
lea esi, [esi]
movzx edx, byte [ebp + eax]
xor byte [ebx + eax], dl
add eax, 1
cmp eax, edi
jne 0x4bac00
add dword [esp + 0x14], 1
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0xd0]
jne 0x4bab97
add ebx, edi
add dword [esp + 0x1c], 1
sub dword [esp + 0xd8], edi
jne 0x4baaaf
mov edx, dword [esp + 0xd0]
xor eax, eax
test edx, edx
setne al
mov edi, eax
mov dword [esp], esi
call dbg.HMAC_CTX_cleanup
add esp, 0xac
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
xor edi, edi
jmp 0x4bac49
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sym._memcpy
jmp 0x4bab81
Function at 0x4baf70
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
lea esi, [ebp + 0x10]
mov dword [esp + 4], esi
mov edi, eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__vscprintf]
add eax, 1
mov dword [esp], eax
call sym._malloc
test eax, eax
mov ebx, eax
je 0x4bafcc
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
call dbg.__mingw_vsprintf
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
sub esp, 4
mov dword [esp], ebx
call sym._free
mov dword [esp], edi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x4bb1b0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, ecx
push esi
mov esi, edx
push ebx
sub esp, 0x3c
mov dword [ebp - 0x1c], eax
jmp 0x4bb1d6
cmp eax, edi
jg 0x4bb299
test eax, eax
jle 0x4bb299
add esi, eax
sub edi, eax
test edi, edi
je 0x4bb275
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_recv]
sub esp, 0x10
test eax, eax
mov ebx, eax
jns 0x4bb1c2
call dword [sym.imp.msvcrt.dll__errno]
cmp dword [eax], 4
je 0x4bb280
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
cmp eax, 0x2733
je 0x4bb263
call esi
mov dword [esp], eax
call dbg.win32_strerror
mov dword [ebp - 0x20], eax
call esi
mov edx, dword [ebp - 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], str.dnssd_clientstub_read_all__d__failed__ld__ld__d__s
mov dword [esp], 0x1388
call dbg.syslog
test ebx, ebx
mov eax, 0xffffffff
jns 0x4bb277
call esi
cmp eax, 0x2733
setne al
movzx eax, al
sub eax, 2
jmp 0x4bb277
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], str.dnssd_clientstub_read_all:_EINTR_continue
mov dword [esp], 0x3e8
call dbg.syslog
jmp 0x4bb1d6
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
mov edx, 0x5927b4
mov ecx, eax
xor eax, eax
cmp ecx, 0x2733
jne 0x4bb22f
mov eax, 0xffffffff
jmp 0x4bb277