joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10003750
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10029a12
mov eax, dword fs:[0]
push eax
sub esp, 0x82c
mov eax, dword [0x1003b06c]
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 edi, ecx
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x830], eax
mov eax, dword [ebp + 0x10]
push 0x800
mov dword [ebp - 0x82c], eax
lea eax, [ebp - 0x810]
push 0
push eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x838], esi
mov dword [ebp - 0x834], 0
call fcn.10015870
lea eax, [edi + 0x8c]
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x100037d3
mov eax, dword [eax]
push eax
push 0x400
lea eax, [ebp - 0x810]
push eax
push ebx
push dword [ebp - 0x82c]
push dword [ebp - 0x830]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x10003819
mov eax, dword [esi]
jmp 0x1000381b
mov eax, esi
xor ecx, ecx
mov word [eax], cx
cmp word [ebp - 0x810], cx
je 0x10003841
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10003832
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x810]
mov ecx, esi
push eax
call fcn.10002ba0
cmp dword [esi + 0x14], 8
mov dword [ebp - 4], 0
mov dword [ebp - 0x834], 1
jb 0x1000386b
mov eax, dword [esi]
jmp 0x1000386d
mov eax, esi
mov ecx, ebx
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10003896
test dx, dx
je 0x10003892
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10003896
add eax, 4
add ecx, 4
test dx, dx
jne 0x10003870
xor eax, eax
jmp 0x1000389b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10003902
cmp byte [edi + 5], 0
lea eax, [ebp - 0x828]
push ebx
push dword [ebp - 0x82c]
mov ecx, edi
push dword [ebp - 0x830]
push eax
je 0x100038d7
call fcn.10003400
push eax
mov ecx, esi
call fcn.10002610
mov ecx, dword [ebp - 0x814]
cmp ecx, 8
jb 0x10003902
inc ecx
push ecx
jmp 0x100038f1
call fcn.10003560
push eax
mov ecx, esi
call fcn.10002610
mov eax, dword [ebp - 0x814]
cmp eax, 8
jb 0x10003902
inc eax
push eax
push dword [ebp - 0x828]
lea ecx, [ebp - 0x828]
call fcn.10002ca0
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 - 0x10]
xor ecx, ebp
call fcn.10012ad9
mov esp, ebp
pop ebp
ret 0x10
Function at 0x10004b70
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa44
mov eax, dword [0x1003b06c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 0x208
lea eax, [ebp - 0x20c]
mov esi, ecx
push 0
push eax
call fcn.10015870
lea eax, [esi + 0x2c]
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x10004ba7
mov eax, dword [eax]
push str.Config
push eax
lea eax, [ebp - 0x20c]
push 0x1002b4d4
push eax
call fcn.10002dc0
add esp, 0x10
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x10004be1
lea eax, [ebp - 0x20c]
push eax
call fcn.1000a700
add esp, 4
push 0x208
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.10015870
push str.UseVestige.ini
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x414]
push str._s_s
push eax
call fcn.10002dc0
add esp, 0x1c
cmp word [ebp - 0x414], 0
jne 0x10004c22
xor ecx, ecx
jmp 0x10004c3f
lea ecx, [ebp - 0x414]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10004c30
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x414]
push eax
lea ecx, [esi + 0x8c]
call fcn.10002ba0
push 0x208
lea eax, [ebp - 0x61c]
push 0
push eax
call fcn.10015870
push str.UseCache.ini
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x61c]
push str._s_s
push eax
call fcn.10002dc0
add esp, 0x1c
cmp word [ebp - 0x61c], 0
jne 0x10004c93
xor ecx, ecx
jmp 0x10004caf
lea ecx, [ebp - 0x61c]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10004ca0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x61c]
push eax
lea ecx, [esi + 0xa4]
call fcn.10002ba0
push 0x208
lea eax, [ebp - 0x824]
push 0
push eax
call fcn.10015870
lea eax, [ebp - 0xa44]
push str.ShxlPath
push eax
call fcn.1000aeb0
add esp, 0x14
cmp dword [eax + 0x14], 8
jb 0x10004cf1
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x824]
push 0x1002b530
push eax
call fcn.10002dc0
mov eax, dword [ebp - 0xa30]
add esp, 0xc
cmp eax, 8
jb 0x10004d24
inc eax
lea ecx, [ebp - 0xa44]
push eax
push dword [ebp - 0xa44]
call fcn.10002ca0
lea eax, [ebp - 0x824]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x10004d44
lea eax, [ebp - 0x824]
push eax
call fcn.1000a700
add esp, 4
push 0x208
lea eax, [ebp - 0xa2c]
push 0
push eax
call fcn.10015870
push str.UseCache.ini
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0xa2c]
push str._s_s
push eax
call fcn.10002dc0
add esp, 0x1c
cmp word [ebp - 0xa2c], 0
jne 0x10004d85
xor ecx, ecx
jmp 0x10004d9f
lea ecx, [ebp - 0xa2c]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10004d90
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0xa2c]
push eax
lea ecx, [esi + 0xbc]
call fcn.10002ba0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.10012ad9
mov esp, ebp
pop ebp
ret
Function at 0x1000a0f0
Capabilities:
Check if file exists
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1014
call fcn.10012b10
mov eax, dword [0x1003b06c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
push 0
mov dword [ebp - 0x1008], eax
call fcn.10019f3f
mov dword [ebp - 0x1014], eax
lea eax, [ebp - 0x1014]
push eax
mov dword [ebp - 0x1010], edx
call fcn.1001a663
add esp, 8
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push esi
push eax
push dword [edi]
mov eax, dword [edi + 0x10]
push dword [edi + 4]
inc eax
push dword [edi + 8]
push dword [edi + 0xc]
push eax
mov eax, dword [edi + 0x14]
add eax, 0x76c
push eax
lea eax, [ebp - 0x1004]
push str.__d__d__d__d__d__d___d_:_s
push eax
call fcn.10009f00
add esp, 0x28
call fcn.100115f0
test al, al
je 0x1000a188
push ebp
push ebp
pop esi
push ecx
pop edi
push edi
push eax
push edi
pop ebx
pop ebx
push esi
push ebp
push esi
push edx
push ebx
push esp
push dword [ebp - 0x1008]
xor ebx, ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
mov ecx, 1
cmovne ebx, ecx
mov dword [ebp - 0x100c], ebx
call fcn.100117b0
test al, al
je 0x1000a1d1
push eax
push eax
pop edi
push eax
pop ebp
pop ebx
pop ebx
pop edx
pop ecx
pop edi
pop edx
push eax
pop eax
push ecx
push esp
pop ebp
push ebp
pop esi
pop ecx
push esp
pop ebp
pop esp
push esi
push ebx
push edx
pop edi
push edx
push esi
mov ebx, dword [ebp - 0x100c]
push 0x1002b8b0
push dword [ebp - 0x1008]
call fcn.1001a26e
mov esi, eax
add esp, 8
test esi, esi
je 0x1000a293
test ebx, ebx
jne 0x1000a210
push esi
push 2
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0xfeff
push 1
push eax
call fcn.10016e4b
add esp, 0x10
call fcn.10011cf0
test al, al
je 0x1000a229
push esi
push edi
push ebx
pop eax
push edi
pop ebp
push esp
push eax
pop ecx
pop edi
push ecx
pop edx
push esp
pop ebx
push esp
pop edx
lea ecx, [ebp - 0x1004]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000a232
sub ecx, edx
sar ecx, 1
push esi
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x1004]
push 1
push eax
call fcn.10016e4b
push esi
push 2
lea eax, [ebp - 0x1008]
mov dword [ebp - 0x1008], 0xd
push 1
push eax
call fcn.10016e4b
push esi
push 2
lea eax, [ebp - 0x1008]
mov dword [ebp - 0x1008], 0xa
push 1
push eax
call fcn.10016e4b
push esi
call fcn.10016b93
add esp, 0x34
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10012ad9
mov esp, ebp
pop ebp
ret
Function at 0x1000a700
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, esi
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x1000a711
sub edi, ecx
mov edx, 2
sar edi, 1
xor ecx, ecx
mov dword [ebp - 8], edi
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10012b3d
add esp, 4
mov dword [ebp + 8], eax
sub eax, esi
movzx ecx, word [esi]
lea esi, [esi + 2]
mov word [eax + esi - 2], cx
test cx, cx
jne 0x1000a744
call fcn.100117b0
test al, al
je 0x1000a77c
push eax
push eax
pop edi
push eax
pop ebp
pop ebx
pop ebx
pop edx
pop ecx
pop edi
pop edx
push eax
pop eax
push ecx
push esp
pop ebp
push ebp
pop esi
pop ecx
push esp
pop ebp
pop esp
push esi
push ebx
push edx
pop edi
push edx
push esi
mov edi, dword [ebp - 8]
xor ebx, ebx
mov dword [ebp - 4], ebx
lea esi, [ebx + 1]
test edi, edi
js 0x1000a830
mov esi, dword [ebp + 8]
nop
cmp word [esi + ebx*2], 0x5c
jne 0x1000a81f
call fcn.100119e0
test al, al
je 0x1000a7c7
push ebp
push ecx
push edi
pop esi
pop ecx
pop eax
pop esp
push ebx
push edi
pop ecx
push ecx
pop esp
push ecx
push eax
push ebx
push edi
push ebp
push esp
push eax
push ebx
pop esp
push eax
pop ebx
pop esi
pop eax
push ebp
push esi
push ecx
push edx
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 8]
call fcn.10011dd0
test al, al
je 0x1000a7f4
push esp
pop edx
push ebx
pop ebp
pop eax
pop ebp
push ecx
pop eax
push eax
push ecx
pop ebx
push edx
pop esi
push edx
pop esp
pop esp
push ebp
pop edx
pop ecx
push ebp
push eax
push edi
push esp
pop edi
push esi
push ecx
pop edi
mov edi, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 8]
movzx eax, word [esi + ebx*2]
mov dword [ebp - 4], eax
xor eax, eax
push esi
mov word [esi + ebx*2], ax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1000a818
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x1000a844
mov eax, dword [ebp - 4]
mov word [esi + ebx*2], ax
inc ebx
mov dword [ebp - 4], ebx
cmp ebx, edi
jle 0x1000a790
mov esi, 1
push dword [ebp + 8]
call fcn.10012ad4
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 8]
xor esi, esi
call fcn.10012ad4
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1000ad50
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x1003b06c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x1003bfa8], 0
push ebx
push esi
push edi
je 0x1000ad9f
call fcn.10011d60
test al, al
je 0x1000ae99
pop ebx
push esi
push esp
pop eax
pop ebp
pop eax
push ebx
push ebx
push ebp
pop esi
pop esi
push ecx
pop ecx
push edi
pop esp
push edx
push edi
pop edx
pop edx
pop esp
push edx
push edx
pop ebp
pop edx
push esp
pop edx
pop edi
pop esp
push edi
pop esp
jmp 0x1000ae99
call fcn.10011900
test al, al
je 0x1000adbf
pop ebx
pop eax
pop ecx
pop ebp
push edi
push eax
push edx
pop esp
push ebx
push edi
push esp
pop edi
pop ecx
push esp
pop esp
push eax
push ebx
pop ebp
push ebx
pop edx
pop eax
push ecx
push esp
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.10015870
add esp, 0xc
lea eax, [ebp - 0x20c]
push 1
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x1000ae2f
lea eax, [ebp - 0x20c]
push eax
call fcn.1001a10a
lea eax, [ebp - 0x20c]
push str.config_systemprofile
push eax
call fcn.10015b1d
add esp, 0xc
test eax, eax
jne 0x1000ae28
lea eax, [ebp - 0x20c]
push str.documents_and_settingslocalservice
push eax
call fcn.10015b1d
add esp, 8
test eax, eax
je 0x1000ae2f
mov byte [0x1003bfa8], 1
call fcn.10011510
test al, al
je 0x1000ae52
pop esi
push edx
pop esp
pop ebx
pop esp
pop ebx
push ebp
push eax
push edx
pop edx
pop esi
pop ecx
pop ecx
pop edx
pop eax
push edi
pop ecx
push ecx
push ebx
push eax
push esp
push edi
push ebp
pop esp
pop esi
push ebp
call fcn.10011f20
test al, al
je 0x1000ae78
push edx
push ecx
pop ecx
pop esp
push ecx
push ebx
push esp
pop esp
push esp
push edi
pop edx
push ebx
pop edi
push eax
pop edi
pop esp
pop eax
pop esi
push ecx
push ecx
pop esp
pop edi
pop ebp
push edx
pop esp
push ecx
push ebx
push ebp
pop edx
call fcn.100117b0
test al, al
je 0x1000ae99
push ebp
push esp
push ebx
push edi
push ecx
pop ecx
pop ebp
pop edx
push ebp
push edi
push edx
pop edi
pop esp
push edx
pop ecx
pop eax
push ebp
pop esp
pop ebx
pop ebx
pop esi
pop esi
push eax
pop esi
mov ecx, dword [ebp - 4]
mov al, byte [0x1003bfa8]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.10012ad9
mov esp, ebp
pop ebp
ret
Function at 0x1000b4b0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
xor bl, bl
push edi
mov dword [ebp - 4], ebx
call fcn.1000ad50
mov esi, 1
test al, al
je 0x1000b565
call fcn.10011c80
test al, al
je 0x1000b4ed
push ebp
push ebx
pop ebx
pop ebx
push ebx
push edi
pop eax
push esp
push edi
push esp
push ebx
push esp
pop eax
pop edi
push ebp
pop edi
pop esp
mov ebx, dword [ebp - 4]
call fcn.10011f90
test al, al
je 0x1000b519
pop edx
push ecx
pop edi
push eax
pop esp
pop ecx
push ecx
push edx
push ebp
push eax
push esp
pop esi
push ecx
push edi
push ebp
pop edi
push esi
push esp
pop ebp
push edx
pop edi
pop esi
pop edx
pop ecx
pop edi
push edi
push eax
pop edx
push edx
pop esp
mov esi, 1
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
call fcn.1000ab90
add esp, 4
test al, al
je 0x1000b565
push dword [ebp + 0xc]
push 1
push dword [ebp - 8]
push dword [ebp + 0x10]
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
movzx ebx, bl
cmove ebx, esi
mov dword [ebp - 4], ebx
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
jne 0x1000b5e6
call fcn.10011a50
test al, al
je 0x1000b583
pop ebp
pop edi
push esi
push ebp
push esi
push esp
push esi
pop ebp
pop ebp
push eax
pop ebx
push esp
pop ebx
push esp
pop eax
push ebx
pop esi
pop ebp
push esp
pop eax
push ecx
call fcn.100115f0
test al, al
je 0x1000b59e
pop eax
pop edx
push edx
pop esi
pop ecx
push eax
push eax
pop edx
push esi
push edx
push esp
push edx
pop ebx
push esi
push ecx
push esi
pop ecx
pop edi
call fcn.10011d60
test al, al
je 0x1000b5c1
pop ecx
push ecx
push edx
pop edx
push edi
push esi
pop ecx
pop esp
pop esp
push esp
push edx
push edx
push ecx
pop edx
push eax
pop edx
push esi
pop eax
push ebp
push edi
pop ecx
push eax
pop eax
pop eax
pop eax
push edx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov edx, dword [ebp - 4]
test eax, eax
movzx ecx, dl
mov eax, 1
cmovne ecx, eax
mov byte [ebp - 4], cl
call fcn.10011a50
test al, al
je 0x1000b609
push ebx
push ebp
pop ebp
pop ebp
push esi
pop edi
pop esi
pop edx
pop edx
push ebp
push ebp
pop esp
push ebp
push ebp
push esi
push edx
push esp
pop ebp
pop ebx
push edi
pop esp
pop edx
push ecx
pop edi
pop eax
pop edi
call fcn.10011c10
test al, al
je 0x1000b62b
push esi
pop esp
push esp
pop ebx
push edi
pop ecx
push ebx
push esi
pop ebx
pop esi
push ecx
push eax
pop edi
pop eax
pop esi
push esi
pop esi
pop ecx
push ebx
pop edi
pop ebp
push edi
pop eax
pop ebx
pop eax
call fcn.10011ac0
test al, al
je 0x1000b650
pop eax
push esi
pop ebp
pop edx
push edi
pop eax
push ecx
push edx
pop esp
pop edi
pop ebx
push esi
push ebx
pop eax
push ebx
pop eax
push esi
pop ebp
pop ebp
push edx
push edi
pop ebx
pop edi
pop esi
push ebp
pop ebp
pop ebp
push ebx
mov edx, dword [ebp - 4]
mov al, dl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1002391d
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.100235dd
Function at 0x402810
Capabilities:
Hash data with md5

Disassembly:
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [ecx + 8], 0x67452301
mov dword [ecx + 0xc], 0xefcdab89
mov dword [ecx + 0x10], 0x98badcfe
mov dword [ecx + 0x14], 0x10325476
ret

Function at 0x402a10
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
push esi
push dword [ebp + 8]
mov esi, ecx
mov dword [esp + 0x10], 0
push edx
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0x67452301
mov dword [esp + 0x1c], 0xefcdab89
mov dword [esp + 0x20], 0x98badcfe
mov dword [esp + 0x24], 0x10325476
call fcn.00402840
push esi
lea ecx, [esp + 0xc]
call fcn.00402970
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x402a70
Capabilities:
Encode data using add xor sub operations
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, edx
mov ebx, 0xcbf29ce4
push edi
mov edi, 0x84222325
test esi, esi
je 0x402ab9
movzx eax, byte [ecx]
inc ecx
push eax
mov dword [ebp - 4], ecx
call fcn.004976a8
add esp, 4
cdq
xor edx, ebx
xor eax, edi
push 0x100
push 0x1b3
push edx
push eax
call fcn.00470830
mov ecx, dword [ebp - 4]
mov edi, eax
mov ebx, edx
sub esi, 1
jne 0x402a87
mov eax, edi
mov edx, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x403c60
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov edx, dword [ebp + 0xc]
sub esp, 0x404
or eax, 0xffffffff
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
test edx, edx
je 0x403c9a
nop
movzx ecx, byte [esi]
lea esi, [esi + 1]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x4cdff8]
sub edx, 1
jne 0x403c80
mov ecx, dword [edi + 8]
not eax
cmp ecx, eax
sete bl
je 0x403cd4
push eax
push ecx
lea eax, [esp + 0x18]
push str._CRC_mismatch:_expected_0x_08x__actual_0x_08x._
push eax
call fcn.0043a9e0
mov edx, eax
add esp, 0x10
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403cc1
sub ecx, esi
push ecx
mov ecx, dword [ebp + 0x10]
push edx
call fcn.0043d2f0
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x404800
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
push ebx
push esi
mov esi, dword [ebp + 8]
xor bl, bl
push edi
mov edi, ecx
mov dword [ebp - 0x54], 0
push esi
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x50], 0x67452301
lea ecx, [edi + 8]
mov dword [ebp - 0x4c], 0xefcdab89
mov dword [ebp - 0x48], 0x98badcfe
mov dword [ebp - 0x44], 0x10325476
call fcn.00439e90
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0xc]
mov dword [ebp + 8], esi
test ecx, ecx
je 0x404877
push ecx
lea edx, [ebp + 8]
push edx
push 0
push 0
mov edx, eax
call fcn.00430180
add esp, 0x10
test al, al
je 0x40486c
cmp dword [ebp + 8], esi
je 0x404891
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp + 8]
push ecx
mov ecx, dword [edi]
push esi
push 0
push 0
push eax
call fcn.00414e70
test al, al
je 0x40486c
cmp dword [ebp + 8], esi
jne 0x40486c
push esi
push dword [edi + 0xc]
lea ecx, [ebp - 0x58]
call fcn.00402840
push dword [ebp + 0xc]
lea ecx, [ebp - 0x58]
call fcn.00402970
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x404e10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
shr edi, 2
mov esi, 0xeeeeeeee
test edi, edi
je 0x404e69
mov eax, dword [ebp + 8]
nop dword [eax]
movzx ecx, al
lea ebx, [ebx + 4]
add esi, dword [ecx*4 + 0x4cdaf0]
mov ecx, esi
shl ecx, 5
add ecx, 3
lea edx, [esi + eax]
xor edx, dword [ebx - 4]
add ecx, edx
mov dword [ebx - 4], edx
add esi, ecx
mov ecx, eax
not ecx
shr eax, 0xb
shl ecx, 0x15
add ecx, 0x11111111
or eax, ecx
sub edi, 1
jne 0x404e30
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x404e70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
shr edi, 2
mov esi, 0xeeeeeeee
test edi, edi
je 0x404eca
mov eax, dword [ebp + 8]
nop dword [eax]
mov edx, dword [ebx]
lea ebx, [ebx + 4]
movzx ecx, al
add esi, dword [ecx*4 + 0x4cdaf0]
lea ecx, [esi + eax]
xor ecx, edx
mov dword [ebx - 4], ecx
mov ecx, esi
shl ecx, 5
add ecx, 3
add ecx, edx
add esi, ecx
mov ecx, eax
not ecx
shr eax, 0xb
shl ecx, 0x15
add ecx, 0x11111111
or eax, ecx
sub edi, 1
jne 0x404e90
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x404ed0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
mov esi, ecx
mov ebx, edx
push edi
mov eax, 0x7fed7fed
mov edi, 0xeeeeeeee
mov cl, byte [esi]
inc esi
test cl, cl
je 0x404f20
shl ebx, 8
nop dword [eax + eax]
movzx ecx, cl
lea esi, [esi + 1]
add eax, edi
mov cl, byte [ecx + 0x4cc9f0]
movzx edx, cl
lea ecx, [ebx + edx]
xor eax, dword [ecx*4 + 0x4ccaf0]
mov ecx, edi
shl ecx, 5
add ecx, edx
add ecx, edi
lea edi, [eax + 3]
add edi, ecx
mov cl, byte [esi - 1]
test cl, cl
jne 0x404ef0
pop edi
pop esi
pop ebx
ret
Function at 0x4069d0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b21d7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x10], esi
push edi
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], eax
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
lea ecx, [esi + 0x6c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
lea ebx, [esi + 0x78]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
lea edi, [esi + 0x84]
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 4
mov dword [esi + 0x90], eax
test al, al
jns 0x406b1b
push ecx
push dword [esi + 0x5c]
call fcn.004414a0
mov eax, dword [esi + 0x90]
test al, 0x40
je 0x406b30
push ebx
push dword [esi + 0x5c]
mov ecx, ebx
call fcn.00440880
mov eax, dword [esi + 0x90]
test eax, 0x100
je 0x406b49
lea ecx, [esi + 0x60]
push ecx
push dword [esi + 0x5c]
call fcn.004409e0
mov eax, dword [esi + 0x90]
test eax, 0x1000
je 0x406b62
mov eax, dword [esi + 0x5c]
mov ecx, edi
add eax, 7
push edi
shr eax, 3
push eax
call fcn.00440770
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8