joyce8/EMBER2024-capa huggingface dataset:
Function at 0x43ea00
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e1701
mov eax, dword fs:[0]
push eax
sub esp, 0x824
mov eax, dword [0x532ab0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x818], edx
mov dword [ebp - 0x824], 0
mov dword [ebp - 0x820], 0
mov dword [ebp - 0x81c], 0
mov edx, ecx
push 0
lea ecx, [ebp - 0x814]
mov dword [ebp - 4], 0
call fcn.0043d0c0
add esp, 4
lea ecx, [ebp - 0x824]
push 0x2001f
push dword [eax]
push dword [0x535ee4]
call fcn.0041ab70
mov edx, dword [ebp - 0x814]
test eax, eax
setne bl
add edx, 0xfffffff0
or eax, 0xffffffff
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43eaa8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [ebp - 0x824]
test bl, bl
je 0x43eabf
xor bl, bl
jmp 0x43ebd6
xor ebx, ebx
xor eax, eax
push 0x7fe
push eax
mov word [ebp - 0x810], ax
lea eax, [ebp - 0x80e]
push eax
call fcn.004a96d0
add esp, 0xc
lea eax, [ebp - 0x830]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x828]
push eax
lea eax, [ebp - 0x810]
push eax
push ebx
push edi
mov dword [ebp - 0x828], 0x400
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
inc ebx
test eax, eax
jne 0x43ebc5
mov eax, dword [0x5326d8]
mov ecx, 0x5326d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x814], eax
lea eax, [ebp - 0x810]
mov byte [ebp - 4], 1
test eax, 0xffff0000
jne 0x43eb59
movzx esi, ax
mov ecx, esi
call fcn.00401140
test eax, eax
je 0x43eb82
push esi
push eax
lea ecx, [ebp - 0x814]
call fcn.00401f80
jmp 0x43eb82
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43eb60
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x814]
call fcn.00401be0
mov ecx, dword [ebp - 0x818]
lea eax, [ebp - 0x814]
push eax
mov byte [ebp - 4], 2
call fcn.0041bce0
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x814]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43eac1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x43eac1
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x43ebd4
push edi
call esi
xor edi, edi
mov bl, 1
test edi, edi
je 0x43ebdd
push edi
call esi
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a4ab5
mov esp, ebp
pop ebp
ret
Function at 0x43ec00
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e1751
mov eax, dword fs:[0]
push eax
mov eax, 0x8024
call fcn.004a9460
mov eax, dword [0x532ab0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x8030], edx
mov dword [ebp - 0x802c], 0
mov dword [ebp - 0x8028], 0
mov dword [ebp - 0x8024], 0
mov edx, ecx
push 0
lea ecx, [ebp - 0x801c]
mov dword [ebp - 4], 0
call fcn.0043d0c0
add esp, 4
lea ecx, [ebp - 0x802c]
push 0x2001f
push dword [eax]
push dword [0x535ee4]
call fcn.0041ab70
mov edx, dword [ebp - 0x801c]
test eax, eax
setne bl
add edx, 0xfffffff0
or eax, 0xffffffff
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43ecac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
je 0x43ecbd
mov ebx, dword [ebp - 0x802c]
xor al, al
jmp 0x43edf0
xor eax, eax
push 0x7ffe
push eax
mov word [ebp - 0x8010], ax
lea eax, [ebp - 0x800e]
push eax
mov dword [ebp - 0x8020], 0x4000
call fcn.004a96d0
mov ebx, dword [ebp - 0x802c]
add esp, 0xc
xor edi, edi
lea ecx, [ecx]
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x8020]
push eax
lea eax, [ebp - 0x8010]
push eax
push edi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov esi, eax
inc edi
mov dword [ebp - 0x801c], edi
test esi, esi
je 0x43ed27
cmp esi, 0x103
jne 0x43edd9
mov eax, dword [0x5326d8]
mov ecx, 0x5326d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x8018], eax
lea eax, [ebp - 0x8010]
mov byte [ebp - 4], 1
test eax, 0xffff0000
jne 0x43ee23
movzx edi, ax
mov ecx, edi
call fcn.00401140
test eax, eax
je 0x43ed6d
push edi
push eax
lea ecx, [ebp - 0x8018]
call fcn.00401f80
mov edi, dword [ebp - 0x801c]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x8018]
cmp dword [eax - 0xc], 0
je 0x43ed95
mov ecx, dword [ebp - 0x8030]
lea eax, [ebp - 0x8018]
push eax
call fcn.0041bce0
push 0x8000
lea eax, [ebp - 0x8010]
push 0
push eax
mov dword [ebp - 0x8020], 0x4000
call fcn.004a96d0
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x8018]
add edx, 0xfffffff0
add esp, 0xc
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43edd9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x43ecf0
test ebx, ebx
je 0x43edee
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
mov al, 1
mov byte [ebp - 0x8011], al
test ebx, ebx
je 0x43ee07
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, byte [ebp - 0x8011]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a4ab5
mov esp, ebp
pop ebp
ret
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43ee26
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x8010]
push eax
lea ecx, [ebp - 0x8018]
call fcn.00401be0
jmp 0x43ed73
Function at 0x440b90
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e1c18
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x532ab0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x18], 0
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov edx, eax
shr edx, 8
movzx ecx, dl
movzx ebx, al
mov dword [ebp - 0x14], ecx
cmp eax, 0x80000000
jae 0x440be3
mov edi, eax
shr edi, 0x10
cmp ebx, 6
jb 0x440c08
cmp ecx, 2
jb 0x440c08
mov ecx, esi
call fcn.00440f20
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5326d8]
mov ecx, 0x5326d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
push edi
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push ebx
push str._d._d___d_
push eax
mov dword [ebp - 4], 0
call fcn.00404d60
mov edi, dword [ebp - 0x10]
add edi, 0xfffffff0
add esp, 0x14
mov ecx, edi
call fcn.00401d10
add eax, 0x10
mov dword [esi], eax
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440c68
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x447490
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
test ebx, ebx
jne 0x4474a9
lea eax, [ebx + 0xd]
pop ebx
mov esp, ebp
pop ebp
ret 8
push esi
push edi
xor esi, esi
mov edx, ebx
nop
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4474b5
sub eax, edi
sar eax, 1
lea ecx, [eax + 1]
lea edx, [edx + ecx*2]
lea esi, [esi + ecx*2]
cmp ecx, 1
jne 0x4474b0
mov eax, dword [ebp - 4]
push esi
push ebx
push 7
push 0
push dword [ebp + 8]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x447990
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e29a6
mov eax, dword fs:[0]
push eax
sub esp, 0x424
mov eax, dword [0x532ab0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x41c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x428], ecx
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x418], 0
push 0x60
push 0
mov byte [ebp - 4], 1
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
push esi
call ebx
mov edi, eax
mov dword [ebp - 0x424], edi
test edi, edi
jne 0x447a3c
push 2
push eax
push esi
call ebx
mov edi, eax
mov dword [ebp - 0x424], eax
test edi, edi
jne 0x447a3c
call fcn.004054f0
mov esi, eax
jmp 0x447b2c
push dword [ebp - 0x420]
push dword [ebp - 0x41c]
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
jne 0x447a5f
call fcn.004054f0
jmp 0x447b1f
push esi
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
mov dword [ebp - 0x41c], ebx
test ebx, ebx
jne 0x447a7d
call fcn.004054f0
jmp 0x447b1f
push esi
push edi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, eax
mov dword [ebp - 0x420], esi
lea eax, [esi + 1]
cmp eax, esi
jae 0x447a9e
mov esi, 0x8007000e
jmp 0x447b21
push eax
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 2
call fcn.004499e0
jmp 0x447ac8
mov dword [ebp - 4], 1
cmp dword [ebp - 0x418], 0
jne 0x447adf
mov esi, 0x8007000e
jmp 0x447b21
push esi
push dword [ebp - 0x418]
push esi
push ebx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, eax
test ecx, ecx
jne 0x447aff
call fcn.004054f0
jmp 0x447b1f
mov eax, dword [ebp - 0x418]
push dword [ebp + 0x14]
xor edx, edx
mov word [eax + ecx*2], dx
push dword [ebp - 0x418]
lea ecx, [ebp - 0x42c]
call fcn.00448780
mov esi, eax
test edi, edi
je 0x447b2c
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x414]
cmp dword [ebp - 0x418], eax
je 0x447b50
lea ecx, [ebp - 0x418]
call fcn.00449ac0
jmp 0x447b50
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004a4ab5
mov esp, ebp
pop ebp
ret 0x10
Function at 0x456d20
Capabilities:
Access the windows event log

Disassembly:
mov eax, 0x108
call fcn.004a9460
mov eax, dword [0x532ab0]
xor eax, esp
mov dword [esp + 0x104], eax
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
test eax, eax
je 0x456d85
push eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
test eax, eax
je 0x456d85
mov ecx, dword [esp + 0x10c]
lea eax, [esp + 0x110]
push eax
push ecx
call fcn.004a9b19
add eax, 0x40
push eax
call fcn.004a9951
add esp, 0xc
mov ecx, dword [esp + 0x104]
xor ecx, esp
call fcn.004a4ab5
add esp, 0x108
ret
mov eax, dword [esp + 0x10c]
lea edx, [esp + 0x110]
push edx
push eax
lea ecx, [esp + 0xc]
push 0xff
push ecx
call fcn.004a988c
add esp, 0x10
mov byte [esp + 0x103], 0
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x456e14
call fcn.00456be0
test eax, eax
jle 0x456e14
push esi
push str.OPENSSL
push 0
call dword [sym.imp.ADVAPI32.dll_RegisterEventSourceA]
push 0
mov esi, eax
lea eax, [esp + 8]
push eax
push 0
push 1
push 0
push 0
push 0
push 1
lea edx, [esp + 0x28]
push esi
mov dword [esp + 0x28], edx
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
push esi
call dword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
pop esi
mov ecx, dword [esp + 0x104]
xor ecx, esp
call fcn.004a4ab5
add esp, 0x108
ret
push 0x10
push str.OpenSSL:_FATAL
lea ecx, [esp + 0xc]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [esp + 0x104]
xor ecx, esp
call fcn.004a4ab5
add esp, 0x108
ret

Function at 0x456e70
Capabilities:
Encode data using xor

Disassembly:
push edi
mov edi, dword [esp + 0x10]
xor cl, cl
test edi, edi
jbe 0x456e94
mov eax, dword [esp + 8]
push esi
mov esi, dword [esp + 0x10]
sub esi, eax
mov dl, byte [esi + eax]
xor dl, byte [eax]
inc eax
or cl, dl
sub edi, 1
jne 0x456e86
pop esi
movzx eax, cl
pop edi
ret

Function at 0x4597a0
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 4]
push esi
xor esi, esi
test edx, edx
je 0x4597e7
mov al, byte [edx]
test al, al
je 0x4597e7
push edi
mov edi, 0x100
movsx eax, al
or eax, edi
mov ecx, eax
shr ecx, 2
xor ecx, eax
and ecx, 0xf
add edi, 0x100
rol esi, cl
mov ecx, eax
imul ecx, eax
mov al, byte [edx + 1]
inc edx
xor esi, ecx
test al, al
jne 0x4597b7
mov eax, esi
shr eax, 0x10
pop edi
xor eax, esi
pop esi
ret
xor eax, eax
pop esi
ret
Function at 0x461a20
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x20
call fcn.004a9460
mov eax, dword [0x532ab0]
xor eax, esp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x34]
push ebp
mov ebp, dword [esp + 0x30]
dec ebp
lea edx, [ebp - 0x29]
cmp ebx, edx
push edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
jle 0x461a85
push 0x2d
push str..crypto_rsa_rsa_oaep.c
push 0x6e
push 0x79
push 4
call fcn.00452a00
add esp, 0x14
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.004a4ab5
add esp, 0x20
ret
cmp ebp, 0x29
jge 0x461ab3
push 0x33
push str..crypto_rsa_rsa_oaep.c
push 0x78
push 0x79
push 4
call fcn.00452a00
add esp, 0x14
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.004a4ab5
add esp, 0x20
ret
push esi
mov byte [edi], 0
lea esi, [edi + 1]
push 0
add edi, 0x15
call fcn.0046ebd0
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x50]
push 0
push edi
push eax
push ecx
call fcn.00475fa0
mov edx, ebp
sub edx, ebx
sub edx, 0x29
push edx
lea eax, [edi + 0x14]
push 0
push eax
call fcn.004a96d0
mov edx, dword [esp + 0x34]
mov ecx, edi
sub ecx, ebx
lea eax, [ecx + ebp]
push ebx
mov byte [eax - 0x15], 1
push edx
add eax, 0xffffffec
push eax
call fcn.004a8d60
push 0x14
push esi
call fcn.00458da0
add esp, 0x38
test eax, eax
jle 0x461b45
push 0x48
add ebp, 0xffffffec
push str..crypto_rsa_rsa_oaep.c
push ebp
call fcn.00455a60
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x461b5a
push 0x4b
push str..crypto_rsa_rsa_oaep.c
push 0x41
push 0x79
push 4
call fcn.00452a00
add esp, 0x14
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.004a4ab5
add esp, 0x20
ret
call fcn.0046ebd0
push eax
push 0x14
push esi
push ebp
push ebx
call fcn.004618a0
add esp, 0x14
test eax, eax
jl 0x461b45
test ebp, ebp
jle 0x461b8b
mov ecx, ebx
mov eax, edi
sub ecx, edi
mov edx, ebp
lea ecx, [ecx]
mov bl, byte [ecx + eax]
xor byte [eax], bl
inc eax
sub edx, 1
jne 0x461b80
call fcn.0046ebd0
push eax
push ebp
push edi
lea eax, [esp + 0x24]
push 0x14
push eax
call fcn.004618a0
add esp, 0x14
test eax, eax
jl 0x461b45
lea ecx, [esp + 0x18]
lea edi, [esp + 0x19]
lea ebp, [esp + 0x1a]
lea edx, [esp + 0x1b]
sub ecx, esi
sub edi, esi
sub ebp, esi
sub edx, esi
lea ebx, [esp + 0x1c]
sub ebx, esi
mov eax, esi
mov dword [esp + 0x10], ebx
mov esi, 4
nop
movzx ebx, byte [ecx + eax]
xor byte [eax], bl
movzx ebx, byte [edi + eax]
xor byte [eax + 1], bl
movzx ebx, byte [eax + ebp]
xor byte [eax + 2], bl
movzx ebx, byte [edx + eax]
xor byte [eax + 3], bl
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx + eax]
xor byte [eax + 4], bl
add eax, 5
sub esi, 1
jne 0x461bd0
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00455c00
mov ecx, dword [esp + 0x30]
add esp, 4
lea eax, [esi + 1]
pop esi
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.004a4ab5
add esp, 0x20
ret
Function at 0x462210
Capabilities:
Check for software breakpoints

Disassembly:
push esi
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x18], esi
jne 0x4622dc
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
cmp al, 0x6a
je 0x462231
cmp al, 0x6b
jne 0x4622dc
lea edx, [ecx + 1]
cmp al, 0x6b
jne 0x46229d
add esi, 0xfffffffd
xor ecx, ecx
test esi, esi
jle 0x462251
mov al, byte [edx]
inc edx
cmp al, 0xba
je 0x462251
cmp al, 0xbb
jne 0x46227a
inc ecx
cmp ecx, esi
jl 0x462241
sub esi, ecx
test ecx, ecx
jne 0x4622a0
push 0x8a
push str..crypto_rsa_rsa_x931.c
push 0x8a
push 0x80
push 4
call fcn.00452a00
add esp, 0x14
or eax, 0xffffffff
pop esi
ret
push 0x81
push str..crypto_rsa_rsa_x931.c
push 0x8a
push 0x80
push 4
call fcn.00452a00
add esp, 0x14
or eax, 0xffffffff
pop esi
ret
add esi, 0xfffffffe
cmp byte [esi + edx], 0xcc
je 0x4622c9
push 0x93
push str..crypto_rsa_rsa_x931.c
push 0x8b
push 0x80
push 4
call fcn.00452a00
add esp, 0x14
or eax, 0xffffffff
pop esi
ret
mov eax, dword [esp + 8]
push esi
push edx
push eax
call fcn.004a8d60
add esp, 0xc
mov eax, esi
pop esi
ret
push 0x72
push str..crypto_rsa_rsa_x931.c
push 0x89
push 0x80
push 4
call fcn.00452a00
add esp, 0x14
or eax, 0xffffffff
pop esi
ret
Function at 0x466b10
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x24
call fcn.004a9460
mov eax, dword [0x532ab0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
mov eax, esi
push edi
mov dword [ebp - 0x18], esi
lea ecx, [eax + 1]
jmp 0x466b40
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x466b40
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0
sub eax, ecx
lea edi, [eax + 1]
push edi
push esi
push 8
push 0xfde9
mov dword [ebp - 0x20], 8
call ebx
mov esi, eax
test esi, esi
jg 0x466bb8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3ec
jne 0x466b9a
mov ecx, dword [ebp - 0x18]
push 0
push 0
push edi
push ecx
push 0
push 0xfde9
mov dword [ebp - 0x20], 0
call ebx
mov esi, eax
test esi, esi
jg 0x466bb8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x459
jne 0x466c4a
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
push edx
push eax
jmp 0x466c38
lea eax, [esi + esi]
call fcn.004a9860
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov eax, esp
push esi
push eax
push edi
push ecx
push edx
push 0xfde9
mov dword [ebp - 0x24], eax
call ebx
test eax, eax
je 0x466c4a
mov esi, dword [ebp - 0x1c]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x466be3
push 8
sub eax, edx
lea ecx, [ebp - 0x14]
push ecx
inc eax
push eax
push esi
push 0
push 0xfde9
call ebx
test eax, eax
je 0x466c4a
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x14]
push edx
push eax
call fcn.004a796e
mov esi, eax
add esp, 8
test esi, esi
jne 0x466cee
call fcn.004ab6be
cmp dword [eax], 2
je 0x466c30
call fcn.004ab6be
cmp dword [eax], 9
jne 0x466c42
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
push ecx
push edx
call fcn.004a6bbe
mov esi, eax
add esp, 8
test esi, esi
jne 0x466cee
push 0xa9
push str..crypto_bio_bss_file.c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 1
push 2
call fcn.00452a00
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
push 0x4f2fa4
push eax
push 0x4f2fa0
push ecx
push str.fopen_
push 5
call fcn.004525e0
add esp, 0x2c
call fcn.004ab6be
cmp dword [eax], 2
jne 0x466cc0
push 0xac
push str..crypto_bio_bss_file.c
push 0x80
push 0x6d
push 0x20
call fcn.00452a00
add esp, 0x14
xor eax, eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a4ab5
mov esp, ebp
pop ebp
ret
push 0xae
push str..crypto_bio_bss_file.c
push 2
push 0x6d
push 0x20
call fcn.00452a00
add esp, 0x14
xor eax, eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a4ab5
mov esp, ebp
pop ebp
ret
push 0x531b98
call fcn.00453530
mov edi, eax
add esp, 4
test edi, edi
jne 0x466d20
push esi
call fcn.004a6d96
add esp, 4
xor eax, eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a4ab5
mov esp, ebp
pop ebp
ret
push 0
push edi
call fcn.00452fc0
push esi
push 1
push 0x6a
push edi
call fcn.00453320
add esp, 0x18
mov eax, edi
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a4ab5
mov esp, ebp
pop ebp
ret
Function at 0x46b4d0
Capabilities:
Encode data using base64

Disassembly:
mov ecx, dword [esp + 4]
push ebp
push edi
mov edi, dword [esp + 0x14]
xor ebp, ebp
test edi, edi
jle 0x46b5b3
push esi
mov esi, dword [esp + 0x14]
lea esp, [esp]
cmp edi, 3
movzx edx, byte [esi]
jl 0x46b54e
movzx eax, byte [esi + 1]
shl edx, 8
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 8
or edx, eax
mov eax, edx
shr eax, 0x12
and eax, 0x3f
movzx eax, byte [eax + 0x4f3a18]
mov byte [ecx], al
mov eax, edx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [eax + 0x4f3a18]
mov byte [ecx + 1], al
inc ecx
mov eax, edx
shr eax, 6
and eax, 0x3f
movzx eax, byte [eax + 0x4f3a18]
inc ecx
mov byte [ecx], al
inc ecx
and edx, 0x3f
mov dl, byte [edx + 0x4f3a18]
mov byte [ecx], dl
jmp 0x46b5a0
shl edx, 0x10
cmp edi, 2
jne 0x46b55f
movzx eax, byte [esi + 1]
shl eax, 8
or edx, eax
mov eax, edx
shr eax, 0x12
and eax, 0x3f
movzx eax, byte [eax + 0x4f3a18]
mov byte [ecx], al
mov eax, edx
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [eax + 0x4f3a18]
inc ecx
mov byte [ecx], al
inc ecx
cmp edi, 1
jne 0x46b58d
lea edx, [edi + 0x3c]
jmp 0x46b59a
shr edx, 6
and edx, 0x3f
movzx edx, byte [edx + 0x4f3a18]
mov byte [ecx], dl
inc ecx
mov byte [ecx], 0x3d
sub edi, 3
inc ecx
add ebp, 4
add esi, 3
test edi, edi
jg 0x46b4f0
pop esi
pop edi
mov eax, ebp
mov byte [ecx], 0
pop ebp
ret
Function at 0x4859e0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
push ebx
push esi
push edi
mov edi, dword [esp + 0x18]
cmp ecx, dword [edi + 4]
jge 0x4859f9
mov esi, edi
mov edi, eax
jmp 0x4859fb
mov esi, eax
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x10]
cmp eax, dword [ebx + 8]
jg 0x485a0b
mov eax, ebx
jmp 0x485a15
push eax
push ebx
call fcn.00456300
add esp, 8
test eax, eax
jne 0x485a1d
pop edi
pop esi
pop ebx
ret
xor eax, eax
cmp dword [edi + 4], eax
jle 0x485a39
mov edx, dword [esi]
mov ecx, dword [edi]
mov edx, dword [edx + eax*4]
xor edx, dword [ecx + eax*4]
mov ecx, dword [ebx]
mov dword [ecx + eax*4], edx
inc eax
cmp eax, dword [edi + 4]
jl 0x485a24
cmp eax, dword [esi + 4]
jge 0x485a50
mov edi, edi
mov edx, dword [esi]
mov edx, dword [edx + eax*4]
mov ecx, dword [ebx]
mov dword [ecx + eax*4], edx
inc eax
cmp eax, dword [esi + 4]
jl 0x485a40
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
test eax, eax
jle 0x485a71
mov ecx, dword [ebx]
lea ecx, [ecx + eax*4 - 4]
mov edx, dword [ecx]
sub ecx, 4
test edx, edx
jne 0x485a6e
dec eax
test eax, eax
jg 0x485a60
mov dword [ebx + 4], eax
pop edi
pop esi
mov eax, 1
pop ebx
ret