joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40ebe0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44af61
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x463074]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov eax, dword [ecx]
lea edx, [ebp - 0x58]
push edx
mov dword [ebp - 4], 0
mov dword [ebp - 0x5c], 1
call dword [eax + 0x1c]
mov ecx, 3
mov dword [ebp - 4], 1
cmp dword [ebp - 0x48], ecx
lea eax, [ebp - 0x58]
mov dword [ebp - 0x18], 0
cmovb ecx, dword [ebp - 0x48]
cmp dword [ebp - 0x44], 0x10
push ecx
cmovae eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x28]
push eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00403200
mov dword [ebp - 0x5c], 3
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0040fac0
add esp, 8
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 4
cmp edx, 0x10
jb 0x40eccb
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ecc1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ede1
push edx
push ecx
call fcn.0042730e
add esp, 8
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
mov dword [ebp - 0x18], 0
cmovae eax, dword [ebp - 0x40]
push eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
je case.default.0x40ecfc
add eax, 0xfffffffe
cmp eax, 4
ja case.default.0x40ecfc
jmp dword [eax*4 + 0x40edf0]
push 8
push str.harddisk
jmp 0x40ed2e
push 9
push str.removable
jmp 0x40ed2e
push 5
push str.cdrom
jmp 0x40ed2e
push 7
push str.ramdisk
jmp 0x40ed2e
push 0xa
push str.remotedisk
mov ecx, esi
call fcn.00402cb0
cmp dword [esi + 0x10], 0
jne 0x40ed49
push 7
push str.unknown
mov ecx, esi
call fcn.00402cb0
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x40ed7f
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40ed75
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ede6
push edx
push ecx
call fcn.0042730e
add esp, 8
mov edx, dword [ebp - 0x44]
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
cmp edx, 0x10
jb 0x40edc3
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40edb9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40edeb
push edx
push ecx
call fcn.0042730e
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042784a
mov esp, ebp
pop ebp
ret 4
call fcn.0042c719
call fcn.0042c719
call fcn.0042c719
or al, 0xed
inc eax
add byte [ebx], al
in eax, dx
inc eax
add byte [edi], ah
in eax, dx
inc eax
add byte [0x1e0040ed], dl
in eax, dx
inc eax
add ah, cl
int3
Function at 0x40f1c0
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44abb0
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x463074]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ecx]
lea edx, [ebp - 0x58]
push edx
call dword [eax + 0x1c]
mov ecx, 3
mov dword [ebp - 4], 0
cmp dword [ebp - 0x48], ecx
lea eax, [ebp - 0x58]
mov dword [ebp - 0x30], 0
cmovb ecx, dword [ebp - 0x48]
cmp dword [ebp - 0x44], 0x10
push ecx
cmovae eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x40]
push eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.00403200
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0040fac0
mov edx, dword [ebp - 0x2c]
add esp, 8
cmp edx, 0x10
jb 0x40f275
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f26b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f34d
push edx
push ecx
call fcn.0042730e
add esp, 8
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x78]
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x40f2a7
xorps xmm0, xmm0
movlpd qword [ebp - 0x60], xmm0
mov esi, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x60]
jmp 0x40f2b4
mov edi, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
shrd edi, esi, 0x14
shr esi, 0x14
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x40f2ea
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40f2e0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f352
push edx
push ecx
call fcn.0042730e
add esp, 8
mov edx, dword [ebp - 0x44]
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
cmp edx, 0x10
jb 0x40f32e
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f324
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f357
push edx
push ecx
call fcn.0042730e
add esp, 8
mov eax, edi
mov edx, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042784a
mov esp, ebp
pop ebp
ret
call fcn.0042c719
call fcn.0042c719
call fcn.0042c719
int3
Function at 0x40f3f0
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44aff6
mov eax, dword fs:[0]
push eax
sub esp, 0x9c4
mov eax, dword [0x463074]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 3
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x40f456
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
test eax, eax
jns 0x40f45d
call dword [sym.imp.ole32.dll_CoUninitialize]
xor al, al
jmp 0x40f5f3
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.00429c60
add esp, 0xc
lea eax, [ebp - 0x9d0]
push eax
push 0x202
call sub.WS2_32.dll_WSAStartup
test eax, eax
je 0x40f519
push eax
lea eax, [ebp - 0x810]
push 0x44e9d0
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov dword [ebp - 0x818], 0
xor eax, eax
mov dword [ebp - 0x814], 7
lea ecx, [ebp - 0x810]
mov word [ebp - 0x828], ax
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40f4d0
sub ecx, edx
lea eax, [ebp - 0x810]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x828]
call fcn.004032f0
mov eax, dword [esi]
lea ecx, [ebp - 0x828]
push ecx
mov ecx, esi
mov dword [ebp - 4], 0
call dword [eax + 0x24]
lea ecx, [ebp - 0x828]
call fcn.00402090
xor al, al
jmp 0x40f5f3
mov eax, dword [ebp - 0x9d0]
cmp al, 2
jne 0x40f52e
shr eax, 8
cmp al, 2
je 0x40f5d2
push str.Could_not_find_a_usable_version_of_Winsock.dll_n
call fcn.00410130
mov ecx, dword [ebp - 0x9d0]
xor eax, eax
cmp cl, 2
setne al
push eax
movzx eax, cx
shr eax, 8
push eax
lea eax, [ebp - 0x810]
push str._WinSock_DLL
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
mov dword [ebp - 0x830], 0
xor eax, eax
mov dword [ebp - 0x82c], 7
lea ecx, [ebp - 0x810]
mov word [ebp - 0x840], ax
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40f590
sub ecx, edx
lea eax, [ebp - 0x810]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x840]
call fcn.004032f0
mov eax, dword [esi]
lea ecx, [ebp - 0x840]
push ecx
mov ecx, esi
mov dword [ebp - 4], 1
call dword [eax + 0x24]
lea ecx, [ebp - 0x840]
call fcn.00402090
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0x8000
call esi
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
push 1
call esi
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriorityBoost]
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042784a
mov esp, ebp
pop ebp
ret
Function at 0x40fb80
Capabilities:
Create directory
Get common file path
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x418
mov eax, dword [0x463074]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x20c]
push esi
push edi
push 0x208
push 0
push eax
mov dword [ebp - 0x418], 0
call fcn.00429c60
add esp, 0xc
lea eax, [ebp - 0x20c]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x20c]
push str.iotsdk
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp - 0x20c]
push 0
push eax
call esi
push str.exception
lea eax, [ebp - 0x20c]
push eax
call edi
push 0
lea eax, [ebp - 0x20c]
push eax
call esi
push 0x208
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.00429c60
lea eax, [ebp - 0x414]
push str._sdk_exception
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call edi
push 0
push 0x80
push 2
push 0
push 2
push 0xc0000000
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
test esi, esi
je 0x40fcb8
cmp esi, 0xffffffff
je 0x40fcb8
cmp dword [ebx + 0x14], 8
mov ecx, ebx
jb 0x40fc7a
mov ecx, dword [ebx]
mov ebx, ecx
push 0
lea eax, [ebp - 0x418]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, eax
push eax
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042784a
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042784a
mov esp, ebp
pop ebp
ret 4
Function at 0x410210
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
push 0x44
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.00429c60
mov eax, dword [ebp + 8]
add esp, 0xc
xorps xmm0, xmm0
movups xmmword [ebp - 0x10], xmm0
cmp dword [eax + 0x14], 0x10
jb 0x410238
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x54]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x410274
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or eax, 0xffffffff
or edx, eax
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
xor edx, edx
mov esp, ebp
pop ebp
ret

Function at 0x410280
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 0x10
jb 0x41028e
mov eax, dword [eax]
push esi
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
cmp eax, 0xb7
jne 0x4102b5
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
pop esi
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
pop esi
pop ebp
ret

Function at 0x4102c0
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 0x10
jb 0x4102ce
mov eax, dword [eax]
push esi
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4102f8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x65
call dword [sym.imp.KERNEL32.dll_ExitProcess]
pop esi
pop ebp
ret

Function at 0x441b87
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00441847

Function at 0x446eb0
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00446d2f
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
nop
push 4
nop
nop
nop
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
je 0x433072
nop
nop
mov ebx, 0x40de38
nop
nop
nop
nop
mov ecx, ebx
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
div edi
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
mov esi, 0x2a820cba
nop
nop
nop
xor dword [eax], esi
nop
nop
add eax, edi
nop
nop
nop
nop
nop
loop 0x433060
nop
nop
nop
mov eax, section..data
nop
nop
cmp eax, 0
nop
nop
nop
nop
je 0x4330d2
nop
nop
mov ebx, 0x4304d8
nop
nop
nop
nop
nop
mov ecx, ebx
nop
sub ecx, eax
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
div edi
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x4f8623ef
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
nop
loop 0x4330c0
nop
nop
nop
nop
popal
nop
jmp 0x431219
Function at 0x404514
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
cmp eax, 1
jne 0x404550
add esp, 0xfffffff4
push dword [edx + 0x4c]
call sym._getc
cmp eax, 0xffffffff
jne 0x404540
xor eax, eax
jmp 0x40455c
mov byte [ebx], al
mov eax, 1
jmp 0x40455c
push dword [edx + 0x4c]
push eax
push 1
push ebx
call sym._fread
mov ebx, dword [ebp - 0x18]
leave
ret

Function at 0x404564
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push esi
push ebx
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
push dword [ebx + 0x4c]
push esi
push 1
push dword [ebp + 0xc]
call sym._fwrite
mov edx, dword [ebx + 0x40]
test edx, edx
jl 0x40458c
add edx, esi
mov dword [ebx + 0x40], edx
lea esp, [ebp - 0x18]
pop ebx
pop esi
leave
ret

Function at 0x40465c
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov eax, dword [edx]
shr eax, 1
xor al, 1
test al, 1
jne 0x404685
push dword [edx + 0x4c]
push ecx
push 1
push ebx
call sym._fwrite
jmp 0x404690
add esp, 0xfffffffc
push ecx
push ebx
push edx
call sym._xsputn__9streambufPCci
mov ebx, dword [ebp - 0x18]
leave
ret

Function at 0x4074f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [ebp + 8]
add esp, 0xfffffffc
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [eax + 0x38]
call sym._read
leave
ret

Function at 0x40abc4
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x40abe9
mov dword [0x413164], eax
add esp, 0xfffffff8
push sym._eh_context_free
push eax
call sym.___mingwthr_key_dtor
jmp 0x40abee
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x40ac04
mov dword [sym._eh_context_initialize], 0x40ace8
jmp 0x40ac0e
mov dword [sym._eh_context_initialize], 0x40ac9c
leave
ret

Function at 0x40ace8
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
add esp, 0xfffffff4
push dword [0x413164]
call sub.KERNEL32.dll_TlsGetValue
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x40ad35
call sym._new_eh_context
mov ebx, eax
add esp, 0xfffffff8
push ebx
push dword [0x413164]
call sub.KERNEL32.dll_TlsSetValue
add esp, 8
test eax, eax
jne 0x40ad2a
call sub.KERNEL32.dll_GetLastError
jmp 0x40ad2c
xor eax, eax
test eax, eax
je 0x40ad35
call sym.___terminate
mov eax, ebx
mov ebx, dword [ebp - 0x18]
leave
ret
Function at 0x40ae60
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x65c
push edi
push esi
push ebx
mov eax, dword [sym._eh_context_initialize]
call eax
mov edx, eax
lea eax, [edx + 4]
mov dword [ebp - 0x644], eax
mov eax, dword [edx + 4]
lea ecx, [eax + 4]
mov dword [ebp - 0x648], ecx
cmp dword [eax + 4], 0
je 0x40af1d
lea ebx, [ebp - 0x640]
mov dword [ebp - 0x64c], ebx
mov dword [ebx + 4], 0
mov eax, dword [edx + 4]
mov dword [ebp - 0x640], eax
lea eax, [ebp - 0x638]
mov dword [ebp - 0x638], ebp
mov dword [eax + 4], 0x40aec8
mov dword [eax + 8], esp
jmp 0x40aeca
mov edx, dword [ebp - 0x64c]
mov eax, dword [ebp - 0x644]
mov dword [eax], edx
mov ecx, dword [ebp - 0x648]
cmp dword [ecx], 0
je 0x40af06
nop
mov ebx, dword [ebp - 0x648]
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax]
mov dword [ebx], eax
add esp, 0xfffffff8
push 2
push edx
call ecx
add esp, 0x10
cmp dword [ebx], 0
jne 0x40aee4
mov edx, dword [ebp - 0x64c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x644]
mov dword [ecx], eax
jmp 0x40af1d
mov ebx, dword [ebp - 0x644]
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [ebx], eax
call sym.___sjthrow
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec ecx
outsb dx, byte [esi]
je 0x40afad
jb 0x40afb8
popal
insb byte es:[edi], dx
and byte [ebx + 0x6f], al
insd dword es:[edi], dx
jo 0x40afbb
insb byte es:[edi], dx
jb 0x40af76
inc edx
jne sym.___get_eh_table_version
cmp ah, byte [eax]
dec esi
outsd dx, dword [esi]
and byte [edx + 0x75], dh
outsb dx, byte [esi]
je sym.___get_eh_table_language
insd dword es:[edi], dx
and byte gs:[ecx + edi*2 + 0x70], dh
and byte gs:[ebp + 0x61], ch
je 0x40afd2
push 0x2e7265
in eax, 0x83
in al, dx
or al, ch
xor esp, edi
invalid
mov al, 0x41
inc ecx
add byte [ebx - 0x17afbf40], al
mov byte [0x31000043], al
add byte [eax], al
xor eax, eax
ror cl, 0xc3
mov esi, esi
leave
ret
movsx eax, word [eax + 4]
leave
ret
Function at 0x10001f50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ebx, ecx
xor eax, eax
nop dword [eax + eax]
mov edx, eax
mov ecx, eax
sar edx, 5
or ecx, 0x1f
cmp ecx, 0x68
lea edi, [ebx + edx*4]
mov ecx, 9
mov esi, 0x20
cmovge esi, ecx
xor edx, edx
bts edx, esi
xor ecx, ecx
cmp esi, 0x20
cmovae ecx, edx
add eax, 0x20
xor edx, ecx
dec edx
or dword [edi], edx
cmp eax, 0x68
jle 0x10001f60
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10003910
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, edx
not ebx
mov esi, ecx
mov eax, ebx
test edi, edi
je 0x10003971
mov cl, byte [esi]
lea esi, [esi + 1]
dec edi
cmp cl, 0x23
jne 0x10003954
cmp edi, 2
jb 0x10003954
cmp byte [esi], cl
jne 0x10003954
cmp byte [esi + 1], cl
jne 0x10003954
mov eax, ebx
movzx ecx, cl
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x10049288]
jmp 0x10003925
movzx edx, al
movzx ecx, cl
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x10049288]
test edi, edi
jne 0x10003925
pop edi
pop esi
not eax
pop ebx
pop ebp
ret
mov cl, byte [esi]
inc esi
test cl, cl
je 0x100039a0
cmp cl, 0x23
jne 0x10003987
cmp byte [esi], cl
jne 0x10003987
cmp byte [esi + 1], cl
cmove eax, ebx
movzx edx, al
movzx ecx, cl
xor edx, ecx
shr eax, 8
mov cl, byte [esi]
inc esi
xor eax, dword [edx*4 + 0x10049288]
test cl, cl
jne 0x10003978
pop edi
pop esi
not eax
pop ebx
pop ebp
ret

Function at 0x10003ab0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
test ebx, ebx
je 0x10003ac4
mov dword [ebx], 0
mov edx, 0x10048f14
call fcn.100039b0
mov esi, eax
test esi, esi
je 0x10003bb2
mov edi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
push esi
call edi
add esp, 4
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
je 0x10003ba8
push 2
push 0
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
test eax, eax
jne 0x10003ba8
push esi
call edi
mov edi, eax
add esp, 4
mov dword [ebp + 8], edi
cmp edi, 0xffffffff
je 0x10003ba8
push 0
push dword [ebp - 4]
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
test eax, eax
jne 0x10003ba8
mov eax, dword [0x100528f0]
test eax, eax
je 0x10003b3c
inc dword [eax + 0xb0]
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
je 0x10003ba8
push esi
push dword [ebp + 8]
push 1
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
push esi
cmp eax, dword [ebp + 8]
je 0x10003b8d
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov eax, dword [0x100528f0]
add esp, 4
test eax, eax
je 0x10003b7a
dec dword [eax + 0xb0]
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
test ebx, ebx
je 0x10003b9f
mov eax, dword [ebp + 8]
mov dword [ebx], eax
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1000a610
Capabilities:
Hash data with crc32

Disassembly:
push ebx
mov bl, byte [ecx]
or eax, 0xffffffff
push esi
lea esi, [ecx + 1]
or ecx, 0xffffffff
push edi
test bl, bl
je 0x1000a64f
cmp bl, 0x23
jne 0x1000a631
cmp byte [esi], bl
jne 0x1000a631
cmp byte [esi + 1], bl
cmove eax, ecx
movzx edx, al
movzx ecx, bl
mov bl, byte [esi]
xor edx, ecx
shr eax, 8
inc esi
mov ecx, 0xffffffff
xor eax, dword [edx*4 + 0x10049288]
test bl, bl
jne 0x1000a622
mov ecx, dword [0x100528f0]
not eax
mov esi, dword [ecx + 0x3e00]
mov edi, dword [ecx + 0x3e08]
lea ebx, [edi + esi*8]
test esi, esi
je 0x1000a68e
nop word [eax + eax]
mov edx, esi
shr edx, 1
cmp dword [edi + edx*8], eax
lea ecx, [edi + edx*8]
jae 0x1000a688
lea edi, [ecx + 8]
or ecx, 0xffffffff
sub ecx, edx
add esi, ecx
jmp 0x1000a68a
mov esi, edx
test esi, esi
jne 0x1000a670
cmp edi, ebx
je 0x1000a69d
cmp dword [edi], eax
jne 0x1000a69d
mov eax, dword [edi + 4]
pop edi
pop esi
pop ebx
ret
pop edi
pop esi
xor eax, eax
pop ebx
ret