joyce8/EMBER2024-capa huggingface dataset:
Function at 0x46f463
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x46f4a2
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x46f4a2
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x46f4a2
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x46f4a2
cmp dword [ecx + 0x74], 0xe
jbe 0x46f4a2
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x46fb50
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47757d
mov eax, dword fs:[0]
push eax
sub esp, 8
push esi
push edi
mov eax, dword [0x4901c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0
push 0
call edi
mov esi, eax
mov ecx, 2
test esi, esi
mov eax, 1
cmove esi, eax
mov eax, esi
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.004738b4
add esp, 4
mov dword [ebp - 0x10], eax
push eax
push esi
mov dword [ebp - 4], 0
call edi
test eax, eax
jne 0x46fbd8
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x46fbd8
push str.boost::filesystem::current_path
push dword [ebp + 0xc]
push eax
call fcn.00471970
add esp, 0xc
jmp 0x46fbed
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x46fbed
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 8], 0
mov esi, dword [ebp + 8]
xorps xmm0, xmm0
mov edi, dword [ebp - 0x10]
mov ecx, edi
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edx, [ecx + 2]
mov dword [esi + 0x14], 0
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46fc10
sub ecx, edx
sar ecx, 1
push ecx
push edi
mov ecx, esi
call fcn.00452ce0
push edi
call fcn.0046eab6
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x470660
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47768e
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x4901c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
mov edx, edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x38], 0
cmp dword [edi + 0x14], 7
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], eax
jbe 0x4706ad
mov edx, dword [edi]
mov ecx, edx
mov dword [ebp - 0x18], 0
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movups xmmword [ebp - 0x28], xmm0
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4706c7
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00452ce0
cmp dword [ebp - 0x14], 7
lea eax, [ebp - 0x28]
push 0
cmova eax, dword [ebp - 0x28]
push 0x2200000
push 3
push 0
push 7
push 0x88
push eax
mov dword [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 6
cmp eax, 7
jbe 0x47072c
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x28]
push eax
call fcn.00450ed0
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
cmp esi, 0xffffffff
je 0x47076f
test esi, esi
je 0x47076f
push dword [ebp - 0x34]
push edi
mov edi, dword [ebp - 0x2c]
push esi
push edi
call fcn.004701f0
add esp, 0x10
push esi
mov dword [ebp - 4], 9
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x470813
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x38], eax
cmp eax, 5
jne 0x4707e1
cmp dword [edi + 0x14], 7
mov eax, edi
jbe 0x470787
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
cmp edi, 0xffffffff
je 0x4707d3
test edi, 0x400
jne 0x4707db
push edi
push dword [ebp - 0x30]
call fcn.0046fd40
mov ecx, dword [ebp - 0x2c]
and edi, 0x10
or edi, 0x20
mov dword [ebp - 4], 0xffffffff
shr edi, 4
add esp, 8
mov dword [ecx], edi
mov dword [ecx + 4], eax
cmp esi, 0xffffffff
je 0x470810
test esi, esi
je 0x470810
mov dword [ebp - 4], 7
jmp 0x470809
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4707de
mov eax, dword [ebp - 0x38]
mov edi, dword [ebp - 0x30]
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
push edi
push eax
push ecx
call fcn.004700d0
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
cmp esi, 0xffffffff
je 0x470810
test esi, esi
je 0x470810
mov dword [ebp - 4], 8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2c]
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.0046e4b9
mov esp, ebp
pop ebp
ret
Function at 0x401844
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x401883
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x401883
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x401883
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x401883
cmp dword [ecx + 0x74], 0xe
jbe 0x401883
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x404575
Capabilities:
Clear file content

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x2c]
push esi
push edi
push dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
push dword [ebp + 0xc]
push ebx
call fcn.0040439e
mov eax, dword [ebp - 0x2c]
and eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
je 0x4046e4
mov eax, dword [ebp - 0x24]
and eax, dword [ebp - 0x20]
cmp eax, 0xffffffff
je 0x4046e4
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
test ecx, ecx
jl 0x404699
jg 0x4045d1
test eax, eax
je 0x40468f
push 1
push 0x1000
call fcn.0040db86
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x4045f4
push 0xc
pop ebx
mov byte [edi + 0x1c], 1
mov dword [edi + 0x18], ebx
jmp 0x404686
push 0x8000
push ebx
call fcn.0040ce15
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
test eax, eax
jl 0x40461d
jg 0x404618
cmp ecx, 0x1000
jb 0x40461d
mov ecx, 0x1000
push edi
push ecx
push esi
push ebx
call fcn.0040b0ae
add esp, 0x10
cmp eax, 0xffffffff
je 0x404662
mov ecx, dword [ebp - 4]
cdq
sub ecx, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 4], ecx
sbb eax, edx
mov dword [ebp - 8], eax
test eax, eax
jg 0x404618
jl 0x404649
test ecx, ecx
jne 0x40460a
push dword [ebp - 0xc]
push ebx
call fcn.0040ce15
push esi
call fcn.0040dbe3
add esp, 0xc
xor ebx, ebx
jmp 0x4046f2
cmp byte [edi + 0x24], 0
je 0x404679
cmp dword [edi + 0x20], 5
jne 0x404679
mov byte [edi + 0x1c], 1
mov dword [edi + 0x18], 0xd
cmp byte [edi + 0x1c], 0
je 0x404684
mov ebx, dword [edi + 0x18]
jmp 0x404686
xor ebx, ebx
push esi
call fcn.0040dbe3
pop ecx
jmp 0x4046f2
test ecx, ecx
jg 0x40465b
jl 0x404699
test eax, eax
jae 0x40465b
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.0040492b
and eax, edx
add esp, 0x10
cmp eax, 0xffffffff
jne 0x4046b9
cmp byte [edi + 0x1c], 0
je 0x40465b
jmp 0x4046ea
push ebx
call fcn.0040db1c
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x40465b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xd
mov byte [edi + 0x24], 1
mov dword [edi + 0x20], eax
pop ebx
mov byte [edi + 0x1c], 1
mov dword [edi + 0x18], ebx
jmp 0x4046f2
cmp byte [edi + 0x1c], 0
je 0x4046ef
mov ebx, dword [edi + 0x18]
jmp 0x4046f2
push 0x16
pop ebx
push 0
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push dword [ebp - 0x14]
call fcn.0040492b
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x404b30
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov ecx, eax
push ebx
mov ebx, dword [ebp + 0xc]
and eax, 0x3f
sar ecx, 6
push esi
push edi
imul edi, eax, 0x38
mov eax, dword [ecx*4 + 0x42df90]
mov dword [ebp - 0xc], ecx
mov ecx, dword [edi + eax + 0x18]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x404b70
cmp byte [ebx], 0xa
jne 0x404b70
or byte [edi + eax + 0x28], 4
jmp 0x404b75
and byte [edi + eax + 0x28], 0xfb
add ecx, ebx
mov eax, ebx
mov dword [ebp - 0x10], ecx
mov esi, ebx
mov dword [ebp - 8], eax
cmp ebx, ecx
jae 0x404c74
mov dl, byte [eax]
cmp dl, 0x1a
je 0x404c57
inc eax
cmp dl, 0xd
je 0x404ba1
mov dword [ebp - 8], eax
mov byte [esi], dl
jmp 0x404bc7
cmp eax, ecx
jae 0x404bd5
mov cl, byte [eax]
xor eax, eax
cmp cl, 0xa
sete al
inc eax
add dword [ebp - 8], eax
cmp cl, 0xa
sete al
dec al
and al, 3
add al, 0xa
mov byte [esi], al
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
xor edx, edx
inc edx
add esi, edx
cmp eax, ecx
jb 0x404b89
jmp 0x404c74
push 0
lea eax, [ebp - 0x10]
push eax
push 1
lea eax, [ebp - 1]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x404c52
cmp dword [ebp - 0x10], 0
je 0x404c52
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx*4 + 0x42df90]
test byte [eax + edi + 0x28], 0x48
je 0x404c2c
mov dl, byte [ebp - 1]
lea eax, [esi + 1]
mov dword [ebp - 0x14], eax
cmp dl, 0xa
jne 0x404c17
mov byte [esi], dl
jmp 0x404c28
mov byte [esi], 0xd
mov eax, dword [ecx*4 + 0x42df90]
mov byte [eax + edi + 0x2a], dl
mov eax, dword [ebp - 0x14]
mov esi, eax
jmp 0x404c74
cmp byte [ebp - 1], 0xa
jne 0x404c3b
cmp esi, ebx
jne 0x404c3b
mov byte [esi], 0xa
jmp 0x404c73
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0040492b
add esp, 0x10
cmp byte [ebp - 1], 0xa
je 0x404c74
mov byte [esi], 0xd
jmp 0x404c73
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx*4 + 0x42df90]
mov al, byte [ecx + edi + 0x28]
test al, 0x40
jne 0x404c71
or al, 2
mov byte [ecx + edi + 0x28], al
jmp 0x404c74
mov byte [esi], dl
inc esi
sub esi, ebx
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
Function at 0x404c7d
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 8]
mov ecx, eax
push ebx
mov ebx, dword [ebp + 0xc]
and eax, 0x3f
push esi
sar ecx, 6
push edi
imul edi, eax, 0x38
mov dword [ebp - 8], ecx
mov eax, dword [ecx*4 + 0x42df90]
push 0xa
pop edx
mov dword [ebp - 0x18], edx
mov ecx, dword [eax + edi + 0x18]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x404cc3
cmp word [ebx], dx
jne 0x404cc3
or byte [eax + edi + 0x28], 4
jmp 0x404cc8
and byte [eax + edi + 0x28], 0xfb
lea edx, [ebx + ecx*2]
mov eax, ebx
mov dword [ebp - 0xc], edx
mov esi, ebx
mov dword [ebp - 4], eax
cmp ebx, edx
jae 0x404e2b
mov dword [ebp - 0x10], 0xd
movzx ecx, word [eax]
mov edx, ecx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0xc]
cmp ecx, 0x1a
je 0x404e0b
add eax, 2
cmp cx, word [ebp - 0x10]
je 0x404d09
mov dword [ebp - 4], eax
mov word [esi], cx
jmp 0x404d3f
cmp eax, edx
jae 0x404d4d
movzx eax, word [eax]
xor ecx, ecx
cmp ax, word [ebp - 0x18]
mov edx, eax
push 0xa
sete cl
xor eax, eax
lea ecx, [ecx*2 + 2]
add dword [ebp - 4], ecx
pop ecx
cmp dx, cx
mov edx, dword [ebp - 0xc]
sete al
dec eax
and eax, 3
add eax, ecx
mov word [esi], ax
mov eax, dword [ebp - 4]
push 2
pop ecx
add esi, ecx
cmp eax, edx
jb 0x404ce4
jmp 0x404e2b
push 0
lea eax, [ebp - 0x18]
push eax
push 2
lea eax, [ebp - 4]
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x404e06
cmp dword [ebp - 0x18], 0
je 0x404e06
mov edx, dword [ebp - 8]
push 0xa
mov eax, dword [edx*4 + 0x42df90]
test byte [eax + edi + 0x28], 0x48
je 0x404ddc
lea eax, [esi + 2]
mov dword [ebp - 0x1c], eax
mov ax, word [ebp - 4]
pop ecx
mov word [ebp - 2], ax
cmp ax, cx
jne 0x404da0
mov word [esi], cx
jmp 0x404dd7
push 0xd
pop ecx
mov word [esi], cx
movzx ecx, ax
mov eax, dword [edx*4 + 0x42df90]
mov dx, word [ebp - 2]
shr ecx, 8
push 0xa
mov byte [eax + edi + 0x2a], dl
mov edx, dword [ebp - 8]
mov eax, dword [edx*4 + 0x42df90]
mov byte [eax + edi + 0x2b], cl
mov eax, dword [edx*4 + 0x42df90]
pop ecx
mov byte [eax + edi + 0x2c], cl
mov esi, dword [ebp - 0x1c]
jmp 0x404e2b
pop eax
cmp word [ebp - 4], ax
jne 0x404dec
cmp esi, ebx
jne 0x404dec
mov word [esi], ax
jmp 0x404e28
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
push dword [ebp + 8]
call fcn.0040492b
add esp, 0x10
push 0xa
pop eax
cmp word [ebp - 4], ax
je 0x404e2b
push 0xd
pop eax
jmp 0x404de7
mov edx, dword [ebp - 8]
mov edx, dword [edx*4 + 0x42df90]
mov al, byte [edx + edi + 0x28]
test al, 0x40
jne 0x404e25
or al, 2
mov byte [edx + edi + 0x28], al
jmp 0x404e2b
mov word [esi], cx
add esi, 2
sub esi, ebx
and esi, 0xfffffffe
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
Function at 0x40e9c5
Capabilities:
Allocate thread local storage

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x424c00
push 0x424bf8
push str.FlsAlloc
push 0x1f
call fcn.0040e884
mov esi, eax
add esp, 0x10
test esi, esi
je 0x40e9f9
push dword [ebp + 8]
mov ecx, esi
call dword [0x42320c]
call esi
jmp 0x40e9ff
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
pop esi
pop ebp
ret 4

Function at 0x40ea43
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x424c10
push 0x424c08
push str.FlsGetValue
push 0x21
call fcn.0040e884
mov esi, eax
add esp, 0x10
test esi, esi
je 0x40ea7a
push dword [ebp + 8]
mov ecx, esi
call dword [0x42320c]
call esi
pop esi
pop ebp
ret 4
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsGetValue]

Function at 0x40ea82
Capabilities:
Set thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x424c18
push 0x424c10
push str.FlsSetValue
push 0x22
call fcn.0040e884
mov esi, eax
add esp, 0x10
test esi, esi
je 0x40eabc
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call dword [0x42320c]
call esi
pop esi
pop ebp
ret 8
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsSetValue]
Function at 0x4128b9
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
je 0x412956
push ebx
push esi
call fcn.00412882
xor ebx, ebx
sub eax, esi
push ebx
push ebx
push ebx
push ebx
sar eax, 1
push eax
push esi
push ebx
push ebx
mov dword [ebp - 8], eax
call fcn.004105cb
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x412903
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x412955
push edi
push eax
call fcn.0040efd8
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x412923
call fcn.0040dbe3
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x412954
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.004105cb
add esp, 0x20
test eax, eax
jne 0x412942
push edi
call fcn.0040dbe3
jmp 0x41294a
push ebx
call fcn.0040dbe3
mov ebx, edi
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, ebx
pop edi
pop ebx
pop esi
leave
ret

Function at 0x4193f0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x41941d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x41941d
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret

Function at 0x419b70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
mov dword [ebp - 4], edx
mov edx, ecx
push ecx
lea ecx, [ebp - 0x208]
call fcn.0041cc10
mov edx, dword [ebp + 0x10]
add esp, 4
mov eax, dword [ebp + 8]
mov dword [ebp + 8], 0
mov dword [edx], eax
test eax, eax
jle 0x419c2b
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 4]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
push edi
mov edi, ebx
mov esi, eax
sub edi, eax
sub ecx, eax
mov dword [ebp - 4], ecx
nop dword [eax + eax]
lea edx, [ecx + esi]
push esi
lea ecx, [ebp - 0x208]
call fcn.0041bcc0
lea ecx, [ebx + 0xf]
add esp, 4
mov eax, esi
cmp esi, ecx
ja 0x419bf7
lea ecx, [esi + 0xf]
cmp ecx, ebx
jb 0x419bf7
mov edx, 0x10
mov cl, byte [edi + eax]
lea eax, [eax + 1]
xor byte [eax - 1], cl
sub edx, 1
jne 0x419be7
jmp 0x419c03
movups xmm1, xmmword [esi]
movups xmm0, xmmword [ebx]
xorps xmm1, xmm0
movups xmmword [esi], xmm1
mov edx, dword [ebp - 4]
sub edi, 0x10
mov ecx, dword [ebp + 8]
add ecx, 0x10
mov dword [ebp + 8], ecx
movups xmm0, xmmword [edx + esi]
mov edx, dword [ebp + 0x10]
add esi, 0x10
movups xmmword [ebx], xmm0
mov eax, dword [edx]
cmp ecx, eax
mov ecx, dword [ebp - 4]
jl 0x419bc0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xc]
dec ecx
add ecx, eax
cmp byte [ecx], 0xee
jne 0x419c41
dec eax
lea ecx, [ecx - 1]
mov dword [edx], eax
cmp byte [ecx], 0xee
je 0x419c36
mov esp, ebp
pop ebp
ret
Function at 0x419c50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edx
mov ecx, dword [ebp + 8]
mov esi, 0x10
mov eax, ecx
mov ebx, dword [ebp + 0x14]
cdq
idiv esi
mov esi, eax
shl esi, 4
test edx, edx
je 0x419c7d
lea ecx, [esi + 0x10]
mov eax, dword [ebp + 0x10]
mov edx, edi
sub dword [ebp + 8], esi
push ecx
mov dword [eax], ecx
lea ecx, [ebp - 0x220]
call fcn.0041cc10
add esp, 4
xor edi, edi
test esi, esi
jle 0x419d15
mov eax, dword [ebp + 0xc]
dec esi
mov edi, dword [ebp - 4]
sub eax, edi
shr esi, 4
inc esi
mov dword [ebp - 8], eax
mov eax, esi
mov dword [ebp + 0x10], esi
shl eax, 4
mov dword [ebp - 0xc], eax
lea ecx, [edi + 0xf]
xor eax, eax
mov edx, ebx
cmp ebx, ecx
ja 0x419ce1
lea ecx, [ebx + 0xf]
cmp ecx, edi
jb 0x419ce1
nop dword [eax]
mov cl, byte [edi + eax]
lea edx, [edx + 1]
xor byte [edx - 1], cl
inc eax
cmp eax, 0x10
jl 0x419cd0
jmp 0x419ced
movups xmm1, xmmword [edi]
movups xmm0, xmmword [ebx]
xorps xmm1, xmm0
movups xmmword [ebx], xmm1
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0x220]
add esi, edi
mov edx, ebx
push esi
call fcn.0041d440
movups xmm0, xmmword [esi]
add esp, 4
add edi, 0x10
sub dword [ebp + 0x10], 1
movups xmmword [ebx], xmm0
jne 0x419cb7
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
lea esi, [ebx + 0xf]
test eax, eax
jle 0x419d8b
movaps xmm0, xmmword [0x429490]
push eax
mov eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 0x1c]
push eax
movups xmmword [ebp - 0x1c], xmm0
call fcn.00402f60
lea eax, [ebp - 0xd]
add esp, 0xc
xor edx, edx
mov ecx, ebx
cmp ebx, eax
ja 0x419d62
lea eax, [ebp - 0x1c]
cmp esi, eax
jb 0x419d62
nop
mov al, byte [ebp + edx - 0x1c]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
inc edx
cmp edx, 0x10
jl 0x419d50
jmp 0x419d6f
movups xmm1, xmmword [ebx]
movups xmm0, xmmword [ebp - 0x1c]
xorps xmm1, xmm0
movups xmmword [ebx], xmm1
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x220]
add esi, edi
mov edx, ebx
push esi
call fcn.0041d440
movups xmm0, xmmword [esi]
add esp, 4
movups xmmword [ebx], xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x41ba40
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Manually build aes constants

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
mov dl, 1
push ebx
push esi
push edi
xor ebx, ebx
movzx eax, dl
mov cl, dl
sar cl, 7
and cl, 0x1b
mov byte [ebp + ebx - 0x208], dl
mov byte [ebp + eax - 0x108], bl
mov al, dl
add al, al
inc ebx
xor cl, al
xor dl, cl
cmp ebx, 0x100
jl 0x41ba50
mov cl, 1
mov edx, 0x430840
movzx eax, cl
shl eax, 0x18
mov dword [edx], eax
mov al, cl
sar al, 7
add cl, cl
and al, 0x1b
add edx, 4
xor cl, al
cmp edx, 0x430868
jl 0x41ba81
mov dword [0x431470], 0x63
mov esi, 1
mov dword [0x430dfc], 0
nop dword [eax + eax]
movzx eax, byte [ebp + esi - 0x108]
lea ecx, [ebp - 0x109]
sub ecx, eax
mov dl, byte [ecx]
mov cl, dl
mov al, dl
add al, al
shr cl, 7
or cl, al
xor dl, cl
mov al, cl
shr al, 7
add cl, cl
or al, cl
mov bl, al
xor bl, dl
mov dl, al
add al, al
shr dl, 7
or dl, al
mov al, dl
ror al, 7
movzx ecx, al
movzx eax, dl
xor ecx, eax
movzx eax, bl
xor ecx, eax
xor ecx, 0x63
mov dword [esi*4 + 0x431470], ecx
mov dword [ecx*4 + 0x430c70], esi
inc esi
cmp esi, 0x100
jl 0x41bac0
xor ebx, ebx
mov dword [ebp - 4], 0xff
nop word [eax + eax]
mov dl, byte [ebx + 0x431470]
mov cl, dl
movzx edi, dl
sar cl, 7
mov al, dl
and cl, 0x1b
add al, al
xor cl, al
movzx eax, dl
movzx esi, cl
shl esi, 8
xor esi, edi
movzx ecx, cl
xor ecx, eax
shl esi, 8
xor esi, edi
mov eax, esi
shl eax, 8
xor eax, ecx
bswap ecx
or ecx, esi
mov dword [ebx + 0x42ec40], eax
mov al, byte [ebx + 0x430c70]
mov dword [ebx + 0x42f440], ecx
shr ecx, 8
bswap edi
or ecx, edi
mov dword [ebx + 0x430040], ecx
shr ecx, 8
or ecx, edi
mov dword [ebx + 0x430440], ecx
test al, al
je 0x41bc20
movzx esi, al
xor edx, edx
mov eax, dword [ebp - 0xfb]
mov edi, 0xff
movzx eax, al
movzx ecx, byte [ebp + esi - 0x108]
add eax, ecx
div edi
mov eax, dword [ebp - 0xff]
movzx eax, al
add eax, ecx
movzx edi, byte [ebp + edx - 0x208]
xor edx, edx
div dword [ebp - 4]
movzx eax, byte [ebp + edx - 0x208]
xor edx, edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xfa]
movzx eax, al
add eax, ecx
mov ecx, 0xff
div ecx
movzx eax, byte [ebp + esi - 0x108]
mov esi, 0xff
movzx ecx, byte [ebp + edx - 0x208]
mov edx, dword [ebp - 0xfd]
movzx edx, dl
add eax, edx
xor edx, edx
div esi
mov eax, dword [ebp - 8]
movzx edx, byte [ebp + edx - 0x208]
jmp 0x41bc28
xor edi, edi
xor eax, eax
xor ecx, ecx
xor edx, edx
shl ecx, 8
xor ecx, eax
shl ecx, 8
xor ecx, edi
shl ecx, 8
xor ecx, edx
mov edx, ecx
mov dword [ebx + 0x42f840], ecx
shl edx, 0x18
shr ecx, 8
or edx, ecx
mov eax, edx
mov dword [ebx + 0x42fc40], edx
shl eax, 0x18
shr edx, 8
or eax, edx
mov dword [ebx + 0x42e440], eax
ror eax, 8
mov dword [ebx + 0x431070], eax
add ebx, 4
cmp ebx, 0x400
jl 0x41bb30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret