joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4394c0
Capabilities:
Delete registry key
Delete registry value
Set registry value

Disassembly:
push esi
mov esi, ecx
cmp byte [esi + 0x30], 0
je 0x4394eb
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
lea eax, [esi + 0x31]
push eax
mov eax, dword [esi]
push ecx
push edx
mov edx, dword [eax + 8]
mov ecx, esi
call edx
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
pop esi
ret 8
mov eax, dword [esi]
mov edx, dword [eax + 8]
push edi
call edx
push eax
mov ecx, esi
call fcn.00439010
mov edi, eax
test edi, edi
je 0x439574
push ebx
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x439537
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
mov ecx, esi
call edx
mov ebx, eax
test ebx, ebx
je 0x439573
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
pop ebx
pop edi
pop esi
ret 8
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x439554
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ebx
pop edi
pop esi
ret 8
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
push esi
push 1
push 0
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ebx
pop edi
pop esi
ret 8

Function at 0x439580
Capabilities:
Set registry value

Disassembly:
sub esp, 0x24
mov eax, dword [0x597f54]
xor eax, esp
mov dword [esp + 0x20], eax
push esi
mov esi, ecx
cmp byte [esi + 0x30], 0
push edi
mov edi, dword [esp + 0x30]
je 0x4395e1
mov eax, dword [esp + 0x34]
push eax
lea ecx, [esp + 0xc]
push 0x532d04
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esi + 0x31]
push edx
mov edx, dword [esi]
lea eax, [esp + 0xc]
push eax
mov eax, dword [edx + 8]
push edi
mov ecx, esi
call eax
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
pop edi
pop esi
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.004e2867
add esp, 0x24
ret 8
mov edx, dword [esi]
mov eax, dword [edx + 8]
call eax
push eax
mov ecx, esi
call fcn.00439010
mov esi, eax
test esi, esi
je 0x439610
push 4
lea ecx, [esp + 0x38]
push ecx
push 4
push 0
push edi
push esi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x28]
pop edi
pop esi
xor ecx, esp
call fcn.004e2867
add esp, 0x24
ret 8
Function at 0x439c60
Capabilities:
Encode data using base64

Disassembly:
sub esp, 8
mov eax, dword [ecx + 8]
mov dword [esp], eax
push ebx
mov dword [esp + 8], ecx
push ebp
mov ebp, dword [ecx + 4]
lea ecx, [eax*4]
mov eax, 0xaaaaaaab
mul ecx
mov ecx, edx
shr ecx, 1
add ecx, 8
mov eax, 0xaf286bcb
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
push esi
shr eax, 6
lea ecx, [ecx + eax*2]
push edi
push ecx
xor ebx, ebx
xor esi, esi
call fcn.004b1a5e
mov edi, eax
add esp, 4
test edi, edi
jne 0x439cb9
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
cmp dword [esp + 0x10], ebx
je 0x439e08
mov al, byte [ebp]
movzx ecx, al
mov edx, ecx
shr edx, 2
movzx eax, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [edi + esi], al
add ebx, 1
add ebp, 1
add esi, 1
cmp ebx, 0x4c
jne 0x439cf6
mov byte [edi + esi], 0xd
add esi, 1
xor ebx, ebx
mov byte [edi + esi], 0xa
add esi, 1
sub dword [esp + 0x10], 1
jne 0x439d01
xor al, al
jmp 0x439d07
mov al, byte [ebp]
add ebp, 1
movzx eax, al
and ecx, 3
mov edx, eax
shl ecx, 4
shr edx, 4
or edx, ecx
mov cl, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [edi + esi], cl
add ebx, 1
add esi, 1
cmp ebx, 0x4c
jne 0x439d3b
mov byte [edi + esi], 0xd
add esi, 1
xor ebx, ebx
mov byte [edi + esi], 0xa
add esi, 1
cmp dword [esp + 0x10], 0
je 0x439dcc
sub dword [esp + 0x10], 1
jne 0x439d51
xor cl, cl
jmp 0x439d57
mov cl, byte [ebp]
add ebp, 1
and eax, 0xf
movzx ecx, cl
add eax, eax
mov edx, ecx
add eax, eax
shr edx, 6
or edx, eax
mov al, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [edi + esi], al
add ebx, 1
add esi, 1
cmp ebx, 0x4c
jne 0x439d8c
mov byte [edi + esi], 0xd
add esi, 1
xor ebx, ebx
mov byte [edi + esi], 0xa
add esi, 1
mov eax, dword [esp + 0x10]
add ebx, 1
test eax, eax
je 0x439dee
and ecx, 0x3f
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
sub eax, 1
mov byte [edi + esi], cl
add esi, 1
cmp ebx, 0x4c
mov dword [esp + 0x10], eax
jne 0x439dc2
mov byte [edi + esi], 0xd
add esi, 1
xor ebx, ebx
mov byte [edi + esi], 0xa
add esi, 1
test eax, eax
jne 0x439cc3
jmp 0x439e08
mov byte [edi + esi], 0x3d
add ebx, 1
add esi, 1
cmp ebx, 0x4c
jne 0x439deb
mov byte [edi + esi], 0xd
add esi, 1
xor ebx, ebx
mov byte [edi + esi], 0xa
add esi, 1
add ebx, 1
mov byte [edi + esi], 0x3d
add esi, 1
cmp ebx, 0x4c
jne 0x439e08
mov byte [edi + esi], 0xd
add esi, 1
mov byte [edi + esi], 0xa
add esi, 1
mov ebx, dword [esp + 0x14]
mov byte [edi + esi], 0
mov edx, dword [ebx + 4]
push edx
add esi, 1
call fcn.004b1a59
add esp, 4
mov dword [ebx + 4], edi
pop edi
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], esi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 8
ret
Function at 0x43d170
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x520bd4
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x597f54]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
xor ebx, ebx
push ebx
push edi
push ebp
call fcn.00450c00
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esi + 0x150]
mov dword [esp + 0x24], ebx
mov dword [esi], vtable.CThemeRL.0
call fcn.00401534
mov byte [esp + 0x20], 1
call fcn.004b4151
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x43d1e6
push 0x80004005
call fcn.004010bd
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi + 0x154], eax
mov ecx, dword [esp + 0x30]
push ecx
push edi
push ebp
mov ecx, esi
mov byte [esp + 0x2c], 2
mov dword [esi + 0x158], ebx
mov dword [esi + 0x15c], ebx
mov dword [esi + 0x160], ebx
mov dword [esi + 0x164], ebx
mov dword [esi + 0x168], ebx
mov dword [esi + 0x16c], ebx
mov dword [esi + 0x170], ebx
mov dword [esi + 0x174], ebx
mov dword [esi + 0x178], ebx
mov dword [esi + 0x17c], ebx
mov dword [esi + 0x180], ebx
mov dword [esi + 0x184], ebx
mov dword [esi + 0x188], ebx
mov byte [esi + 0x18c], bl
mov byte [esi + 0x18d], bl
mov byte [esi + 0x18e], 1
mov byte [esi + 0x18f], bl
mov byte [esi + 0x190], bl
mov byte [esi + 0x191], bl
mov byte [esi + 0x192], bl
mov byte [esi + 0x193], bl
call fcn.0043c150
mov eax, esi
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0xc
Function at 0x43e420
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x520d5b
mov eax, dword fs:[0]
push eax
sub esp, 0x168
mov eax, dword [0x597f54]
xor eax, esp
mov dword [esp + 0x164], eax
push esi
push edi
mov eax, dword [0x597f54]
xor eax, esp
push eax
lea eax, [esp + 0x174]
mov dword fs:[0], eax
mov edi, dword [esp + 0x184]
push 0x104
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str.pnxetkey.dat
lea ecx, [esp + 0x70]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x11
lea edx, [esp + 0x70]
push edx
call dword [sym.imp.KERNEL32.dll__lopen]
mov esi, eax
cmp esi, 0xffffffff
jne 0x43e4ac
push 0
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.KERNEL32.dll__lcreat]
mov esi, eax
cmp esi, 0xffffffff
je 0x43e534
push 2
push 0
push esi
call dword [sym.imp.KERNEL32.dll__llseek]
push edi
lea ecx, [esp + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0xc]
call fcn.00454a90
push str.Invalid_password.
lea ecx, [esp + 0x10]
mov dword [esp + 0x180], 0
call fcn.00454ac0
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x14]
call fcn.00454ae0
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0x14]
call fcn.00454ae0
push 0x10
lea eax, [esp + 0x5c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll__lwrite]
push esi
call dword [sym.imp.KERNEL32.dll__lclose]
lea ecx, [esp + 0xc]
mov dword [esp + 0x17c], 0xffffffff
call fcn.00454ab0
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x164]
xor ecx, esp
call fcn.004e2867
add esp, 0x174
ret
Function at 0x43e5c0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x520d9b
mov eax, dword fs:[0]
push eax
sub esp, 0x16c
mov eax, dword [0x597f54]
xor eax, esp
mov dword [esp + 0x168], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x597f54]
xor eax, esp
push eax
lea eax, [esp + 0x180]
mov dword fs:[0], eax
mov eax, dword [esp + 0x190]
mov ebx, dword [esp + 0x194]
push 0x104
lea ecx, [esp + 0x7c]
push ecx
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str.pnxetkey.dat
lea edx, [esp + 0x7c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x20
lea eax, [esp + 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll__lopen]
mov esi, eax
cmp esi, 0xffffffff
je 0x43e748
lea ecx, [esp + 0x18]
call fcn.00454a90
mov edi, dword [sym.imp.KERNEL32.dll__lread]
push 0x10
lea ecx, [esp + 0x68]
push ecx
push esi
mov dword [esp + 0x194], 0
call edi
cmp eax, 0x10
jne 0x43e72d
mov ebp, dword [esp + 0x198]
lea esp, [esp]
push str.Invalid_password.
lea ecx, [esp + 0x1c]
call fcn.00454ac0
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x20]
call fcn.00454b00
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x70]
push edx
lea ecx, [esp + 0x20]
call fcn.00454b00
test ebp, ebp
mov byte [esp + 0x74], 0
lea eax, [esp + 0x64]
jne 0x43e705
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.0044c730
add esp, 8
test eax, eax
je 0x43e71a
push esi
call dword [sym.imp.KERNEL32.dll__lclose]
test ebx, ebx
je 0x43e6ea
lea edx, [esp + 0x64]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x18]
mov dword [esp + 0x188], 0xffffffff
call fcn.00454ab0
mov eax, 1
jmp 0x43e74a
mov edx, dword [esp + 0x19c]
push edx
push eax
call fcn.0043e560
add esp, 8
test eax, eax
jne 0x43e772
push 0x10
lea ecx, [esp + 0x68]
push ecx
push esi
call edi
cmp eax, 0x10
je 0x43e680
push esi
call dword [sym.imp.KERNEL32.dll__lclose]
lea ecx, [esp + 0x18]
mov dword [esp + 0x188], 0xffffffff
call fcn.00454ab0
xor eax, eax
mov ecx, dword [esp + 0x180]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x168]
xor ecx, esp
call fcn.004e2867
add esp, 0x178
ret
push esi
call dword [sym.imp.KERNEL32.dll__lclose]
test ebx, ebx
je 0x43e6ea
lea eax, [esp + 0x64]
push eax
jmp 0x43e6e3
Function at 0x448c20
Capabilities:
Get file size
Read file on windows

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx]
test eax, eax
push ebp
push esi
mov dword [esp + 0xc], ecx
je 0x448c3b
push eax
call fcn.004e388d
add esp, 4
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
test ebp, ebp
mov ecx, dword [esp + 0x24]
mov dword [ebx], 0
mov dword [esi], 0
mov dword [eax], 0
mov byte [ecx], 0
jne 0x448c6d
pop esi
pop ebp
mov al, 1
pop ebx
pop ecx
ret 0x18
push edi
push 0
push 0
push 3
push 0
push 1
push SysReAllocString
push ebp
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x448ca2
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [esi], eax
jne 0x448cac
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
pop ecx
ret 0x18
mov edx, dword [esp + 0x24]
add eax, 1
push eax
mov dword [edx], eax
call fcn.004e43ad
add esp, 4
push 0
lea ecx, [esp + 0x20]
push ecx
mov dword [ebx], eax
mov edx, dword [esi]
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esi]
cmp dword [esp + 0x1c], eax
push edi
jne 0x448c9c
mov ecx, dword [ebx]
mov byte [eax + ecx], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x5c
push ebp
call fcn.004e3860
mov edx, dword [esp + 0x30]
add esp, 8
add eax, 1
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi]
mov edx, dword [ebx]
push eax
push ecx
mov ecx, dword [esp + 0x18]
push edx
call fcn.004485d0
pop edi
mov dword [esi], eax
pop esi
pop ebp
mov al, 1
pop ebx
pop ecx
ret 0x18

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

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
test eax, eax
push edi
je 0x44a0e5
push eax
call fcn.004e388d
add esp, 4
mov eax, dword [esp + 0xc]
test eax, eax
mov edi, dword [esp + 0x14]
mov dword [ebx], 0
mov dword [edi], 0
jne 0x44a104
pop edi
mov al, 1
pop ebx
ret 0xc
push esi
push 0
push 0
push 3
push 0
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x44a139
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [edi], eax
jne 0x44a141
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
pop edi
xor al, al
pop ebx
ret 0xc
add eax, 1
push eax
call fcn.004e43ad
add esp, 4
push 0
lea ecx, [esp + 0x18]
push ecx
mov dword [ebx], eax
mov edx, dword [edi]
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [edi]
cmp dword [esp + 0x14], edi
push esi
jne 0x44a133
mov eax, dword [ebx]
mov byte [edi + eax], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
pop edi
mov al, 1
pop ebx
ret 0xc
Function at 0x44a901
Capabilities:
Write file on windows

Disassembly:
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x16c]
test eax, eax
push edi
jne 0x44a95a
mov edi, dword [esp + 0x10]
push edi
call fcn.0044a090
push eax
call fcn.004748d0
test edi, edi
lea ecx, [esi + 0x164]
jne 0x44a93a
xor eax, eax
push eax
push edi
call fcn.00401452
pop edi
pop esi
mov al, 1
pop ebx
ret 4
mov eax, edi
lea ebx, [eax + 1]
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x44a940
sub eax, ebx
push eax
push edi
call fcn.00401452
pop edi
pop esi
mov al, 1
pop ebx
ret 4
cmp eax, 1
jne 0x44a9ab
mov ebx, dword [esp + 0x10]
push 0x52e76c
push ebx
call fcn.004e3d1b
mov edi, eax
add esp, 8
test edi, edi
jne 0x44a97f
pop edi
pop esi
xor al, al
pop ebx
ret 4
mov eax, dword [esi + 0x154]
push edi
push 1
push eax
mov ecx, esi
call fcn.0044a0b0
push eax
call fcn.004e3bd5
push edi
call fcn.004e39fa
add esp, 0x14
push ebx
lea ecx, [esi + 0x168]
call fcn.00401522
pop edi
pop esi
mov al, 1
pop ebx
ret 4
Function at 0x44ceb0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x521e3b
mov eax, dword fs:[0]
push eax
sub esp, 0x264
mov eax, dword [0x597f54]
xor eax, esp
mov dword [esp + 0x260], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x597f54]
xor eax, esp
push eax
lea eax, [esp + 0x278]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x288]
mov ebx, dword [esp + 0x28c]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x20]
call fcn.00454a90
push 0x20
push ebp
mov dword [esp + 0x288], 0
call dword [sym.imp.KERNEL32.dll__lopen]
mov esi, eax
cmp esi, 0xffffffff
je 0x44cf6f
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push 2
push 0xfffffffffffffff4
push esi
call edi
push 4
lea eax, [esp + 0x20]
push eax
push esi
call dword [sym.imp.KERNEL32.dll__lread]
cmp dword [esp + 0x1c], 0xe79a45c9
jne 0x44cf97
test ebx, ebx
jne 0x44cf8a
push ebx
push ebx
lea ecx, [esp + 0x178]
push ecx
push ebp
mov byte [esp + 0x180], bl
call fcn.0043e5c0
add esp, 0x10
test eax, eax
jne 0x44cf97
push esi
call dword [sym.imp.KERNEL32.dll__lclose]
lea ecx, [esp + 0x20]
mov dword [esp + 0x280], 0xffffffff
call fcn.00454ab0
xor eax, eax
jmp 0x44d045
mov ecx, dword [esp + 0x18]
push ebx
push ebp
call fcn.004499d0
jmp 0x44cf64
push 2
push 0xfffffffffffffffc
push esi
call edi
push 4
lea edx, [esp + 0x18]
push edx
push esi
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 4
jne 0x44d06f
push 0
push 0
push esi
call edi
push 0x104
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str.etrnview.exe
lea ecx, [esp + 0x70]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0
lea edx, [esp + 0x70]
push edx
call dword [sym.imp.KERNEL32.dll__lcreat]
mov edi, eax
cmp edi, 0xffffffff
je 0x44d073
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push eax
push esi
push edi
call fcn.0044ccd0
test eax, eax
je 0x44d073
push esi
mov esi, dword [sym.imp.KERNEL32.dll__lclose]
call esi
push edi
call esi
lea eax, [esp + 0x6c]
mov edx, ebp
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x44d020
lea ecx, [esp + 0x20]
mov dword [esp + 0x280], 0xffffffff
call fcn.00454ab0
mov eax, 1
mov ecx, dword [esp + 0x278]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x260]
xor ecx, esp
call fcn.004e2867
add esp, 0x270
ret 8
mov edi, dword [esp + 0x14]
push esi
mov esi, dword [sym.imp.KERNEL32.dll__lclose]
call esi
cmp edi, 0xffffffff
je 0x44cf6f
push edi
call esi
lea ecx, [esp + 0x6c]
push ecx
call fcn.004e3e28
add esp, 4
jmp 0x44cf6f
Function at 0x44de60
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x522078
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x597f54]
xor eax, esp
push eax
lea eax, [esp + 0x24]
mov dword fs:[0], eax
mov edi, ecx
cmp dword [edi + 4], 0
je 0x44df22
mov eax, dword [edi + 8]
cmp dword [eax - 0xc], 0
je 0x44df22
test eax, eax
je 0x44dec2
push 0xffffffffffffffff
push eax
call fcn.00404d75
mov esi, eax
add esp, 8
test esi, esi
mov dword [esp + 0x10], esi
jne 0x44dec8
push 0x8007000e
call fcn.004010bd
xor esi, esi
mov dword [esp + 0x10], esi
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
mov word [esp + 0x24], 8
mov edi, dword [esp + 0x24]
mov dword [eax], edi
mov edi, dword [esp + 0x28]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x30]
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
mov eax, dword [edx + 0x108]
push ecx
mov dword [esp + 0x40], 0
call eax
test eax, eax
push esi
setge bl
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov al, bl
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x20
ret
xor al, al
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x20
ret
Function at 0x450630
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x40
push esi
push edi
push 0x40
lea eax, [esp + 0xc]
push 0
push eax
call fcn.004e3e60
mov edi, dword [esp + 0x60]
mov esi, edi
add esp, 0xc
xor eax, eax
and esi, 0x3f
jbe 0x450687
push ebx
mov ebx, dword [esp + 0x54]
push ebp
lea esp, [esp]
movzx ebp, byte [ebx]
mov ecx, eax
shr ecx, 2
lea edx, [esp + ecx*4 + 0x10]
mov ecx, eax
and ecx, 3
add ecx, ecx
add ecx, ecx
add ecx, ecx
shl ebp, cl
add eax, 1
add ebx, 1
xor dword [edx], ebp
cmp eax, esi
jb 0x450660
pop ebp
pop ebx
mov edx, edi
shr edx, 2
and edx, 0xf
mov ecx, edi
lea eax, [esp + edx*4 + 8]
and ecx, 3
lea ecx, [ecx*8 + 7]
mov edx, 1
shl edx, cl
xor dword [eax], edx
cmp esi, 0x37
mov esi, dword [esp + 0x4c]
jbe 0x4506cd
lea eax, [esp + 8]
push eax
push esi
call fcn.0044ef90
push 0x40
lea ecx, [esp + 0x14]
push 0
push ecx
call fcn.004e3e60
add esp, 0x14
mov eax, dword [esp + 0x58]
lea edx, [edi*8]
mov dword [esp + 0x40], edx
lea edx, [esp + 8]
lea ecx, [eax*8]
shr edi, 0x1d
push edx
or edi, ecx
push esi
mov dword [esp + 0x4c], edi
call fcn.0044ef90
add esp, 8
pop edi
pop esi
add esp, 0x40
ret
Function at 0x454400
Capabilities:
Encode data using xor

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
mov al, byte [edi]
xor esi, esi
test al, al
je 0x454430
mov edi, edi
movzx eax, al
push eax
call fcn.004e518c
movzx ecx, al
mov al, byte [edi + 1]
add edi, 1
lea edx, [esi + esi]
xor ecx, edx
add esp, 4
test al, al
mov esi, ecx
jne 0x454410
pop edi
mov eax, esi
pop esi
ret 4

Function at 0x4548a0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax]
push ebx
push ebp
push esi
mov esi, dword [ecx]
push edi
mov edi, dword [esp + 0x1c]
mov ebp, 0x10
lea esp, [esp]
xor eax, dword [edi]
mov edx, dword [esp + 0x20]
push edx
push eax
mov ebx, eax
call fcn.00454850
xor eax, esi
add esp, 8
add edi, 4
sub ebp, 1
mov esi, ebx
jne 0x4548c0
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x40]
xor ecx, eax
mov eax, dword [edx + 0x44]
mov edx, dword [esp + 0x14]
pop edi
xor eax, esi
pop esi
mov dword [edx], eax
mov eax, dword [esp + 0x10]
pop ebp
mov dword [eax], ecx
pop ebx
ret

Function at 0x454900
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax]
push ebx
push ebp
push esi
mov esi, dword [ecx]
push edi
mov edi, dword [esp + 0x1c]
add edi, 0x44
mov ebp, 0x10
lea esp, [esp]
xor eax, dword [edi]
mov edx, dword [esp + 0x20]
push edx
push eax
mov ebx, eax
call fcn.00454850
xor eax, esi
add esp, 8
sub edi, 4
sub ebp, 1
mov esi, ebx
jne 0x454920
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 4]
xor ecx, eax
mov eax, dword [edx]
mov edx, dword [esp + 0x14]
pop edi
xor eax, esi
pop esi
mov dword [edx], eax
mov eax, dword [esp + 0x10]
pop ebp
mov dword [eax], ecx
pop ebx
ret
Function at 0x454960
Capabilities:
Encrypt data using blowfish

Disassembly:
sub esp, 0xc
push ebx
mov ebx, dword [esp + 0x18]
push ebp
mov ebp, dword [esp + 0x18]
push esi
mov eax, ebp
push edi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x454974
sub eax, edx
movzx esi, ax
mov edi, 0x592018
xor eax, eax
mov edx, ebx
sub edi, ebx
mov dword [esp + 0x10], 0x12
jmp 0x4549a0
xor ecx, ecx
mov dword [esp + 0x14], 4
lea ebx, [ebx]
movsx ebx, ax
movzx ebx, byte [ebx + ebp]
shl ecx, 8
add eax, 1
or ecx, ebx
cmp ax, si
jl 0x4549c6
xor eax, eax
sub dword [esp + 0x14], 1
jne 0x4549b0
mov ebx, dword [edi + edx]
xor ebx, ecx
mov dword [edx], ebx
add edx, 4
sub dword [esp + 0x10], 1
jne 0x4549a0
mov ebp, dword [esp + 0x28]
mov edx, 0x592060
sub edx, ebp
mov eax, ebp
mov esi, 4
mov ecx, 0x100
mov edi, dword [edx + eax]
mov dword [eax], edi
add eax, 4
sub ecx, 1
jne 0x4549f5
sub esi, 1
jne 0x4549f0
mov ebx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov esi, ebx
lea edi, [ecx + 9]
lea ebx, [ebx]
push ebp
push ebx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.004548a0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov dword [esi], edx
mov dword [esi + 4], eax
add esp, 0x10
add esi, 8
sub edi, 1
jne 0x454a20
mov esi, ebp
mov dword [esp + 0x18], 4
mov edi, 0x80
push ebp
push ebx
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.004548a0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esi], eax
mov dword [esi + 4], ecx
add esp, 0x10
add esi, 8
sub edi, 1
jne 0x454a58
sub dword [esp + 0x18], 1
jne 0x454a53
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret