joyce8/EMBER2024-capa huggingface dataset:
Function at 0x700de90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
mov eax, dword [esi + 0xc]
test eax, eax
je 0x700def4
cmp byte [esi + 0x10], 0
je 0x700deb2
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fflush]
mov eax, dword [esi + 0xc]
pop ecx
mov byte [esi + 0x10], 0
push edi
push eax
push dword [ebp + 0xc]
push 1
push dword [ebp + 8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
push dword [esi + 0xc]
mov edi, eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ferror]
add esp, 0x14
test eax, eax
je 0x700dee2
push dword [esi + 0xc]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_feof]
pop ecx
test eax, eax
je 0x700defb
push dword [esi + 0xc]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
pop ecx
mov dword [esi + 8], eax
mov eax, edi
pop edi
jmp 0x700def6
xor eax, eax
pop esi
pop ebp
ret 8
push str.stream_read_error
push 0
call fcn.07003e2a
int3

Function at 0x700e170
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
mov eax, dword [esi + 4]
cmp byte [eax + 8], 0
jne 0x700e1c3
cmp dword [esi + 0xc], 0
je 0x700e1be
push dword [esi + 0xc]
push dword [ebp + 0xc]
push 1
push dword [ebp + 8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
push dword [esi + 0xc]
mov byte [esi + 0x10], 1
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ferror]
add esp, 0x14
test eax, eax
je 0x700e1b1
push str.stream_write_error
jmp 0x700e1c8
push dword [esi + 0xc]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
pop ecx
mov dword [esi + 8], eax
pop esi
pop ebp
ret 8
push str.Attempt_to_write_read_only_stream
push 0
call fcn.07003e2a
int3
Function at 0x401000
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push esi
mov esi, dword [esp + 0xc]
test esi, esi
je 0x401090
push ebp
mov ebp, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x10]
push ebx
cmp byte [esi], 0
je 0x40108d
push 0x5c
push esi
call dword [sym.imp.MSVCRT.dll_strchr]
mov esi, eax
test esi, esi
pop ecx
pop ecx
je 0x40108d
push edi
mov byte [esi], 0
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x401066
push 0
push edi
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
test eax, eax
jne 0x40105f
test ebp, ebp
je 0x40105f
push edi
push str.CreateDirectory___s_
push 5
call ebp
add esp, 0xc
jmp 0x401066
push edi
push 1
call ebp
pop ecx
pop ecx
test bl, 0x10
jne 0x401087
push 0xb7
call dword [sym.imp.kernel32.dll_SetLastError]
test ebp, ebp
je 0x401087
push edi
push str.CreateDirectory___s_
push 5
call ebp
add esp, 0xc
mov byte [esi], 0x5c
inc esi
jne 0x401018
pop ebx
pop edi
pop ebp
xor eax, eax
inc eax
pop esi
ret

Function at 0x40287f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
pushal
call 0x40288e
pop dword [ebp - 0x2c]
mov eax, 0x28980b50
sub eax, 0x2857e2c2
sub dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], 0x747e9ea
add dword [ebp - 0x3c], 0x470a5b61
mov dword [ebp - 0x38], 0x22d8f903
add dword [ebp - 0x38], 0xf5a5342
mov dword [ebp - 0x34], 0x440ea80e
sub dword [ebp - 0x34], 0xf7c263e0
mov dword [ebp - 0x30], 0x714e2c1c
add dword [ebp - 0x30], 0x8eb1d3e4
lea eax, [ebp - 0x3c]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0x2c]
call dword [eax]
mov dword [ebp - 0x3c], 0x548ae7b6
sub dword [ebp - 0x3c], 0xe0187e60
mov dword [ebp - 0x38], 0x144bcefb
add dword [ebp - 0x38], 0x2d20927a
mov dword [ebp - 0x34], 0xd0bcd889
add dword [ebp - 0x34], 0x92b293e3
mov dword [ebp - 0x30], 0xd2a25ad8
sub dword [ebp - 0x30], 0xd2a25ad8
lea ebx, [ebp - 0x3c]
push ebx
push eax
mov eax, 0xb426aea3
sub eax, 0xb3e63dfb
add eax, dword [ebp - 0x2c]
call dword [eax]
push 0x40
push 0x1000
push 0x3b25a
push 0
call eax
mov ecx, 0x1a861b66
add ecx, 0xe57a3ece
xor edi, edi
add edi, eax
mov esi, 0x9cadcdb7
sub esi, 0x9c6ccdb7
add esi, dword [ebp - 0x2c]
mov ebx, 0xfb91ac5d
add ebx, 0xf9a06554
xor dword [ebp - 0x28], esi
mov edx, dword [esi]
xor dword [ebp - 0x20], 0xbc2aad58
sub edx, ebx
mov dword [ebp - 0xc], 0xd417f375
mov dword [edi], edx
xor dword [ebp - 0x18], ebx
add edi, 0xd7146bc0
add edi, 0x28eb9444
add esi, 0xbe966900
sub esi, 0xbe9668fc
loop 0x4029ad
add eax, 0x15ba3
xor ebx, ebx
add ebx, eax
add eax, 0x5ce765e7
sub eax, 0x5ce765e2
mov ecx, 0x400000
add ecx, dword [ebp - 0x2c]
call ebx
leave
ret
Function at 0x405f2f
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8b56530c
stc
push edi
mov edi, eax
mov eax, dword [esi]
mov byte [ebp - 0xb], al
mov eax, dword [esi + 0x34]
xor ebx, ebx
cmp eax, ebx
je 0x405f51
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
push ebx
call dword [0x4560c0]
push 0x5a
push eax
mov dword [ebp - 4], eax
call dword [0x4560e8]
call dword [ebp - 4]
mov dword [ecx - 8], eax
push ebx
call dword [0x4564bc]
mov eax, dword [ebp + 0x10]
push dword [eax]
mov eax, edi
push ebx
push ebx
push ebx
push 4
push 1
and eax, 8
push eax
mov eax, edi
and eax, 4
push eax
mov eax, dword [ebp - 8]
movsx eax, word [ebp + 0x14]
cdq
mov ecx, 0xfffffd30
cmc
stc
and edi, 2
push ebp
push dword [ebp - 0x68]
push ebx
push ebx
push ebx
push eax
call dword [0x4560e4]
push 1
mov edi, eax
push edi
push 0x30
push dword [ebp - 0xc]
call dword [0x45650c]
cmp byte [esi + 0x78], 1
jne 0x405fe5
cmp byte [ebp + 0x1c], bl
je 0x405fe1
movsx eax, word [esi + 0x76]
push ebx
push eax
movsx eax, word [esi + 0x74]
push ecx
movsx eax, word [esi + 0x72]
push eax
movsx eax, word [esi + 0x70]
push eax
push dword [esi]
std
adc eax, 0x456570
push 9
mov dword [edi + 0x34], edi
push esi
xor al, 0x56
or esi, dword [ebp + 0xc]
call fcn.00401f31
pop edi
ficomp word [ebx - 0x37]
ret 0xa18

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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
xor ebx, ebx
cmp byte [eax], bl
push esi
push edi
mov dword [ebp - 8], ebx
je 0x4088bf
push ebx
push ebx
push 3
push ebx
push ebx
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x40885a
push ebx
push edi
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
push eax
push 2
mov dword [ebp - 0x10], eax
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.DLL_GlobalLock]
push ebx
lea ecx, [ebp - 0x14]
push ecx
push dword [ebp - 0x10]
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
push esi
call dword [sym.imp.KERNEL32.DLL_GlobalUnlock]
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
lea eax, [ebp - 0xc]
push eax
push 1
push esi
call dword [0x45668c]
lea eax, [ebp - 8]
push eax
push 0x457c60
mov dword [ebp - 4], ebx
Function at 0x40d3ff
Capabilities:
Get common file path
Set current directory

Disassembly:
mov eax, 0x454e68
call fcn.00454158
mov eax, 0x1640
call fcn.0044f570
inc dword [0x471bf4]
push edi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x28], 0x471bf4
xor edi, edi
mov dword [ebp - 4], edi
cmp dword [0x471bf4], 0x40
jl 0x40d458
push edi
push dword [ebp + 0x14]
xor eax, eax
mov al, byte [0x463aec]
push str.include_dePth_exceeded.__Make_rure_there_are0oo_rekursive_includes
push dword [ebp + 0x18]
push dword [ebp + 0x10]
push eax
call fcn.00410a8f
add esp, 0x18
xor al, al
jmp 0x40d670
push ebx
push 0x45980c
push dword [ebp + 8]
mov dword [ebp - 0x14], edi
mov byte [ebp - 0xd], 1
mov byte [ebp - 0xe], 1
xor bl, bl
call fcn.004471b1
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x18], eax
jne 0x40d4a2
push esi
lea eax, [ebp - 0x340]
push eax
mov esi, 0x104
push esi
call dword [sym.imp.KERNEL32.DLL_GetCurrentDirectoryA]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x130]
push eax
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_GetFullPathNameA]
lea eax, [ebp - 0x64c]
push eax
lea eax, [ebp - 0x548]
push eax
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.00446e39
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x238]
push eax
call fcn.00446250
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x238]
push eax
call fcn.00446260
add esp, 0x24
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
jmp 0x40d527
xor edi, edi
cmp byte [ebp - 0xe], 1
jne 0x40d655
push dword [ebp - 0x18]
lea eax, [ebp - 0x164c]
push 0xfff
push eax
call fcn.004471c4
add esp, 0xc
test eax, eax
je 0x40d655
inc dword [ebp - 0x14]
lea esi, [ebp - 0x164c]
mov byte [ebp - 0x64d], 0
call fcn.0040d26d
mov eax, esi
call fcn.0040d29e
test al, al
je 0x40d62e
mov edi, esi
call fcn.0040d241
mov eax, esi
push eax
mov byte [ebp + 0x17], 0
call fcn.004466d0
mov esi, eax
cmp esi, 2
pop ecx
jle 0x40d5b9
xor eax, eax
mov al, byte [ebp + esi - 0x164e]
and eax, 0x7f
push eax
call fcn.00446ccb
test eax, eax
pop ecx
je 0x40d5b9
lea eax, [ebp + esi - 0x164d]
cmp byte [eax], 0x5f
jne 0x40d5b9
mov byte [eax], 0
mov byte [ebp + 0x17], 1
cmp bl, 1
mov esi, dword [ebp - 0x1c]
jne 0x40d5cf
invalid
invalid
mov ah, 0xe9
invalid

Function at 0x40efc1
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
xor ebx, ebx
xor edi, edi
lea eax, [esi + 0x20]
Function at 0x40efcd
Capabilities:
Read file via mapping

Disassembly:
cmp dword [eax], ebx
je 0x40efda
inc edi
add eax, 8
cmp edi, 0x10
jl fcn.0040efcd
cmp edi, 0x10
je 0x40efe3
xor eax, eax
imul ebp, dword [edx - 0x80], 0x7e
sbb byte [ecx], al
cmp byte [esi + 0x18], 1
jne 0x40f024
lea eax, [ebp + 0xc]
push eax
pop edi
jne 0x40f01c
call dword [0x456488]
push dword [ebp + 0xc]
push ebx
push 0x438
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
push 4
push 0x1000
push dword [ebp + 8]
mov dword [esi + edi*8 + 0x1c], eax
push ebx
push eax
mov eax, esi
lea edi, [esi + edi*8 + 0x20]
call fcn.0040f13e
call eax
jmp 0x40f04b
push ds
add dword [eax], eax
add bh, bh
shr bl, 1
daa
push ebx
push dword [ebp + 8]
push ebx
push 4
push ebx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.DLL_CreateFileMappingA]
push ebx
push ebx
push ebx
push 0xf001f
mov dword [esi + edi*8 + 0x1c], eax
push eax
lea edi, [esi + edi*8 + 0x20]
call dword [sym.imp.KERNEL32.DLL_MapViewOfFile]
mov dword [edi], eax
pop edi
pop ebx
pop ebp
ret 8

Function at 0x40fffe
Capabilities:
Encode data using xor

Disassembly:
mov edx, 0x45541f
call fcn.00454158
sub esp, 0xc
push esi
push edi
mov edi, ecx
lea ecx, [ebp - 0x18]
call 0x813036
and dword [ebp - 4], 0
lea eax, [ebx + ebx*2]
lea eax, [edi + eax*4 + 0x968]

Function at 0x411491
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1000140
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4114ce
lea eax, [ebp - 0x140]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_FindFirstFileA]
cmp eax, 0xffffffff
push ebp
add al, 0xb
ror cl, 0xc3
push eax
call dword [sym.imp.KERNEL32.DLL_FindClose]
mov eax, dword [ebp - 0x140]
leave
ret

Function at 0x411bfe
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
push dword [ebp + 8]
lea eax, [ebp - 0x230]
call fcn.004114e9
push dword [ebp + 0xc]
lea eax, [ebp - 0x128]
call fcn.004114e9
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.004464a0
add esp, 0x10
test eax, eax
jne 0x411c45
cmp byte [ebp + 0x10], al
setne al
leave
ret
lea eax, [ebp - 0x230]
push eax
call fcn.004114d0
test al, al
pop ecx
jne 0x411c58
leave
ret
lea eax, [ebp - 0x128]
push ebx
push eax
call fcn.004114d0
xor ebx, ebx
test al, al
pop ecx
je 0x411c78
cmp byte [ebp + 0x10], bl
jne 0x411c9a
xor al, al
jmp 0x411d0f
lea eax, [ebp - 0x128]
push eax
call fcn.00411b65
test al, al
pop ecx
je 0x411c71
lea eax, [ebp - 0x128]
push eax
call fcn.004114d0
pop ecx
test al, al
jmp 0x411c6f
lea eax, [ebp - 0x230]
push str..
push eax
call fcn.00446260
lea eax, [ebp - 0x230]
push eax
call fcn.004466d0
mov byte [ebp + eax - 0x22f], bl
lea eax, [ebp - 0x128]
push eax
call fcn.004466d0
mov byte [ebp + eax - 0x127], bl
lea eax, [ebp - 0x230]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x128]
mov dword [ebp - 0x14], eax
add esp, 0x10
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0xa], ebx
mov dword [ebp - 6], ebx
mov dword [ebp - 0xe], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], 2
mov word [ebp - 0x10], 0x614
call dword [0x4563b8]
neg eax
sbb al, al
inc al
pop ebx
leave
ret
Function at 0x411e1e
Capabilities:
Delete directory
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
push dword [ebp + 8]
lea eax, [ebp - 0x128]
call fcn.004114e9
lea eax, [ebp - 0x128]
push eax
call fcn.004114d0
test al, al
pop ecx
pop ecx
jne 0x411e49
leave
ret
push ebx
xor ebx, ebx
cmp byte [ebp + 0xc], bl
lea eax, [ebp - 0x128]
push eax
jne 0x411e65
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
test eax, eax
setne al
jmp 0x411ea7
call fcn.004466d0
mov byte [ebp + eax - 0x127], bl
lea eax, [ebp - 0x128]
mov dword [ebp - 0x18], eax
pop ecx
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xa], ebx
mov dword [ebp - 6], ebx
mov dword [ebp - 0xe], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], 3
mov word [ebp - 0x10], 0x614
call dword [0x4563b8]
neg eax
sbb al, al
inc al
pop ebx
leave
ret

Function at 0x4125e7
Capabilities:
Packed with generic packer

Disassembly:
push 0x449bb8
push dword [esp + 0x18]
call fcn.0044857d
test esp, eax
push ecx
pop ecx
jne 0x412600
push eax
push 0x78
jmp 0x412617
push str.get__NewEnum
push dword [esp + 8]
call fcn.0044857e
test eax, ecx
pop ecx
pop ecx
jne 0x412628
push eax
push 0xffffffffffffff88
push eax
push eax
push 0x804
call [0x456540]
xor eax, eax
inc eax
jecxz 0x41265c
xor eax, esi
ret
mov bl, 0x8d
inc esi
call dword [eax + 0x7f]
je 0x412656
or byte [edi - 0x18], dl
cmpsd dword [esi], dword es:[edi]
inc ecx
add eax, dword [eax]
jge 0x412666
adc edi, 0xfffffffe
js 0x4126a7
Function at 0x420dba
Capabilities:
Create directory
Delete directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x518
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x518]
push eax
mov esi, 0x104
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_GetFullPathNameA]
test eax, eax
je 0x420f32
push ebx
push edi
lea eax, [ebp - 0x518]
push eax
lea eax, [ebp - 0x108]
push 0x45b5bc
push eax
call fcn.00447329
lea eax, [ebp - 0x108]
lea edi, [ebp - 0x108]
push eax
dec edi
call fcn.004466d0
add esp, 0x10
xor ebx, ebx
cmp byte [eax + edi], 0x5c
jne 0x420e49
lea eax, [ebp - 0x108]
push eax
call fcn.004466d0
pop ecx
lea ecx, [ebp - 0x108]
dec ecx
dec ecx
cmp byte [eax + ecx], 0x3a
je 0x420e49
lea eax, [ebp - 0x108]
push eax
call fcn.004466d0
pop ecx
mov byte [eax + edi], bl
push ebx
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
test eax, eax
jne 0x420e60
cmp byte [ebp + 0x10], bl
je 0x420f23
push ebx
push 0x2200000
push 3
push ebx
push ebx
push 0x40000000
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x420f1a
push 0x14
lea eax, [ebp - 0x414]
push ebx
push eax
call fcn.00446660
lea eax, [ebp - 0x108]
push eax
mov dword [ebp - 0x414], 0xa0000003
call fcn.004466d0
shl eax, 1
mov word [ebp - 0x40a], ax
mov eax, dword [ebp - 0x40a]
add esp, 0x10
add eax, 2
push esi
mov word [ebp - 0x408], ax
lea eax, [ebp - 0x404]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x108]
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.DLL_MultiByteToWideChar]
mov eax, dword [ebp - 0x40a]
push ebx
add eax, 0xc
mov word [ebp - 0x410], ax
lea ecx, [ebp - 4]
push ecx
push ebx
movzx eax, ax
push ebx
add eax, 8
push eax
lea eax, [ebp - 0x414]
push eax
push 0x900a4
push edi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
push edi
jne 0x420f27
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
xor eax, eax
jmp 0x420f30
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
xor eax, eax
inc eax
pop edi
pop ebx
pop esi
leave
ret 0xc
Function at 0x421b85
Capabilities:
Enumerate files on windows
Enumerate files recursively
Get file attributes
Set current directory
Set file attributes

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x148
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.DLL_FindFirstFileA]
lea eax, [ebp - 0xe0]
push eax
push dword [ebp + 0x70]
mov dword [ebp + 0x60], ecx
call esi
mov ebx, eax
fadd dword [ebx + 0x5d89fffb]
jne 0x421bb8
xor al, al
jmp 0x421cd5
push edi
lea eax, [ebp - 0xb4]
push 0x459e54
push eax
call fcn.004464a0
test eax, eax
mov edi, dword [sym.imp.KERNEL32.DLL_FindClose]
pop ecx
pop ecx
je 0x421c16
lea eax, [ebp - 0xb4]
push 0x45b6d0
push eax
call fcn.004464a0
test eax, eax
pop ecx
pop ecx
je 0x421c16
lea eax, [ebp - 0xb4]
push eax
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
or eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x78]
not ecx
and eax, ecx
push eax
lea eax, [ebp - 0xb4]
push eax
call dword [sym.imp.KERNEL32.DLL_SetFileAttributesA]
test eax, eax
je 0x421c38
lea eax, [ebp - 0xe0]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_FindNextFileA]
test eax, eax
jne 0x421bb9
push ebx
call edi
cmp byte [ebp + 0x7c], 0
jne 0x421c3f
mov al, 1
jmp 0x421cd4
xor bl, bl
jmp 0x421ccd
lea eax, [ebp - 0xe0]
push eax
push 0x45b6d4
call esi
cmp eax, 0xffffffff
mov dword [ebp + 0x64], eax
je 0x421ccb
mov esi, dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
test byte [ebp - 0xe0], 0x10
je 0x421cb7
lea eax, [ebp - 0xb4]
push 0x459e54
push eax
call fcn.004464a0
test eax, eax
pop ecx
pop ecx
je 0x421cb7
mov ebx, 0x45b6d0
lea eax, [ebp - 0xb4]
push ebx
push eax
call fcn.004464a0
test eax, eax
pop ecx
pop ecx
je 0x421cb7
lea eax, [ebp - 0xb4]
push eax
call esi
push dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x60]
push dword [ebp + 0x78]
push dword [ebp + 0x74]
push dword [ebp + 0x70]
call fcn.00421b85
test al, al
je 0x421c38
push ebx
call esi
lea eax, [ebp - 0xe0]
push eax
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_FindNextFileA]
test eax, eax
jne 0x421c5b
mov bl, 1
push dword [ebp + 0x64]
call edi
mov al, bl
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10
Function at 0x42bb6d
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 0xc]
mov word [esi], 2
call fcn.0044118c
cmp eax, 0xffffffff
jne 0x42bb89
xor eax, eax
push 0
inc eax
jmp 0x42bbb0
cmp dword [ebp + 0x10], 0
mov dword [esi + 4], eax
jle 0x42bbab
cmp dword [ebp + 0x10], 0xffff
jg 0x42bbab
push dword [ebp + 0x10]
call fcn.004411d4
mov word [esi + 2], ax
mov al, 1
jmp 0x42bbba
push 0
push 2
pop eax
mov ecx, dword [ebp + 8]
call fcn.0041da7b
xor al, al
pop ebp
ret 0xc

Function at 0x4390a8
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
push ebx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
push edi
xor ebx, ebx
lea eax, [ebp - 0x14]
push eax
push ebx
push ebx
push ebx
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x114]
push eax
push ebx
push dword [ebp + 8]
mov dword [ebp - 8], 0xff
call esi
mov edi, 0x103
jmp 0x43915d
xor eax, eax
cmp byte [0x46dfe8], bl
je 0x4390f1
mov eax, 0x100
lea ecx, [ebp - 0xc]
push ecx
or eax, 0x20019
push eax
push ebx
lea eax, [ebp - 0x114]
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x439165
push dword [ebp - 0xc]
call fcn.004390a8
pop ecx
push dword [ebp - 0xc]
mov byte [ebp - 1], al
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [ebp - 1], bl
je 0x439165
lea eax, [ebp - 0x114]
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
jne 0x439165
lea eax, [ebp - 0x14]
push eax
push ebx
push ebx
push ebx
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x114]
push eax
push ebx
push dword [ebp + 8]
mov dword [ebp - 8], 0xff
call esi
cmp eax, edi
jne 0x4390e2
mov al, 1
jmp 0x439167
xor al, al
pop edi
pop esi
pop ebx
leave
ret
Function at 0x439bc7
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp edi, 0xffffffff
je 0x439c4f
push edi
call dword [sym.imp.KERNEL32.DLL_GetFileType]
cmp eax, 1
jne 0x439c4f
mov esi, dword [sym.imp.KERNEL32.DLL_SetFilePointer]
push eax
xor ebx, ebx
push ebx
push ebx
push edi
call esi
cmp dword [ebp + 0xc], ebx
mov dword [ebp - 4], eax
je 0x439c23
cmp dword [ebp + 0x10], ebx
jbe 0x439c23
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x439c1b
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
jmp 0x439c51
push ebx
push ebx
push dword [ebp - 4]
push edi
call esi
cmp dword [ebp + 0x18], ebx
je 0x439c43
push 2
push ebx
push ebx
push edi
call esi
push ebx
push ebx
push dword [ebp - 4]
mov edi, eax
push dword [ebp + 8]
call esi
sub edi, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
mov dword [eax], edi
push ebx
call dword [sym.imp.KERNEL32.DLL_SetLastError]
xor eax, eax
inc eax
jmp 0x439c59
push 6
call dword [sym.imp.KERNEL32.DLL_SetLastError]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x43f6f8
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push esi
xor esi, esi
inc esi
mov dword [0x46bb58], eax
push edi
mov edx, esi
mov eax, 0x46bb58
mov ecx, dword [eax]
mov edi, ecx
shr edi, 0x1e
xor edi, ecx
imul edi, edi, 0x6c078965
add edi, edx
mov dword [eax + 4], edi
add eax, 4
inc edx
cmp eax, 0x46c514
jl 0x43f709
pop edi
mov dword [0x4633d8], esi
mov dword [0x46c534], esi
pop esi
ret

Function at 0x43f737
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ecx
cmp dword [0x46c534], 0
push ebx
push ebp
push esi
push edi
mov esi, 0x46bb58
jne 0x43f757
push 0
call fcn.00448932
pop ecx
call fcn.0043f6f8
mov dword [0x4633d8], 0x270
mov dword [0x46bb50], esi
mov edx, 0xe3
mov ecx, 0x7ffffffe
mov eax, 0x9908b0df
mov ebx, dword [esi]
lea edi, [esi + 4]
mov ebp, dword [edi]
xor ebx, ebp
and ebx, ecx
xor ebx, dword [esi]
mov dword [esp + 0x10], ecx
mov ecx, ebp
and cl, 1
shr ebx, 1
neg cl
sbb ecx, ecx
and ecx, eax
xor ebx, ecx
xor ebx, dword [esi + 0x634]
dec edx
mov ecx, dword [esp + 0x10]
mov dword [esi], ebx
mov esi, edi
jne 0x43f776
mov edx, 0x18c
mov ebx, dword [esi]
lea edi, [esi + 4]
mov ebp, dword [edi]
xor ebx, ebp
and ebx, ecx
xor ebx, dword [esi]
mov dword [esp + 0x10], ecx
mov ecx, ebp
and cl, 1
shr ebx, 1
neg cl
sbb ecx, ecx
and ecx, eax
xor ebx, ecx
xor ebx, dword [esi - 0x38c]
dec edx
mov ecx, dword [esp + 0x10]
mov dword [esi], ebx
mov esi, edi
jne 0x43f7ac
mov edx, dword [0x46bb58]
mov edi, dword [esi]
xor edi, edx
and edi, ecx
xor edi, dword [esi]
and dl, 1
shr edi, 1
neg dl
sbb edx, edx
and edx, eax
xor edi, edx
xor edi, dword [esi - 0x38c]
mov dword [esi], edi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret