joyce8/EMBER2024-capa huggingface dataset:
Function at 0x417f54
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
test edi, edi
je 0x41801f
push 0x48
pop edx
call fcn.0040406d
mov esi, eax
test esi, esi
je 0x41801f
mov cl, byte [edi + 5]
mov byte [esi + 5], cl
mov ecx, ebx
mov edx, dword [edi]
call fcn.00417cea
mov dword [esi], eax
mov ecx, ebx
mov edx, dword [edi + 0xc]
call fcn.00417dc3
mov dword [esi + 0xc], eax
mov ecx, ebx
mov edx, dword [edi + 0x10]
call fcn.00417c13
mov dword [esi + 0x10], eax
mov ecx, ebx
mov edx, dword [edi + 0x14]
call fcn.00417cea
mov dword [esi + 0x14], eax
mov ecx, ebx
mov edx, dword [edi + 0x18]
call fcn.00417c13
mov dword [esi + 0x18], eax
mov ecx, ebx
mov edx, dword [edi + 0x1c]
call fcn.00417cea
mov dword [esi + 0x1c], eax
mov ecx, ebx
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov edx, dword [edi + 0x20]
call fcn.00417f54
mov dword [esi + 0x20], eax
mov ecx, ebx
mov edx, dword [edi + 0x2c]
call fcn.00417c13
mov dword [esi + 0x2c], eax
mov ecx, ebx
mov edx, dword [edi + 0x30]
call fcn.00417c13
or ecx, 0xffffffff
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
mov dword [esi + 0x38], ecx
mov al, byte [edi + 6]
mov byte [esi + 6], al
mov al, byte [edi + 7]
mov byte [esi + 7], al
xor eax, eax
mov word [esi + 8], ax
mov dword [esi + 0x28], eax
mov eax, esi
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], ecx
jmp 0x418021
xor eax, eax
pop edi
pop esi
pop ebx
ret
Function at 0x42bace
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, edx
push esi
push edi
mov esi, ecx
lea eax, [ebx - 1]
cmp eax, 7
jbe 0x42baea
mov dword [esi + 0x6afa4], 0x46ba28
xor edi, edi
mov dword [esi + 0x6af78], edi
cmp dword [esi + 0x6af70], edi
jne 0x42bb0e
mov dword [esi + 0x6af78], 1
mov dword [esi + 0x6af70], 0x10000
push 0x1fffc
lea eax, [esi + 0x4af70]
mov dword [esi + 0x6af6c], edi
push edi
push eax
call fcn.0044e5c0
movzx eax, word [ebx*8 + 0x46f7ba]
add esp, 0xc
mov dword [esi + 0x6af98], eax
movzx eax, word [ebx*8 + 0x46f7b8]
mov dword [esi + 0x6af9c], eax
movzx eax, word [ebx*8 + 0x46f7bc]
push 2
mov dword [esi + 0x6afa0], eax
movzx eax, word [ebx*8 + 0x46f7be]
pop ecx
mov dword [esi + 0x6af94], eax
cmp ebx, ecx
jg 0x42bb71
mov eax, dword [ebp + 8]
or word [eax], 4
jmp 0x42bb7c
cmp ebx, 8
jl 0x42bb7c
mov eax, dword [ebp + 8]
or word [eax], cx
mov eax, dword [esi + 0xc]
lea ebx, [esi + 0x1af70]
push 0x10000
push ebx
push esi
mov dword [esi + 0x6af84], edi
mov dword [esi + 0x6af74], edi
call eax
add esp, 0xc
mov dword [esi + 0x6af90], eax
test eax, eax
je 0x42bbe5
cmp eax, 0xffffffff
je 0x42bbe5
mov dword [esi + 0x6af8c], edi
cmp eax, 0x106
jae 0x42bbc0
mov ecx, esi
call fcn.0042bdae
mov dword [esi + 0x6af7c], edi
mov ecx, edi
movzx eax, byte [ebx + edi]
shl ecx, 5
xor ecx, eax
and ecx, 0x7fff
inc edi
mov dword [esi + 0x6af7c], ecx
cmp edi, 2
jb 0x42bbc8
jmp 0x42bbf5
mov dword [esi + 0x6af8c], 1
mov dword [esi + 0x6af90], edi
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x42bef6
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, ecx
xor edx, edx
mov ecx, edx
mov ebx, edx
push edi
mov dword [ebp - 4], ecx
mov eax, dword [esi + 0x6af90]
lea edi, [esi + 0x6af84]
mov dword [esi + 0x6af80], 2
test eax, eax
je 0x42c0df
cmp eax, 3
jb 0x42bf76
mov edx, dword [edi]
mov eax, dword [esi + 0x6af7c]
shl eax, 5
movzx ecx, byte [edx + esi + 0x1af72]
xor ecx, eax
and ecx, 0x7fff
and edx, 0x7fff
mov dword [esi + 0x6af7c], ecx
mov eax, dword [esi + ecx*4 + 0x4af70]
mov dword [esi + edx*4 + 0x2af70], eax
mov ecx, dword [esi + 0x6af7c]
mov dword [ebp - 4], eax
mov eax, dword [edi]
mov dword [esi + ecx*4 + 0x4af70], eax
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x42bfaf
mov eax, dword [edi]
sub eax, ecx
cmp eax, 0x7efa
ja 0x42bfaf
mov eax, dword [esi + 0x6af90]
cmp dword [esi + 0x6afa0], eax
jbe 0x42bf99
mov dword [esi + 0x6afa0], eax
mov edx, ecx
mov ecx, esi
call fcn.0042bbfa
mov ecx, dword [esi + 0x6af90]
mov ebx, eax
cmp ebx, ecx
cmova ebx, ecx
mov ecx, dword [edi]
cmp ebx, 3
jb 0x42c066
sub ecx, dword [esi + 0x6af88]
lea eax, [ebx - 3]
mov edx, ecx
mov ecx, esi
push eax
call fcn.0042b525
pop ecx
mov ecx, dword [esi + 0x6af90]
sub ecx, ebx
mov dword [ebp - 8], eax
mov dword [esi + 0x6af90], ecx
cmp ebx, dword [esi + 0x6af98]
ja 0x42c03d
cmp ecx, 3
jb 0x42c03d
dec ebx
inc dword [edi]
mov edx, dword [edi]
mov eax, dword [esi + 0x6af7c]
shl eax, 5
movzx ecx, byte [edx + esi + 0x1af72]
and edx, 0x7fff
xor ecx, eax
and ecx, 0x7fff
mov dword [esi + 0x6af7c], ecx
mov eax, dword [esi + ecx*4 + 0x4af70]
mov dword [esi + edx*4 + 0x2af70], eax
mov ecx, dword [esi + 0x6af7c]
mov dword [ebp - 4], eax
mov eax, dword [edi]
mov dword [esi + ecx*4 + 0x4af70], eax
sub ebx, 1
jne 0x42bfed
jmp 0x42c082
add dword [edi], ebx
xor ebx, ebx
mov edx, dword [edi]
movzx ecx, byte [edx + esi + 0x1af70]
mov dword [esi + 0x6af7c], ecx
movzx eax, byte [edx + esi + 0x1af71]
shl ecx, 5
xor eax, ecx
mov dword [esi + 0x6af7c], eax
jmp 0x42c086
movzx eax, byte [ecx + esi + 0x1af70]
xor edx, edx
push eax
mov ecx, esi
call fcn.0042b525
dec dword [esi + 0x6af90]
pop ecx
mov dword [ebp - 8], eax
inc dword [edi]
mov edx, dword [edi]
cmp dword [ebp - 8], 0
je 0x42c0b9
mov eax, dword [esi + 0x6af74]
sub edx, eax
test eax, eax
js 0x42c0a1
add eax, 0x1af70
add eax, esi
jmp 0x42c0a3
xor eax, eax
push 0
push edx
mov edx, eax
mov ecx, esi
call fcn.0042b331
mov eax, dword [edi]
pop ecx
pop ecx
mov dword [esi + 0x6af74], eax
cmp dword [esi + 0x6af90], 0x106
jae 0x42c0cc
mov ecx, esi
call fcn.0042bdae
mov eax, dword [esi + 0x6af90]
mov ecx, dword [ebp - 4]
test eax, eax
jne 0x42bf27
xor edx, edx
mov eax, dword [esi + 0x6af74]
mov ecx, dword [edi]
sub ecx, eax
test eax, eax
js 0x42c0f5
lea edx, [esi + 0x1af70]
add edx, eax
push 1
push ecx
mov ecx, esi
call fcn.0042b331
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x42ccf2
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
test edx, edx
jne 0x42ccfd
xor eax, eax
pop ebp
ret
push esi
mov esi, dword [ebp + 8]
not ecx
cmp esi, 8
jb 0x42cdb9
push edi
mov edi, esi
shr edi, 3
movzx eax, byte [edx]
sub esi, 8
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x46f808]
movzx eax, byte [edx + 1]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x46f808]
movzx eax, byte [edx + 2]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x46f808]
movzx eax, byte [edx + 3]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x46f808]
movzx eax, byte [edx + 4]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x46f808]
movzx eax, byte [edx + 5]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x46f808]
movzx eax, byte [edx + 6]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x46f808]
movzx eax, byte [edx + 7]
add edx, 8
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x46f808]
sub edi, 1
jne 0x42cd12
pop edi
test esi, esi
je 0x42cdd5
movzx eax, byte [edx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x46f808]
inc edx
sub esi, 1
jne 0x42cdbd
not ecx
mov eax, ecx
pop esi
pop ebp
ret

Function at 0x42cddc
Capabilities:
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
push esi
mov esi, ecx
movsx eax, dl
mov ecx, dword [esi]
xor eax, ecx
movzx eax, al
shr ecx, 8
xor ecx, dword [eax*4 + 0x46f808]
movzx eax, cl
add eax, dword [esi + 4]
imul eax, eax, 0x8088405
mov dword [esi], ecx
mov ecx, dword [esi + 8]
inc eax
mov dword [esi + 4], eax
shr eax, 0x18
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x46f808]
mov dword [esi + 8], ecx
pop esi
ret
Function at 0x42d27e
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 0xc]
cmp byte [esi + 0x2d], 0
je 0x42d2f3
mov ecx, dword [esi + 0x3c]
mov eax, ecx
test ecx, ecx
je 0x42d2ad
cmp dword [esi + 0x40], edi
jae 0x42d2ad
push ecx
call fcn.0044c6b7
and dword [esi + 0x3c], 0
pop ecx
jmp 0x42d2b1
test eax, eax
jne 0x42d2c1
lea eax, [edi + edi]
push eax
call fcn.0044cc69
pop ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], edi
push edi
push ebx
push eax
call fcn.0044fac0
add esp, 0xc
xor ebx, ebx
test edi, edi
je 0x42d2f0
lea ecx, [esi + 0x30]
mov eax, dword [esi + 0x3c]
mov dl, byte [eax + ebx]
call fcn.0042ce1f
mov cl, al
mov eax, dword [esi + 0x3c]
mov byte [ebx + eax], cl
inc ebx
lea ecx, [esi + 0x30]
cmp ebx, edi
jb 0x42d2d5
mov ebx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x42d322
mov edx, dword [esi + 0x24]
lea eax, [edx + edi]
cmp eax, dword [esi + 0x28]
jb 0x42d30e
mov dword [esi + 0x14], 0x30000
jmp 0x42d344
push edi
add ecx, edx
push ebx
push ecx
call fcn.0044fac0
add esp, 0xc
mov eax, edi
add dword [esi + 0x24], edi
jmp 0x42d346
mov eax, dword [esi + 4]
test eax, eax
je 0x42d33d
push 0
lea ecx, [ebp + 8]
push ecx
push edi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp + 8]
jmp 0x42d346
mov dword [esi + 0x14], 0x1000000
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 8

Function at 0x42d6eb
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x84]
test eax, eax
je 0x42d741
mov ecx, dword [edi + 0x8c]
mov esi, dword [edi + 0x88]
cmp ecx, esi
jae 0x42d77c
sub esi, ecx
cmp esi, dword [ebp + 0xc]
cmova esi, dword [ebp + 0xc]
add eax, ecx
push esi
push eax
push dword [ebp + 8]
call fcn.0044fac0
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 0x78]
add dword [edi + 0x8c], esi
add dword [edi + 0x74], esi
push esi
call fcn.0042ccf2
add esp, 0x10
mov dword [edi + 0x78], eax
mov eax, esi
jmp 0x42d77e
cmp dword [edi + 0x7c], 0
je 0x42d775
push 0
lea eax, [ebp - 4]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [edi + 0x7c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42d77c
mov esi, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 0x78]
add dword [edi + 0x74], esi
push esi
call fcn.0042ccf2
pop ecx
jmp 0x42d73a
mov dword [edi + 0x14], 0x1000000
xor eax, eax
pop edi
pop esi
leave
ret 8
Function at 0x43ce09
Capabilities:
Encode data using xor
Encrypt data using xtea

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
and dword [ebp - 8], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [edx]
mov dword [ebp - 0xc], ecx
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
add esi, dword [ebx]
add eax, dword [edx + 8]
add ecx, dword [edx + 0xc]
push edi
mov edi, dword [ebx + 4]
add edi, dword [edx + 4]
cmp dword [ebp - 0xc], 0
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], edi
mov dword [ebp - 0x14], eax
mov dword [ebp + 8], ecx
jbe 0x43ceed
xor edx, edx
and edx, 3
mov ecx, edi
and ecx, 0x1f
mov eax, edi
shl eax, 4
mov esi, dword [ebx + edx*4 + 0x10]
mov edx, dword [ebx + edx*4]
rol esi, cl
mov ecx, edi
add esi, eax
shr ecx, 0x1b
rol edx, cl
mov eax, edi
mov edi, dword [ebp - 0x10]
shr eax, 5
add edx, eax
mov eax, dword [ebp + 8]
xor esi, edx
mov edx, dword [ebp - 8]
add eax, edx
sub edx, 0x61c88647
xor esi, eax
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
add edi, esi
shr edx, 0xb
and edx, 3
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
mov ecx, eax
and ecx, 0x1f
shl eax, 4
mov esi, dword [ebx + edx*4 + 0x10]
mov edx, dword [ebx + edx*4]
rol esi, cl
mov ecx, dword [ebp + 8]
add esi, eax
shr ecx, 0x1b
rol edx, cl
mov ecx, dword [ebp + 8]
mov eax, ecx
shr eax, 5
add edx, eax
mov eax, dword [ebp - 4]
xor esi, edx
mov edx, dword [ebp - 8]
add eax, edx
xor esi, eax
add esi, dword [ebp - 0x14]
sub dword [ebp - 0xc], 1
mov dword [ebp - 0x14], ecx
mov ecx, edi
mov dword [ebp - 4], esi
mov edi, esi
mov dword [ebp + 8], ecx
jne 0x43ce4d
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
mov eax, dword [ebx + 0x10]
xor eax, esi
mov dword [edx], eax
mov eax, dword [ebx + 0x14]
xor eax, edi
mov dword [edx + 4], eax
mov eax, dword [ebx + 0x18]
xor eax, dword [ebp - 0x14]
mov dword [edx + 8], eax
mov eax, dword [ebx + 0x1c]
pop edi
xor eax, ecx
pop esi
mov dword [edx + 0xc], eax
pop ebx
leave
ret
Function at 0x43cf12
Capabilities:
Encode data using xor
Encrypt data using xtea

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 0x10], ecx
mov eax, edx
imul ecx, ecx, 0x9e3779b9
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 8], ecx
mov esi, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x18]
mov edi, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
xor edi, dword [eax + 4]
xor ecx, dword [eax]
xor esi, dword [eax + 0xc]
xor edx, dword [eax + 8]
cmp dword [ebp - 0x10], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edi
mov dword [ebp + 8], ecx
jbe 0x43cffc
mov edi, esi
mov esi, edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 8]
mov dword [ebp - 4], esi
mov eax, dword [ebp - 4]
shr edx, 0xb
mov dword [ebp - 0x14], ecx
and edx, 3
mov ecx, esi
shl eax, 4
and ecx, 0x1f
mov esi, dword [ebx + edx*4 + 0x10]
mov edx, dword [ebx + edx*4]
rol esi, cl
add esi, eax
mov eax, dword [ebp - 4]
mov ecx, eax
shr eax, 5
shr ecx, 0x1b
rol edx, cl
add edx, eax
mov eax, dword [ebp + 8]
xor esi, edx
mov edx, dword [ebp - 8]
add eax, edx
add edx, 0x61c88647
xor esi, eax
mov dword [ebp - 8], edx
sub dword [ebp - 0xc], esi
and edx, 3
mov eax, dword [ebp + 8]
mov ecx, eax
and ecx, 0x1f
shl eax, 4
mov esi, dword [ebx + edx*4 + 0x10]
rol esi, cl
mov ecx, dword [ebp + 8]
add esi, eax
mov eax, dword [ebx + edx*4]
mov edx, dword [ebp - 0xc]
shr ecx, 0x1b
rol eax, cl
mov ecx, dword [ebp + 8]
shr ecx, 5
add eax, ecx
mov ecx, edi
xor esi, eax
mov eax, dword [ebp - 4]
add eax, dword [ebp - 8]
xor esi, eax
sub ecx, esi
sub dword [ebp - 0x10], 1
mov esi, dword [ebp - 4]
mov dword [ebp + 8], ecx
jne 0x43cf56
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
sub esi, dword [ebx + 0xc]
mov dword [eax + 0xc], esi
sub edx, dword [ebx + 8]
mov dword [eax + 8], edx
sub edi, dword [ebx + 4]
mov dword [eax + 4], edi
sub ecx, dword [ebx]
pop edi
pop esi
mov dword [eax], ecx
pop ebx
leave
ret
Function at 0x43e515
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x462e53
call fcn.00460852
mov dword [ebp - 0x5c], edx
mov esi, ecx
mov dword [ebp - 0x54], esi
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x64], esi
cmp ebx, 0xffffffff
je 0x43e6a4
mov al, byte [0x476760]
test al, al
jne 0x43e6a9
push 0x63
pop ecx
add al, 0x4d
mov byte [ebp - 0x19], cl
movsx ecx, al
mov byte [ebp - 0x48], al
mov dword [ebp - 0x20], 0x3d343f0e
mov word [ebp - 0x1c], 0x7e39
mov byte [ebp - 0x1a], 0x7f
mov dword [ebp - 0x18], 0x212129
call fcn.0043cd89
mov dword [ebp - 0x54], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x54]
call fcn.0043cdc8
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x43e575
push 0xb
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0043d0e5
movsx ecx, byte [ebp - 0x48]
mov dword [ebp - 0x24], eax
call fcn.0043cd89
mov dword [ebp - 0x54], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x54]
call fcn.0043cdc8
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x43e5a9
push dword [0x4769d8]
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x24]
call fcn.0043d15b
test eax, eax
je 0x43e5e5
mov dl, byte [ebp - 0x48]
xor ecx, ecx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xb
jb 0x43e5d8
mov byte [eax + 0xb], 0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x43e6a4
movaps xmm0, xmmword [0x470420]
push 0x63
pop eax
movsx ecx, al
mov byte [ebp - 0x50], al
movups xmmword [ebp - 0x28], xmm0
mov word [ebp - 0x18], 0x217
mov byte [ebp - 0x16], 0
call fcn.0043cd89
mov dword [ebp - 0x54], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x54]
call fcn.0043cdc8
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x43e61e
push 0x12
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043d0e5
movsx ecx, byte [ebp - 0x50]
mov dword [ebp - 0x2c], eax
call fcn.0043cd89
mov dword [ebp - 0x54], eax
xor edx, edx
push edx
lea ecx, [ebp - 0x54]
call fcn.0043cdc8
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x43e652
push dword [0x4769d8]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x2c]
call fcn.0043d15b
test eax, eax
je 0x43e68e
mov dl, byte [ebp - 0x50]
xor ecx, ecx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x12
jb 0x43e681
mov byte [eax + 0x12], 0
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x47675c], eax
mov al, 1
mov byte [0x476760], al
jmp 0x43e6a9
mov al, byte [0x476760]
cmp al, 1
jne 0x43e6f4
xor edx, edx
lea ecx, [ebp - 0x60]
push ecx
push edx
push edx
push edx
mov dword [ebp - 4], edx
lea ecx, [ebp - 0x58]
mov eax, dword [ebp - 0x5c]
push edx
push edx
mov dword [ebp - 0x54], eax
mov eax, dword [0x47675c]
push ecx
mov dword [ebp - 0x58], ebx
call eax
test eax, eax
je 0x43e6f0
cmp ebx, 0xffffffff
je 0x43e6f0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x60]
mov byte [ecx + edx], 0
push dword [ebp - 0x5c]
jmp 0x43e6f9
or dword [ebp - 4], 0xffffffff
push 0x46ba28
mov ecx, esi
call fcn.0044ae6b
mov eax, esi
call fcn.004607a4
ret
Function at 0x43ec27
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
push ebx
cmovae eax, dword [ebp + 8]
push esi
push 0x46ffa0
push eax
call fcn.00451cdc
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x43ec6e
cmp dword [ebp + 0x34], 0x10
lea ecx, [ebp + 0x20]
push esi
cmovae ecx, dword [ebp + 0x20]
xor ebx, ebx
inc ebx
push ebx
push dword [ebp + 0x30]
push ecx
call fcn.0045200d
push esi
call fcn.00451d6a
add esp, 0x14
jmp 0x43ec70
xor bl, bl
lea ecx, [ebp + 8]
call fcn.0044adca
lea ecx, [ebp + 0x20]
call fcn.0044adca
pop esi
mov al, bl
pop ebx
pop ebp
ret

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

Disassembly:
push 0x48
mov eax, 0x462ed6
call fcn.00460852
mov esi, ecx
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], esi
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], cl
push ecx
push 0x80
push 3
mov byte [ebp - 4], 2
lea eax, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
push ecx
cmovae eax, dword [ebp + 8]
push 7
push 1
push eax
mov dword [ebp - 0x48], ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x43ed64
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x50], eax
test eax, eax
je 0x43ed5d
inc eax
push eax
call fcn.004518d3
mov edi, eax
pop ecx
test edi, edi
je 0x43ed5d
push 0
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x50]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x48]
xor eax, eax
lea ecx, [ebp - 0x2c]
push edi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
call fcn.0044b919
mov byte [ebp - 4], 3
lea eax, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
lea ecx, [ebp - 0x44]
push dword [ebp - 0x1c]
cmovae eax, dword [ebp - 0x2c]
push eax
call fcn.0044b07e
push edi
call fcn.004515c4
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x18]
pop ecx
cmp edx, 0x10
jb 0x43ed5d
mov ecx, dword [ebp - 0x2c]
inc edx
call fcn.0044bc25
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x44]
mov ecx, esi
push eax
call fcn.0044ae38
mov edx, dword [ebp - 0x30]
cmp edx, 0x10
jb 0x43ed80
mov ecx, dword [ebp - 0x44]
inc edx
call fcn.0044bc25
lea ecx, [ebp + 8]
call fcn.0044adca
mov eax, esi
jmp 0x43eda7
call fcn.004607a4
ret
Function at 0x43ee3a
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x18
mov eax, 0x462f55
call fcn.004607b3
mov esi, edx
mov edi, ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x10], edi
push ecx
mov ebx, 0x100
mov dword [ebp - 4], 1
push ebx
lea ecx, [ebp - 0x20]
call fcn.0044aa39
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x10]
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
push ecx
cmovae eax, dword [ebp + 8]
push 0x20119
mov dword [ebp - 0x14], ebx
xor ebx, ebx
push ebx
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x43eeb9
cmp dword [ebp + 0x34], 0x10
lea ecx, [ebp - 0x14]
push ecx
push dword [ebp - 0x20]
lea eax, [ebp + 0x20]
cmovae eax, dword [ebp + 0x20]
push ebx
push 2
push eax
push ebx
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegGetValueA]
test eax, eax
jne 0x43eeb9
push dword [ebp - 0x20]
jmp 0x43eebe
push 0x46ba28
mov ecx, edi
call fcn.0044ae6b
lea ecx, [ebp - 0x20]
call fcn.0044aa1a
lea ecx, [ebp + 8]
call fcn.0044adca
lea ecx, [ebp + 0x20]
call fcn.0044adca
mov eax, edi
call fcn.00460781
ret
Function at 0x43eee5
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x158
mov eax, 0x462fa8
call fcn.00460852
mov edi, edx
mov esi, ecx
mov dword [ebp - 0x15c], esi
xor ebx, ebx
mov dword [ebp - 0x14c], ebx
and dword [ebp - 4], ebx
push 0x46ba28
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.0044bde4
test al, al
je 0x43f037
cmp dword [ebp + 0x1c], 0x10
lea ecx, [ebp - 0x150]
push ecx
push 0x20119
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
push ebx
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x43f037
xor esi, esi
lea eax, [ebp - 0x160]
push esi
push esi
push esi
push esi
push eax
push esi
push esi
lea eax, [ebp - 0x148]
mov dword [ebp - 0x148], esi
push eax
push esi
push esi
push esi
push dword [ebp - 0x150]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
mov eax, dword [ebp - 0x148]
test eax, eax
je 0x43f037
cmp esi, eax
jae 0x43f037
xor eax, eax
mov dword [ebp - 0x154], 0xff
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x114]
push eax
push esi
push dword [ebp - 0x150]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp + 0x20]
call fcn.0044bde4
test al, al
je 0x43f04d
push 0x46ffa4
lea edx, [ebp + 8]
lea ecx, [ebp - 0x12c]
call fcn.0044b26b
pop ecx
mov edx, eax
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 3
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43efef
sub ecx, esi
lea eax, [ebp - 0x114]
push ecx
push eax
mov ecx, edx
call fcn.0044b10e
push eax
lea ecx, [ebp - 0x144]
call fcn.0044ae38
lea eax, [ebp - 0x144]
mov ecx, edi
push eax
call fcn.0044aded
lea ecx, [ebp - 0x144]
call fcn.0044adca
lea ecx, [ebp - 0x12c]
call fcn.0044adca
lea ecx, [ebp + 8]
call fcn.0044adca
lea ecx, [ebp + 0x20]
call fcn.0044adca
call fcn.004607a4
ret
sub esp, 0x18
lea eax, [ebp + 0x20]
mov ecx, esp
mov dword [ebp - 0x164], esp
push eax
call fcn.0044ae9c
push 0x46ffa4
lea edx, [ebp + 8]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x12c]
call fcn.0044b26b
pop ecx
mov edx, eax
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 5
sub esp, 0x18
lea eax, [ecx + 1]
mov dword [ebp - 0x14c], esp
mov dword [ebp - 0x158], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43f097
sub ecx, dword [ebp - 0x158]
lea eax, [ebp - 0x114]
push ecx
push eax
mov ecx, edx
call fcn.0044b10e
mov ecx, dword [ebp - 0x14c]
push eax
call fcn.0044ae38
or ebx, 2
mov ecx, dword [ebp - 0x15c]
mov edx, edi
mov byte [ebp - 4], 6
call fcn.0043eee5
add esp, 0x30
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x12c]
call fcn.0044adca
mov eax, dword [ebp - 0x148]
inc esi
jmp 0x43ef82