joyce8/EMBER2024-capa huggingface dataset:
Function at 0x42bad3
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 0x42baef
mov dword [esi + 0x6afa4], 0x47a7c4
xor edi, edi
mov dword [esi + 0x6af78], edi
cmp dword [esi + 0x6af70], edi
jne 0x42bb13
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.004510e0
movzx eax, word [ebx*8 + 0x47e55a]
add esp, 0xc
mov dword [esi + 0x6af98], eax
movzx eax, word [ebx*8 + 0x47e558]
mov dword [esi + 0x6af9c], eax
movzx eax, word [ebx*8 + 0x47e55c]
push 2
mov dword [esi + 0x6afa0], eax
movzx eax, word [ebx*8 + 0x47e55e]
pop ecx
mov dword [esi + 0x6af94], eax
cmp ebx, ecx
jg 0x42bb76
mov eax, dword [ebp + 8]
or word [eax], 4
jmp 0x42bb81
cmp ebx, 8
jl 0x42bb81
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 0x42bbea
cmp eax, 0xffffffff
je 0x42bbea
mov dword [esi + 0x6af8c], edi
cmp eax, 0x106
jae 0x42bbc5
mov ecx, esi
call fcn.0042bdb9
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 0x42bbcd
jmp 0x42bbfa
mov dword [esi + 0x6af8c], 1
mov dword [esi + 0x6af90], edi
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x42bf02
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, ecx
xor ebx, ebx
mov ecx, ebx
push edi
mov dword [ebp - 4], ecx
mov edi, ebx
mov eax, dword [esi + 0x6af90]
mov dword [esi + 0x6af80], 2
jmp 0x42c114
cmp eax, 3
jb 0x42bf81
mov edx, dword [esi + 0x6af84]
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 [esi + 0x6af84]
mov dword [esi + ecx*4 + 0x4af70], eax
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x42bfbe
mov eax, dword [esi + 0x6af84]
sub eax, ecx
cmp eax, 0x7efa
ja 0x42bfbe
mov eax, dword [esi + 0x6af90]
cmp dword [esi + 0x6afa0], eax
jbe 0x42bfa8
mov dword [esi + 0x6afa0], eax
mov edx, ecx
mov ecx, esi
call fcn.0042bbff
mov ecx, dword [esi + 0x6af90]
mov edi, eax
cmp edi, ecx
cmova edi, ecx
mov ecx, dword [esi + 0x6af84]
cmp edi, 3
jb 0x42c09e
sub ecx, dword [esi + 0x6af88]
lea eax, [edi - 3]
mov edx, ecx
mov ecx, esi
push eax
call fcn.0042b51f
pop ecx
mov ecx, dword [esi + 0x6af90]
sub ecx, edi
mov dword [ebp - 8], eax
mov dword [esi + 0x6af90], ecx
cmp edi, dword [esi + 0x6af98]
ja 0x42c068
cmp ecx, 3
jb 0x42c068
dec edi
inc dword [esi + 0x6af84]
mov edx, dword [esi + 0x6af84]
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 [esi + 0x6af84]
mov dword [esi + ecx*4 + 0x4af70], eax
sub edi, 1
jne 0x42c000
inc dword [esi + 0x6af84]
mov edx, dword [esi + 0x6af84]
jmp 0x42c099
mov edx, dword [esi + 0x6af84]
add edx, edi
mov edi, ebx
mov dword [esi + 0x6af84], edx
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
mov eax, dword [ebp - 8]
jmp 0x42c0c3
movzx eax, byte [ecx + esi + 0x1af70]
xor edx, edx
push eax
mov ecx, esi
call fcn.0042b51f
dec dword [esi + 0x6af90]
inc dword [esi + 0x6af84]
mov edx, dword [esi + 0x6af84]
pop ecx
test eax, eax
je 0x42c0f7
mov eax, dword [esi + 0x6af74]
sub edx, eax
test eax, eax
js 0x42c0dc
add eax, 0x1af70
add eax, esi
jmp 0x42c0de
mov eax, ebx
push ebx
push edx
mov edx, eax
mov ecx, esi
call fcn.0042b32a
mov eax, dword [esi + 0x6af84]
pop ecx
pop ecx
mov dword [esi + 0x6af74], eax
mov eax, dword [esi + 0x6af90]
cmp eax, 0x106
jae 0x42c111
mov ecx, esi
call fcn.0042bdb9
mov eax, dword [esi + 0x6af90]
mov ecx, dword [ebp - 4]
test eax, eax
jne 0x42bf2a
mov eax, dword [esi + 0x6af74]
mov ecx, dword [esi + 0x6af84]
sub ecx, eax
test eax, eax
js 0x42c136
lea ebx, [esi + 0x1af70]
add ebx, eax
push 1
push ecx
mov edx, ebx
mov ecx, esi
call fcn.0042b32a
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x42cd32
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
test edx, edx
jne 0x42cd3d
xor eax, eax
pop ebp
ret
push esi
mov esi, dword [ebp + 8]
not ecx
cmp esi, 8
jb 0x42cdf9
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 + 0x47e5a8]
movzx eax, byte [edx + 1]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x47e5a8]
movzx eax, byte [edx + 2]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x47e5a8]
movzx eax, byte [edx + 3]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x47e5a8]
movzx eax, byte [edx + 4]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x47e5a8]
movzx eax, byte [edx + 5]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x47e5a8]
movzx eax, byte [edx + 6]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x47e5a8]
movzx eax, byte [edx + 7]
add edx, 8
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x47e5a8]
sub edi, 1
jne 0x42cd52
pop edi
test esi, esi
je 0x42ce15
movzx eax, byte [edx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x47e5a8]
inc edx
sub esi, 1
jne 0x42cdfd
not ecx
mov eax, ecx
pop esi
pop ebp
ret

Function at 0x42ce1c
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 + 0x47e5a8]
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 + 0x47e5a8]
mov dword [esi + 8], ecx
pop esi
ret
Function at 0x42d2c0
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 0x42d335
mov ecx, dword [esi + 0x3c]
mov eax, ecx
test ecx, ecx
je 0x42d2ef
cmp dword [esi + 0x40], edi
jae 0x42d2ef
push ecx
call fcn.0044d22f
and dword [esi + 0x3c], 0
pop ecx
jmp 0x42d2f3
test eax, eax
jne 0x42d303
lea eax, [edi + edi]
push eax
call fcn.0044d7e1
pop ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], edi
push edi
push ebx
push eax
call fcn.00451310
add esp, 0xc
xor ebx, ebx
test edi, edi
je 0x42d332
lea ecx, [esi + 0x30]
mov eax, dword [esi + 0x3c]
mov dl, byte [ebx + eax]
call fcn.0042ce5f
mov cl, al
mov eax, dword [esi + 0x3c]
mov byte [ebx + eax], cl
inc ebx
lea ecx, [esi + 0x30]
cmp ebx, edi
jb 0x42d317
mov ebx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x42d364
mov edx, dword [esi + 0x24]
lea eax, [edx + edi]
cmp eax, dword [esi + 0x28]
jb 0x42d350
mov dword [esi + 0x14], 0x30000
jmp 0x42d386
push edi
add ecx, edx
push ebx
push ecx
call fcn.00451310
add esp, 0xc
mov eax, edi
add dword [esi + 0x24], edi
jmp 0x42d388
mov eax, dword [esi + 4]
test eax, eax
je 0x42d37f
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 0x42d388
mov dword [esi + 0x14], 0x1000000
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 8

Function at 0x42d7a9
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 0x84]
test ecx, ecx
je 0x42d7ff
mov eax, dword [edi + 0x8c]
mov esi, dword [edi + 0x88]
cmp eax, esi
jae 0x42d83a
sub esi, eax
cmp esi, dword [ebp + 0xc]
cmova esi, dword [ebp + 0xc]
add eax, ecx
push esi
push eax
push dword [ebp + 8]
call fcn.00451310
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 0x78]
add dword [edi + 0x8c], esi
add dword [edi + 0x74], esi
push esi
call fcn.0042cd32
add esp, 0x10
mov dword [edi + 0x78], eax
mov eax, esi
jmp 0x42d83c
cmp dword [edi + 0x7c], 0
je 0x42d833
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 0x42d83a
mov esi, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 0x78]
add dword [edi + 0x74], esi
push esi
call fcn.0042cd32
pop ecx
jmp 0x42d7f8
mov dword [edi + 0x14], 0x1000000
xor eax, eax
pop edi
pop esi
leave
ret 8
Function at 0x43d057
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 0x43d13b
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 0x43d09b
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 0x43d160
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 0x43d24a
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 0x43d1a4
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 0x43e669
Capabilities:
Encode data using xor

Disassembly:
push 0x58
mov eax, 0x46ce46
call fcn.0046bbe6
mov eax, edx
mov dword [ebp - 0x5c], eax
mov esi, ecx
mov dword [ebp - 0x54], esi
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x64], esi
cmp edi, 0xffffffff
je 0x43e7fa
cmp byte [0x486f8c], bl
jne 0x43e7fa
mov al, 0x4c
mov dword [ebp - 0x20], 0x3c353e0f
movsx ecx, al
mov byte [ebp - 0x48], al
mov dword [ebp - 0x1c], 0x627e7f38
mov dword [ebp - 0x18], 0x202028
call fcn.0043cfd7
mov dword [ebp - 0x54], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x54]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x43e6c3
push 0xb
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x48]
mov dword [ebp - 0x24], eax
call fcn.0043cfd7
mov dword [ebp - 0x54], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x54]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x43e6f7
push dword [0x487200]
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x24]
call fcn.0043d3a9
test eax, eax
jne 0x43e725
mov eax, ebx
jmp 0x43e736
mov dl, byte [ebp - 0x48]
mov ecx, ebx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xb
jb 0x43e72a
mov byte [eax + 0xb], bl
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x43e7f4
movaps xmm0, xmmword [0x47f300]
mov al, 0x46
movsx ecx, al
mov byte [ebp - 0x50], al
movups xmmword [ebp - 0x28], xmm0
mov word [ebp - 0x18], 0x2732
mov byte [ebp - 0x16], bl
call fcn.0043cfd7
mov dword [ebp - 0x54], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x54]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x43e76d
push 0x12
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x50]
mov dword [ebp - 0x2c], eax
call fcn.0043cfd7
mov dword [ebp - 0x54], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x54]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x43e7a1
push dword [0x487200]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x2c]
call fcn.0043d3a9
test eax, eax
jne 0x43e7cf
mov eax, ebx
jmp 0x43e7e0
mov dl, byte [ebp - 0x50]
mov ecx, ebx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x12
jb 0x43e7d4
mov byte [eax + 0x12], bl
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x486f88], eax
mov byte [0x486f8c], 1
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x5c]
cmp byte [0x486f8c], 1
jne 0x43e853
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], ebx
push ecx
push ebx
push ebx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x486f88]
push ecx
mov dword [ebp - 0x60], edi
call eax
test eax, eax
je 0x43e83e
cmp edi, 0xffffffff
je 0x43e83e
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov byte [ecx + edx], bl
mov ecx, esi
push dword [ebp - 0x54]
call fcn.0044b51b
jmp 0x43e86d
or dword [ebp - 4], 0xffffffff
jmp 0x43e853
mov dword [esi], ebx
mov ecx, esi
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], 0xf
push 0x47a7c4
mov byte [esi], bl
call fcn.0044b945
mov eax, esi
call fcn.0046bb38
ret
Function at 0x43f3d3
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 0x47ed9c
push eax
call fcn.00455f72
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x43f41a
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.004562a3
push esi
call fcn.00456000
add esp, 0x14
jmp 0x43f41c
xor bl, bl
lea ecx, [ebp + 8]
call fcn.0044b89e
lea ecx, [ebp + 0x20]
call fcn.0044b89e
pop esi
mov al, bl
pop ebx
pop ebp
ret

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

Disassembly:
push 0x4c
mov eax, 0x46cf32
call fcn.0046bbe6
mov esi, ecx
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], esi
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], bl
push ebx
push 0x80
push 3
mov byte [ebp - 4], 2
lea eax, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
push ebx
cmovae eax, dword [ebp + 8]
push 7
push 1
push eax
mov dword [ebp - 0x4c], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x50], eax
cmp eax, 0xffffffff
je 0x43f500
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x58], eax
test eax, eax
je 0x43f4f7
inc eax
push eax
call fcn.00455bac
mov edi, eax
pop ecx
test edi, edi
je 0x43f4f7
push ebx
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x58]
push edi
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x4c]
mov dword [ebp - 0x30], ebx
lea ecx, [ebp - 0x30]
push edi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], bl
call fcn.0044b966
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x48]
call fcn.0044b499
push edi
call fcn.00455244
pop ecx
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call fcn.0044b89e
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x48]
mov ecx, esi
push eax
call fcn.0044b4e8
lea ecx, [ebp - 0x48]
call fcn.0044b89e
lea ecx, [ebp + 8]
call fcn.0044b89e
mov eax, esi
jmp 0x43f549
call fcn.0046bb38
ret
Function at 0x43f5e1
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x14
mov eax, 0x46cfb1
call fcn.0046bb47
mov esi, edx
mov edi, ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x10], edi
push ecx
mov ebx, pe_nt_image_headers32
mov dword [ebp - 4], 1
push ebx
lea ecx, [ebp - 0x20]
call fcn.0044b1a5
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 0x43f667
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 0x43f667
push dword [ebp - 0x20]
mov ecx, edi
call fcn.0044b51b
jmp 0x43f681
mov dword [edi], ebx
mov ecx, edi
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], 0xf
push 0x47a7c4
mov byte [edi], bl
call fcn.0044b945
lea ecx, [ebp - 0x20]
call fcn.0044b182
lea ecx, [ebp + 8]
call fcn.0044b89e
lea ecx, [ebp + 0x20]
call fcn.0044b89e
mov eax, edi
call fcn.0046bb15
ret
Function at 0x43f6a1
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x15c
mov eax, 0x46d004
call fcn.0046bbe6
mov edi, edx
mov esi, ecx
mov dword [ebp - 0x160], esi
xor ebx, ebx
mov dword [ebp - 0x154], ebx
and dword [ebp - 4], ebx
push 0x47a7c4
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.0044cae0
test al, al
je 0x43f7da
cmp dword [ebp + 0x1c], 0x10
lea ecx, [ebp - 0x158]
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 0x43f7da
xor esi, esi
lea eax, [ebp - 0x164]
push esi
push esi
push esi
push esi
push eax
push esi
push esi
lea eax, [ebp - 0x150]
mov dword [ebp - 0x150], esi
push eax
push esi
push esi
push esi
push dword [ebp - 0x158]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
mov eax, dword [ebp - 0x150]
test eax, eax
je 0x43f7da
cmp esi, eax
jae 0x43f7da
xor eax, eax
mov dword [ebp - 0x15c], 0xff
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x11c]
push eax
push esi
push dword [ebp - 0x158]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp + 0x20]
call fcn.0044cae0
test al, al
je 0x43f7f0
push 0x47eda0
lea edx, [ebp + 8]
lea ecx, [ebp - 0x134]
call fcn.0044bd40
pop ecx
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 3
push ecx
mov ecx, eax
call fcn.0044b441
push eax
lea ecx, [ebp - 0x14c]
call fcn.0044b4e8
lea eax, [ebp - 0x14c]
mov ecx, edi
push eax
call fcn.0044b4c6
lea ecx, [ebp - 0x14c]
call fcn.0044b89e
lea ecx, [ebp - 0x134]
call fcn.0044b89e
lea ecx, [ebp + 8]
call fcn.0044b89e
lea ecx, [ebp + 0x20]
call fcn.0044b89e
call fcn.0046bb38
ret
sub esp, 0x18
lea eax, [ebp + 0x20]
mov ecx, esp
mov dword [ebp - 0x168], esp
push eax
and dword [ecx], 0
and dword [ecx + 0x10], 0
and dword [ecx + 0x14], 0
call fcn.0044ba08
push 0x47eda0
lea edx, [ebp + 8]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x134]
call fcn.0044bd40
pop ecx
sub esp, 0x18
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x154], esp
push ecx
mov ecx, eax
call fcn.0044b441
mov ecx, dword [ebp - 0x154]
push eax
call fcn.0044b4e8
or ebx, 2
mov ecx, dword [ebp - 0x160]
mov edx, edi
mov byte [ebp - 4], 6
call fcn.0043f6a1
add esp, 0x30
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x134]
call fcn.0044b89e
mov eax, dword [ebp - 0x150]
inc esi
jmp 0x43f73e