joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4099a4
Capabilities:
Create process on windows
Create process suspended

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], ebx
mov edi, ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x409a77
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x409a90
push ebx
push 0x409a9c
push esi
lea eax, [ebp - 4]
mov edx, 4
call fcn.004033b4
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x44
call fcn.0040277c
mov dword [ebp - 0x48], 0x44
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x48]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.00403414
push eax
push 0
call sub.kernel32.dll_CreateProcessA
test eax, eax
jne 0x409a24
mov al, 0x69
call fcn.00409648
mov eax, dword [ebp - 0x54]
push eax
call sub.kernel32.dll_CloseHandle_1
call fcn.00409978
push 0xff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x58]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
dec eax
je 0x409a2d
call fcn.00409978
push edi
mov eax, dword [ebp - 0x58]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov eax, dword [ebp - 0x58]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x409a7e
lea eax, [ebp - 4]
call fcn.00403198
ret

Function at 0x409b30
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffbc
mov edi, eax
lea esi, [esp + 0x28]
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_GetSystemInfo
mov ebx, edi
push 0x1c
push esi
push ebx
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x409be4
jmp 0x409bd9
cmp dword [esi + 0x10], 0x1000
jne 0x409bc5
test byte [esi + 0x15], 1
jne 0x409bc5
xor ebx, ebx
mov eax, dword [esi + 0x14]
cmp eax, 1
je 0x409b84
cmp eax, 2
je 0x409b84
cmp eax, 0x10
je 0x409b84
cmp eax, 0x20
jne 0x409b99
push esp
push 0x40
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
test eax, eax
je 0x409b99
mov bl, 1
xor ebp, ebp
jmp 0x409baa
mov eax, dword [esi]
add eax, ebp
call fcn.00409b28
add ebp, dword [esp + 8]
cmp ebp, dword [esi + 0xc]
jb 0x409b9d
test bl, bl
je 0x409bc5
push esp
mov eax, dword [esp + 4]
push eax
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [esi]
add eax, dword [esi + 0xc]
mov ebx, eax
push 0x1c
push esi
push ebx
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x409be4
mov eax, dword [esi + 4]
cmp eax, edi
je 0x409b5c
add esp, 0x44
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x433002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
call 0x43300c
nop
pop eax
nop
nop
nop
nop
nop
add eax, 0x40a063
nop
sub eax, 0x40a009
nop
nop
nop
mov ebx, dword [eax]
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
jl 0x433030
nop
add eax, 0xc
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
jne 0x43301e
nop
nop
nop
nop
nop
popal
nop
nop
nop
nop
jmp 0x431219
Function at 0x430002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..text
mov ebx, 0x408ecc
nop
nop
mov ecx, 0x49a83192
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x43004e
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x430024
nop
mov eax, section..data
nop
mov ebx, 0x42e1d0
nop
mov ecx, 0x52ee1eb0
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x430084
nop
xor dword [eax], ecx
nop
nop
nop
nop
add eax, 4
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
jne 0x43006c
nop
nop
nop
nop
nop
nop
nop
popal
jmp 0x401219

Function at 0x430003
Capabilities:
Encode data using xor

Disassembly:
pushal
nop
nop
call 0x43000c
pop eax
nop
nop
nop
nop
nop
add eax, 0x403daa
nop
sub eax, 0x403d50
nop
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
add ebx, 4
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
nop
jl 0x430030
nop
nop
nop
nop
add eax, 0xc
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
nop
nop
nop
nop
popal
jmp loc.00401219

Function at 0x430002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
mov eax, section..text
nop
nop
nop
push 4
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
je 0x430072
nop
nop
nop
nop
nop
mov ebx, 0x408ecc
nop
nop
mov ecx, ebx
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
div edi
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x68eb488d
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
loop 0x430060
nop
nop
nop
mov eax, section..rsrc
nop
nop
nop
cmp eax, 0
je 0x4300d2
nop
nop
nop
nop
nop
mov ebx, 0x42e1d0
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
push eax
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
div edi
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x631d6bf4
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
loop 0x4300c0
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x401219
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
nop
nop
push 4
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
je 0x433072
nop
mov ebx, 0x40de38
nop
nop
nop
nop
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
push eax
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
div edi
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x47d5494f
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
loop 0x433060
nop
nop
nop
mov eax, section..data
nop
cmp eax, 0
nop
nop
nop
nop
je 0x4330d2
nop
nop
nop
mov ebx, 0x4304d8
nop
nop
nop
nop
nop
mov ecx, ebx
nop
sub ecx, eax
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
pop eax
nop
nop
nop
nop
nop
nop
mov esi, 0xc7d0858
nop
nop
xor dword [eax], esi
nop
nop
add eax, edi
nop
nop
nop
nop
nop
nop
loop 0x4330c0
nop
nop
nop
nop
popal
nop
nop
nop
jmp 0x431219
Function at 0x4033fc
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x22c
mov eax, dword [0x5f32b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, ecx
push 0x599008
push 0
push 0x59965c
push 0x42
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x22c], edi
call fcn.00412203
push 0xfffffffffffffffe
pop esi
push 0x599680
push 0
push 0x59965c
push 0x4d
call fcn.00412203
add esp, 0x20
xor eax, eax
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x20c], eax
push eax
lea eax, [ebp - 0x224]
push eax
push 0x200
lea eax, [ebp - 0x204]
push eax
push 0xc
lea eax, [ebp - 0x210]
push eax
push 0x2d1400
push dword [ebx]
call dword [0x598468]
mov ecx, dword [ebp - 0x224]
mov dword [edi], ecx
mov edi, dword [0x598478]
test eax, eax
jne 0x4034c4
call edi
test eax, eax
je 0x4034be
push eax
push 0x5996c8
push 0
push 0x59965c
push 0x60
call fcn.00412203
add esp, 0x14
jmp 0x4035c4
mov ecx, dword [ebp - 0x224]
push ecx
push 0x5996ec
push 1
push 0x59965c
push 0x65
call fcn.00412203
push dword [ebp - 0x224]
lea eax, [ebp - 0x204]
push eax
call fcn.00411f56
push dword [ebp - 0x224]
lea eax, [ebp - 0x204]
push eax
push dword [ebp - 0x228]
call fcn.0055d810
push 0x599718
push 0
push 0x59965c
push 0x6f
call fcn.00412203
add esp, 0x38
and dword [ebp - 0x218], 0
lea eax, [ebp - 0x224]
push 0x10
pop ecx
push 0
push eax
push 0x200
lea eax, [ebp - 0x204]
mov dword [ebp - 0x220], ecx
push eax
push ecx
lea eax, [ebp - 0x220]
mov dword [ebp - 0x21c], ecx
push eax
push 0x2d1c00
push dword [ebx]
call dword [0x598468]
mov ecx, dword [ebp - 0x224]
mov ebx, eax
mov eax, dword [ebp - 0x22c]
mov dword [eax], ecx
test ebx, ebx
jne 0x40358b
call edi
test eax, eax
je 0x40358b
push eax
push 0x599750
push ebx
push 0x59965c
push 0x84
call fcn.00412203
add esp, 0x14
push dword [ebp - 0x224]
push 0x599798
push 0
push 0x59965c
push 0x89
call fcn.00412203
push dword [ebp - 0x224]
lea eax, [ebp - 0x204]
push eax
call fcn.00411f56
xor eax, eax
add esp, 0x1c
cmp ebx, 1
cmove esi, eax
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00559af4
leave
ret 8
Function at 0x41f24f
Capabilities:
Encode data using xor

Disassembly:
push eax
inc esp
inc esp
dec esp
arpl word [eax], si
jne 0x41f1b9
jnp 0x41f253
pop ebx
mov esi, 0x4f5953eb
inc esp
inc esp
mov byte [ebx - 5], bh
push eax
mov al, 0xd1
inc esp
xor byte [ebp + 0x53], dh
popal
inc edi
inc esp
inc esp
mov byte [ebx - 0x1c], bh
in eax, 0x78
in eax, dx
sar dword [edx + 0x4534a30], 1
js 0x41f283
inc esp
jnp 0x41f212
mov dl, 0xd1
mov edx, 0x5537530
inc edi
inc esp
inc esp
in eax, 0x78
xor byte [ebp + 0x53], dh
add eax, 0xe5444447
js 0x41f221
invalid
shl ebx, 1
add esp, dword [edx]
jecxz 0x41f255
and dh, byte [ebx]
xor al, 0xe3
mov ebx, 0xa812b753
mov ebx, 0x36ed4a30
mul byte [edi]
push ebx
lahf
idiv byte [ebx + 0x47de38bb]
mov ebx, 0xeb27fe36
xor byte [ebp + 0x53], dh
push edi
dec edx
inc esp
inc esp
jnp 0x41f246
mov esp, 0xd2537530
sub eax, dword [esp + eax*2 + 0x36]
mul byte [edi]
shr byte [ebx], cl
inc esp
inc esp
mul byte ss:[edi]
push ebx
sbb dh, ch
mov ebx, 0x133253bb
test al, 0xbb
js 0x41f27c
in al, dx
xor byte [edx + 0x53], cl
out dx, al
invalid

Function at 0x4204bf
Capabilities:
Encode data using xor

Disassembly:
mov ebx, 0xdb53bbbb
sub eax, 0xbf79bba8
mov ebx, 0x44868d53
inc esp
inc esp
ja 0x4204ae
out dx, al
out dx, al
xor byte [edi - 0x2f], dl
inc esp
sal dword [esi - 0x20441cd7], cl
sbb bh, byte [ebx - 0x14444445]
cmp dl, byte [edi - 0x51]
mov ecx, 0xb1abbbb
mov esp, esp
mov ebx, 0xfe327e88
push edi
call 0x372df1d2
dec byte [edi - 0x21]
sbb byte [ebx + 0x32bbbbbb], bh
fimul word [ebx + 0x30]
inc edx
xor al, byte [esi]
push ebx
inc esi
inc esp
inc esp
xor al, byte [esi]
pop edi
inc esi
inc esp
inc esp
jl 0x4204bc
mov byte [esi + 0x32], bh
invalid
cmpsd dword [esi], dword es:[edi]
dec ebx
loop fcn.004204bf
mov byte [eax + 0x32], ah
out 0x47, al
jge 0x420509
inc edi
mov edx, 0xbbad3453
mov ebx, 0xbb072482
mov ebx, 0x44b7cfbb
scasb al, byte es:[edi]
jae 0x420550
loop 0x4204db
xor ah, byte [edi + eax]
mov ebx, 0xfc30bbbb
out 0x32, eax
push ebx
inc esi
inc esp
inc esp
jnp 0x420501
lodsb al, byte [esi]
xor byte [ebx - 0x34cf452f], bh
mov edi, 0xae447530
wait
xor edx, esp
mov ebx, 0x46533630
inc esp
inc esp
inc esp
insd dword es:[edi], dx
xor byte [edi + esi], bh
mov ebx, 0x3e32bbbb
mov ebx, 0x46533e32
xor bh, byte [esi]
push ebx
inc esi
inc esp
inc esp
jnp 0x420528
lodsb al, byte [esi]
xor byte [ebx - 0x34cf452f], bh
cmpsd dword [esi], dword es:[edi]
xor byte [ebp + 0x44], dh
scasb al, byte es:[edi]
wait
xor edx, esp
mov ebx, 0x46533630
inc esp
inc esp
inc esp
insd dword es:[edi], dx
xor byte [ebx + ebp], bh
mov ebx, 0x3e32bbbb
push ebx
inc esi
inc esp
inc esp
jnp 0x42054f
lodsb al, byte [esi]
xor byte [ebx - 0x34cf452f], bh
mov edi, 0xae447530
wait
xor edx, esp
mov ebx, 0x46533630
inc esp
inc esp
inc esp
insd dword es:[edi], dx
push ebx
hlt
Function at 0x55dd90
Capabilities:
Encode data using xor

Disassembly:
xor bh, dh
lahf
mov bh, 0xb4
or eax, 0x30b39fff
insb byte es:[edi], dx
xor bh, al
lahf
mov edi, 0x3fb4723e
xchg dword [edx + 0x7bd2bbbb], edi
mov edx, 0x38bababa
inc edx
wait
mov ah, 0x3d
mov ebx, 0x423abbbb
cmp edi, dword [ebx + 0x39b4bbbb]
mov edx, 0xb49b4238
cmp eax, 0xbbbbbb64
cmp al, byte [edx + 0x3b]
mov ebx, 0x39b4bbbb
xor byte [ebx + 0x1b4bbbb], bh
sahf
xchg ebx, eax
jge 0x55ddac
mov ebx, 0x48b2c8ba
adc dword [eax], esi
call [edi + 0x784130bf]
mov ah, 1
sahf
imul ecx, dword [ecx - 0x4b45441c], 0x38
or dword [ebx - 0x4b224445], edi
aad 0x7b
fnsave dword [ebx + ecx*8 + 0x74b8bb7b]
mov ah, 0xaa
mov esp, 0x38ab7c38
pop esp
dec ebx
nop
je 0x55de34
inc edx
cmp edi, dword [ebx - 0x8324445]
pop ds
lahf
mov ebx, 0x36bbbbbb
pop ds
lahf
mov ebx, 0x2bbbbbbb
fnsave dword [esp + eax*8 - 0x3b4b2244]
cld
stosd dword es:[edi], eax
fnsave dword [esp + eax*8 - 0x4b226404]
invalid
invalid
Function at 0x403bf6
Capabilities:
Enumerate gui resources

Disassembly:
cmp dword [esp + 4], 0
je 0x403c0e
push dword [esp + 4]
push 0x403b8f
call dword [sym.imp.USER32.dll_EnumWindows]
jmp 0x403c4b
push esi
mov esi, dword [0x47ef00]
test esi, esi
je 0x403c4a
push ebx
push edi
mov ebx, dword [esi]
lea edi, [esi + 8]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [edi], eax
jne 0x403c42
push 1
push dword [esi + 0xc]
call dword [sym.imp.USER32.dll_EnableWindow]
push edi
push 0x47ef00
call fcn.00404dda
pop ecx
pop ecx
test ebx, ebx
mov esi, ebx
jne 0x403c1b
pop edi
pop ebx
pop esi
ret 4
Function at 0x4043b0
Capabilities:
Write file on windows

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0xc]
xor eax, eax
cmp dword [esi + 0x14], eax
mov dword [esp + 4], eax
jne 0x4043e5
mov ecx, dword [esi + 8]
sub ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
push eax
lea eax, [esp + 8]
push eax
mov eax, dword [esi]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [esi + 8]
mov eax, dword [esp + 4]
mov dword [esi + 0xc], ecx
pop esi
pop ecx
ret 4

Function at 0x404670
Capabilities:
Get file size

Disassembly:
mov eax, dword [esp + 4]
mov ecx, dword [0x47ef64]
push ebx
push esi
push edi
push eax
or edi, 0xffffffff
push ecx
or ebx, edi
call fcn.00404c1e
mov esi, eax
test esi, esi
je 0x4046ca
mov eax, dword [esi]
lea edx, [esp + 0x10]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, eax
mov eax, dword [esp + 0x10]
xor edi, edi
xor edx, edx
or ecx, edx
or edi, eax
cmp dword [esi + 4], edx
je 0x4046c0
cmp dword [esi + 0x14], edx
jne 0x4046c0
mov eax, dword [esi + 8]
sub eax, dword [esi + 0xc]
cdq
add ecx, eax
adc edi, edx
mov edx, edi
pop edi
pop esi
mov eax, ecx
pop ebx
ret 4
mov eax, edi
pop edi
pop esi
mov edx, ebx
pop ebx
ret 4

Function at 0x4046e0
Capabilities:
Read file on windows

Disassembly:
push ecx
mov eax, dword [esp + 8]
mov ecx, dword [0x47ef64]
push eax
push ecx
mov byte [esp + 0xb], 0
call fcn.00404c1e
test eax, eax
je 0x40472a
cmp dword [eax + 4], 0
lea edx, [esp + 3]
je 0x404717
push 1
push edx
push eax
call fcn.004049a0
movzx eax, byte [esp + 3]
pop ecx
ret 4
mov eax, dword [eax]
push 0
lea ecx, [esp + 0xc]
push ecx
push 1
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
movzx eax, byte [esp + 3]
pop ecx
ret 4

Function at 0x404740
Capabilities:
Read file on windows

Disassembly:
push ecx
mov eax, dword [esp + 8]
mov ecx, dword [0x47ef64]
push eax
push ecx
mov dword [esp + 8], 0
call fcn.00404c1e
test eax, eax
je 0x40478a
cmp dword [eax + 4], 0
lea edx, [esp]
je 0x404777
push 4
push edx
push eax
call fcn.004049a0
mov eax, dword [esp]
pop ecx
ret 4
mov eax, dword [eax]
push 0
lea ecx, [esp + 0xc]
push ecx
push 4
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp]
pop ecx
ret 4

Function at 0x4047a0
Capabilities:
Read file on windows

Disassembly:
push ecx
mov eax, dword [esp + 8]
mov ecx, dword [0x47ef64]
push eax
push ecx
mov byte [esp + 0xb], 0
call fcn.00404c1e
test eax, eax
je 0x4047ea
cmp dword [eax + 4], 0
lea edx, [esp + 3]
je 0x4047d7
push 1
push edx
push eax
call fcn.004049a0
movsx eax, byte [esp + 3]
pop ecx
ret 4
mov eax, dword [eax]
push 0
lea ecx, [esp + 0xc]
push ecx
push 1
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
movsx eax, byte [esp + 3]
pop ecx
ret 4
Function at 0x404800
Capabilities:
Write file on windows

Disassembly:
push ecx
push edi
mov edi, dword [esp + 0x10]
xor eax, eax
test edi, edi
mov dword [esp + 4], eax
je 0x404859
push esi
mov esi, dword [esp + 0x18]
test esi, esi
je 0x404858
mov eax, dword [esp + 0x10]
mov ecx, dword [0x47ef64]
push eax
push ecx
call fcn.00404c1e
test eax, eax
je 0x404854
cmp dword [eax + 4], 0
je 0x404842
push esi
push edi
push eax
call fcn.00404ad0
pop esi
pop edi
pop ecx
ret 0xc
mov eax, dword [eax]
push 0
lea edx, [esp + 0xc]
push edx
push esi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 8]
pop esi
pop edi
pop ecx
ret 0xc

Function at 0x404860
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xc
mov eax, dword [esp + 0x14]
push ebx
push ebp
push edi
push eax
push 0x1000
mov dword [esp + 0x1c], 0x1000
call fcn.004050b0
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x47ef64]
push ecx
mov edi, eax
push edx
mov ebp, edi
call fcn.00404c1e
mov ebx, eax
test ebx, ebx
je 0x40497e
push esi
lea ecx, [ecx]
mov byte [esp + 0x13], 0
cmp dword [ebx + 4], 0
je 0x4048be
push 1
lea eax, [esp + 0x17]
push eax
push ebx
call fcn.004049a0
mov dword [esp + 0x14], eax
jmp 0x4048d5
mov eax, dword [ebx]
push 0
lea ecx, [esp + 0x18]
push ecx
push 1
lea edx, [esp + 0x1f]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov al, byte [esp + 0x13]
test al, al
je 0x4048e7
mov byte [ebp], al
mov al, byte [esp + 0x13]
add ebp, 1
mov ecx, dword [esp + 0x18]
mov esi, ebp
sub esi, edi
cmp esi, ecx
jl 0x404911
mov edx, dword [esp + 0x24]
add ecx, 0x1000
push edx
push ecx
mov dword [esp + 0x20], ecx
call fcn.004050b0
mov edi, eax
mov al, byte [esp + 0x13]
lea ebp, [esi + edi]
test al, al
je 0x40497d
cmp dword [esp + 0x14], 0
je 0x404928
cmp al, 0xd
je 0x404928
cmp al, 0xa
jne 0x4048a0
sub ebp, 1
cmp al, 0xd
jne 0x40497d
cmp dword [ebx + 4], 0
je 0x404944
push 1
lea eax, [esp + 0x17]
push eax
push ebx
call fcn.004049a0
jmp 0x40495b
mov eax, dword [ebx]
push 0
lea ecx, [esp + 0x18]
push ecx
push 1
lea edx, [esp + 0x1f]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [esp + 0x13], 0xa
je 0x40497d
cmp dword [ebx + 4], 0
je 0x40496e
add dword [ebx + 0xc], 1
jmp 0x40497d
mov ecx, dword [ebx]
push 1
push 0
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
pop esi
sub edi, ebp
add edi, dword [esp + 0x14]
mov byte [ebp], 0
push edi
call fcn.00405130
pop edi
pop ebp
pop ebx
add esp, 0xc
ret 8
Function at 0x4049a0
Capabilities:
Read file on windows

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
cmp dword [esi + 0x14], 0
push edi
jne 0x4049c1
push esi
call fcn.004043b0
mov dword [esi + 0x14], 1
mov dword [esi + 0xc], 0
mov ebx, dword [esi + 0xc]
mov edi, dword [esp + 0x18]
cmp ebx, edi
jl 0x404a3a
mov eax, dword [esi + 0x10]
add eax, dword [esi + 4]
mov ecx, edi
sub eax, ebx
sub ecx, 1
je 0x404a27
sub ecx, 1
je 0x404a12
sub ecx, 2
je 0x4049ff
push edi
push eax
mov eax, dword [esp + 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ebx
ret 0xc
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
mov dword [edx], ecx
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ebx
ret 0xc
mov ax, word [eax]
mov ecx, dword [esp + 0x14]
mov word [ecx], ax
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ebx
ret 0xc
mov dl, byte [eax]
mov eax, dword [esp + 0x14]
mov byte [eax], dl
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ebx
ret 0xc
mov ecx, dword [esi + 0x10]
push ebp
mov ebp, dword [esp + 0x18]
sub ecx, ebx
add ecx, dword [esi + 4]
push ebx
push ecx
push ebp
call sub.MSVCRT.dll_memcpy
mov eax, dword [esi + 8]
add esp, 0xc
sub edi, ebx
add ebp, ebx
cmp edi, eax
push 0
jl 0x404a83
mov eax, dword [esi]
lea edx, [esp + 0x18]
push edx
push edi
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x14]
pop ebp
pop edi
mov dword [esi + 0xc], 0
pop esi
add eax, ebx
pop ebx
ret 0xc
mov edx, dword [esi + 4]
lea ecx, [esp + 0x18]
push ecx
push eax
mov eax, dword [esi]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x14]
cmp edi, eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
jle 0x404aa6
mov edi, eax
mov ecx, dword [esi + 4]
push edi
push ecx
push ebp
call sub.MSVCRT.dll_memcpy
sub dword [esi + 0xc], edi
add esp, 0xc
pop ebp
lea eax, [ebx + edi]
pop edi
pop esi
pop ebx
ret 0xc
Function at 0x404ad0
Capabilities:
Write file on windows

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0xc]
cmp dword [esi + 0x14], 1
push edi
mov dword [esp + 8], 0
jne 0x404af2
mov eax, dword [esi + 8]
mov dword [esi + 0x14], 0
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 0xc]
mov edi, dword [esp + 0x18]
cmp ecx, edi
jle 0x404b6b
mov eax, dword [esi + 8]
add eax, dword [esi + 4]
sub eax, ecx
mov ecx, edi
sub ecx, 1
je 0x404b58
sub ecx, 1
je 0x404b43
sub ecx, 2
je 0x404b30
mov ecx, dword [esp + 0x14]
push edi
push ecx
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ecx
ret 0xc
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov dword [eax], ecx
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ecx
ret 0xc
mov edx, dword [esp + 0x14]
mov cx, word [edx]
mov word [eax], cx
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ecx
ret 0xc
mov edx, dword [esp + 0x14]
mov cl, byte [edx]
mov byte [eax], cl
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ecx
ret 0xc
push esi
call fcn.004043b0
mov eax, dword [esi + 8]
cmp edi, eax
jl 0x404b98
mov eax, dword [esp + 0x14]
mov ecx, dword [esi]
push 0
lea edx, [esp + 0xc]
push edx
push edi
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 8]
pop edi
pop esi
pop ecx
ret 0xc
mov ecx, dword [esi + 4]
sub ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x14]
push edi
push edx
add ecx, eax
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
sub dword [esi + 0xc], edi
mov eax, edi
pop edi
pop esi
pop ecx
ret 0xc