joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4b9340
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51398f
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x5500a4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 4
lea ecx, [esi + 0x7c]
call fcn.0040a7c0
mov byte [ebp - 4], 3
lea ecx, [esi + 0x64]
call fcn.0040a7c0
mov byte [ebp - 4], 2
lea ecx, [esi + 0x48]
call fcn.0040a7c0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x30]
call fcn.0040a7c0
mov byte [ebp - 4], 0
lea ecx, [esi + 0x18]
call fcn.0040a7c0
mov dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.0040a7c0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x4b93d0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51398f
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x5500a4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 4
lea ecx, [esi + 0x7c]
call fcn.0040a7c0
mov byte [ebp - 4], 3
lea ecx, [esi + 0x64]
call fcn.0040a7c0
mov byte [ebp - 4], 2
lea ecx, [esi + 0x48]
call fcn.0040a7c0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x30]
call fcn.0040a7c0
mov byte [ebp - 4], 0
lea ecx, [esi + 0x18]
call fcn.0040a7c0
mov dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.0040a7c0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x4ba670
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x513b5f
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x5500a4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov esi, dword [ebp + 8]
push esi
call fcn.0040a810
mov dword [ebp - 4], 0
lea eax, [esi + 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.0040a810
mov byte [ebp - 4], 1
lea eax, [esi + 0x30]
push eax
lea ecx, [edi + 0x30]
call fcn.0040a810
mov byte [ebp - 4], 2
lea eax, [esi + 0x48]
push eax
lea ecx, [edi + 0x48]
call fcn.0040a810
mov byte [ebp - 4], 3
lea ecx, [edi + 0x64]
mov al, byte [esi + 0x60]
mov byte [edi + 0x60], al
lea eax, [esi + 0x64]
push eax
call fcn.0040a810
mov byte [ebp - 4], 4
lea eax, [esi + 0x7c]
push eax
lea ecx, [edi + 0x7c]
call fcn.0040a810
mov dword [ebp - 4], 0xffffffff
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x4bb3b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x513d68
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x5500a4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
sub edx, ebx
mov eax, 0x2aaaaaab
imul edx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
mov esi, edi
mov dword [ebp - 0x3c], edi
sar esi, 1
test esi, esi
jle 0x4bb551
lea eax, [ebp - 0x2c]
push eax
call fcn.0040bac0
mov dword [ebp - 0x44], eax
lea ecx, [esi + esi*2]
lea eax, [edi - 1]
add esp, 4
mov dword [ebp - 0x40], eax
sar eax, 1
mov dword [ebp - 0x34], eax
lea eax, [ebx + ecx*8]
nop
sub eax, 0x18
dec esi
push eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x4c], eax
call fcn.0040bac0
add esp, 4
lea ecx, [ebp - 0x2c]
push eax
call fcn.0040a810
mov dword [ebp - 4], 0
mov eax, esi
mov ecx, dword [ebp - 0x34]
mov edi, esi
mov dword [ebp - 0x30], eax
cmp esi, ecx
jge 0x4bb49a
add esi, esi
lea eax, [esi + 2]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*8]
lea edx, [ecx - 0x18]
call fcn.0040bd60
movzx eax, al
xor eax, 1
inc eax
add esi, eax
lea eax, [esi + esi*2]
lea eax, [ebx + eax*8]
push eax
call fcn.0040bac0
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7d0
mov edi, esi
cmp esi, dword [ebp - 0x34]
jl 0x4bb451
mov ecx, dword [ebp - 0x34]
mov eax, edi
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x38]
cmp eax, ecx
jne 0x4bb4c6
mov eax, dword [ebp - 0x3c]
test al, 1
jne 0x4bb4c6
lea eax, [eax + eax*2]
lea eax, [eax - 3]
lea eax, [ebx + eax*8]
push eax
call fcn.0040bac0
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7d0
mov edi, dword [ebp - 0x40]
push dword [ebp - 0x44]
call fcn.0040bac0
add esp, 4
mov ecx, eax
mov dword [ebp - 0x30], ecx
cmp esi, edi
jge 0x4bb522
nop word [eax + eax]
lea esi, [edi - 1]
mov edx, ecx
sar esi, 1
lea eax, [esi + esi*2]
lea eax, [ebx + eax*8]
mov ecx, eax
mov dword [ebp - 0x48], eax
call fcn.0040bd60
test al, al
je 0x4bb51c
push dword [ebp - 0x48]
call fcn.0040bac0
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7d0
mov edi, esi
mov ecx, dword [ebp - 0x30]
cmp dword [ebp - 0x38], esi
jl 0x4bb4e0
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0040bac0
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.0040a7c0
mov eax, dword [ebp - 0x4c]
test esi, esi
jg 0x4bb420
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d6fd3
mov esp, ebp
pop ebp
ret
Function at 0x4bbe20
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov eax, dword [esp + 0x14]
push ebx
push ebp
mov ebx, ecx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
lea ecx, [eax - 1]
push esi
mov ebp, ecx
mov dword [esp + 0x14], ecx
push edi
mov edi, edx
sar ebp, 1
mov dword [esp + 0x14], edi
mov esi, edi
cmp edi, ebp
jge 0x4bbe91
add esi, esi
lea eax, [esi + 2]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*8]
lea edx, [ecx - 0x18]
call fcn.0040bd60
movzx eax, al
xor eax, 1
inc eax
add esi, eax
lea eax, [esi + esi*2]
lea eax, [ebx + eax*8]
push eax
call fcn.0040bac0
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7d0
mov edi, esi
cmp esi, ebp
jl 0x4bbe50
mov eax, dword [esp + 0x10]
cmp esi, ebp
jne 0x4bbebb
test al, 1
jne 0x4bbebb
lea eax, [eax + eax*2]
lea eax, [eax - 3]
lea eax, [ebx + eax*8]
push eax
call fcn.0040bac0
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7d0
mov edi, dword [esp + 0x18]
push dword [esp + 0x1c]
call fcn.0040bac0
add esp, 4
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x14], edi
jge 0x4bbf10
lea esi, [edi - 1]
mov edx, ecx
sar esi, 1
lea eax, [esi + esi*2]
lea ebp, [ebx + eax*8]
mov ecx, ebp
call fcn.0040bd60
test al, al
je 0x4bbf0c
push ebp
call fcn.0040bac0
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7d0
mov edi, esi
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x14], esi
jl 0x4bbed3
mov ecx, dword [esp + 0x10]
push ecx
call fcn.0040bac0
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret

Function at 0x4bbf30
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x513dff
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x5500a4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov esi, dword [ebp + 8]
push esi
call fcn.0040a8b0
mov dword [ebp - 4], 0
lea eax, [esi + 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.0040a8b0
mov byte [ebp - 4], 1
lea eax, [esi + 0x30]
push eax
lea ecx, [edi + 0x30]
call fcn.0040a8b0
mov byte [ebp - 4], 2
lea eax, [esi + 0x48]
push eax
lea ecx, [edi + 0x48]
call fcn.0040a8b0
mov byte [ebp - 4], 3
lea ecx, [edi + 0x64]
mov al, byte [esi + 0x60]
mov byte [edi + 0x60], al
lea eax, [esi + 0x64]
push eax
call fcn.0040a8b0
mov byte [ebp - 4], 4
lea eax, [esi + 0x7c]
push eax
lea ecx, [edi + 0x7c]
call fcn.0040a8b0
mov dword [ebp - 4], 0xffffffff
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x4bd120
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5140df
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x5500a4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
call fcn.0040a890
mov dword [ebp - 4], 0
lea ecx, [esi + 0x18]
call fcn.0040a890
mov byte [ebp - 4], 1
lea ecx, [esi + 0x30]
call fcn.0040a890
mov byte [ebp - 4], 2
lea ecx, [esi + 0x48]
call fcn.0040a890
mov byte [ebp - 4], 3
lea ecx, [esi + 0x64]
call fcn.0040a890
mov byte [ebp - 4], 4
lea ecx, [esi + 0x7c]
call fcn.0040a890
mov byte [ebp - 4], 5
mov byte [esi + 0x60], 0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x4bd290
Capabilities:
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x414]
sub esp, 0x414
push 0xfffffffffffffffe
push 0x54a620
push 0x4d9130
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x5500a4]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp + 0x410], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov esi, edx
mov edi, ecx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 4], 0
mov ecx, esi
call fcn.0040ff60
mov edx, esi
mov ecx, edi
call fcn.004bd3b0
mov bl, al
mov byte [ebp - 0x19], bl
mov dword [ebp - 4], 0xfffffffe
jmp 0x4bd31e
test bl, bl
jne 0x4bd381
cmp edi, 0x1a
jne 0x4bd381
mov ecx, esi
call fcn.0040ff60
push 0x410
push 0
lea eax, [ebp]
push eax
call fcn.004d98b0
add esp, 0xc
push 0x207
lea eax, [ebp]
push eax
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea eax, [ebp]
push eax
call fcn.0040acf0
add esp, 4
push eax
lea eax, [ebp]
push eax
mov ecx, esi
call fcn.0040ab90
mov ecx, esi
call fcn.0040a730
movzx ebx, bl
mov ecx, 1
test al, al
cmove ebx, ecx
mov al, bl
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x410]
xor ecx, ebp
call fcn.004d6fd3
lea esp, [ebp + 0x414]
pop ebp
ret

Function at 0x4bd530
Capabilities:
Query environment variable

Disassembly:
mov edx, dword [esp + 4]
mov ecx, 0x1a
jmp fcn.004bd290
Function at 0x4be6e0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xc
mov eax, dword [0x5500a4]
xor eax, esp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 8], eax
push esi
mov esi, dword [esp + 0x20]
xor ebx, ebx
push edi
cmp dword [ebp + 0x10], 0xffffffff
mov edi, dword [esp + 0x20]
je 0x4be762
mov ecx, 0x100000
nop dword [eax]
nop word [eax + eax]
cmp esi, 0x100000
mov dword [esp + 0x14], 0
push 0
mov eax, esi
cmova eax, ecx
lea ecx, [esp + 0x18]
push ecx
push eax
push edi
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x14]
add ebx, ecx
test eax, eax
je 0x4be762
test ecx, ecx
je 0x4be75e
add edi, ecx
sub esi, ecx
mov ecx, 0x100000
jne 0x4be720
xor eax, eax
jmp 0x4be767
mov eax, 1
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4be771
mov dword [ecx], ebx
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004d6fd3
add esp, 0xc
ret 0xc
Function at 0x4c19a0
Capabilities:
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x514df1
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x5500a4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov dword [edi], vtable.DL::RCSimpleDownloadHandler.0
mov dword [edi + 4], vtable.DL::RCSimpleDownloadHandler.1.0
mov dword [ebp - 4], 7
mov dword [edi + 0x98], 0
mov byte [ebp - 4], 6
or ebx, 0xffffffff
mov esi, dword [edi + 0xf8]
test esi, esi
je 0x4c1a1b
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4c1a1b
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x4c1a1b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov byte [ebp - 4], 5
mov ecx, dword [edi + 0xec]
test ecx, ecx
je 0x4c1a36
lock xadd dword [ecx + 8], ebx
dec ebx
jne 0x4c1a36
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
mov eax, dword [edi + 0xe4]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
test eax, eax
je 0x4c1a67
push eax
call ebx
push 0x18
push dword [edi + 0xe4]
call fcn.004d72ae
add esp, 8
mov dword [edi + 0xe4], 0
mov byte [ebp - 4], 3
lea esi, [edi + 0xc0]
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 8
mov eax, dword [esi]
test eax, eax
je 0x4c1a8b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi], 0
mov byte [ebp - 4], 3
lea ecx, [esi + 8]
call fcn.0040a7c0
mov byte [ebp - 4], 2
mov eax, dword [edi + 0xac]
test eax, eax
je 0x4c1ac2
push eax
call ebx
push 0x18
push dword [edi + 0xac]
call fcn.004d72ae
add esp, 8
mov dword [edi + 0xac], 0
mov byte [ebp - 4], 1
mov ecx, dword [edi + 0xa0]
test ecx, ecx
je 0x4c1b3d
mov edx, dword [edi + 0xa4]
push ecx
call fcn.00425bd0
mov eax, dword [edi + 0xa8]
add esp, 4
mov ecx, dword [edi + 0xa0]
sub eax, ecx
sar eax, 3
lea edx, [eax*8]
cmp edx, 0x1000
jb 0x4c1b15
mov esi, dword [ecx - 4]
add edx, 0x23
sub ecx, esi
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x4c1bbc
mov ecx, esi
push edx
push ecx
call fcn.004d72ae
add esp, 8
mov dword [edi + 0xa0], 0
mov dword [edi + 0xa4], 0
mov dword [edi + 0xa8], 0
mov byte [ebp - 4], 0
lea esi, [edi + 0x10]
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 0xc
lea ecx, [esi + 0x70]
call fcn.0040a7c0
mov byte [ebp - 4], 0xb
lea ecx, [esi + 0x48]
call fcn.0040a7c0
mov byte [ebp - 4], 0xa
lea ecx, [esi + 0x30]
call fcn.0040a7c0
mov byte [ebp - 4], 9
lea ecx, [esi + 0x18]
call fcn.0040a7c0
mov byte [ebp - 4], 0
mov ecx, esi
call fcn.0040a7c0
mov dword [ebp - 4], 0xe
mov dword [edi + 4], vtable.RC::RCRefCounted.0
mov dword [ebp - 4], 0xffffffff
mov dword [edi], vtable.DL::ISimpleDownloadHandler.0
mov dword [ebp - 4], 0xffffffff
mov dword [edi], vtable.RC::IRefCount.0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004dcc29
int3
Function at 0x4c3fd0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x515398
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x5500a4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
mov esi, dword [ebp + 8]
mov ecx, esi
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x3c]
push eax
push 2
push 0xffffffffffffffff
push 0xffff8000
movlpd qword [ebp - 0x3c], xmm0
call fcn.0041b950
test al, al
jne 0x4c4030
mov eax, 1
jmp 0x4c41ad
push 0x10000
call fcn.004d7ab4
mov ebx, eax
mov dword [ebp - 0x18], 0
add esp, 4
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], 0
push 0x10000
push 0
push ebx
call fcn.004d98b0
mov eax, dword [esi]
add esp, 0xc
mov dword [ebp - 0x1c], 0
test eax, eax
je 0x4c4186
test ebx, ebx
je 0x4c4186
cmp dword [eax], 0xffffffff
je 0x4c4186
push 0
lea ecx, [ebp - 0x1c]
push ecx
push 0x8000
push ebx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4c4186
mov esi, dword [ebp - 0x20]
mov ecx, 0x8000
xor ebx, ebx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], ecx
add esi, ecx
nop word [eax + eax]
cmp byte [edi + 0x9c], 0
jne 0x4c417c
lea edx, [ebp - 0x30]
mov dword [ebp - 0x30], 0
push edx
lea edx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
push edx
push ecx
mov ecx, dword [ebp - 0x34]
lea eax, [esi + ebx]
push eax
call fcn.004d1bf0
test al, al
je 0x4c416f
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x4c4122
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x4c4111
push 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp byte [edi + 0x9c], 0
jne 0x4c417c
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
jmp 0x4c412c
add ebx, eax
cmp ebx, 0x8000
je 0x4c413c
cmp dword [ebp - 0x28], 0xf
ja 0x4c4165
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
mov dword [ebp - 0x2c], ecx
jne 0x4c40c0
mov ebx, dword [ebp - 0x20]
mov edx, 0x7ffc
mov ecx, ebx
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x4c415e
add ecx, 4
add esi, 4
sub edx, 4
jae 0x4c4146
mov esi, 4
jmp 0x4c4197
mov esi, 5
jmp 0x4c4197
mov ebx, dword [ebp - 0x20]
mov esi, 3
jmp 0x4c4197
mov eax, dword [ebp - 0x30]
mov esi, 3
mov ebx, dword [ebp - 0x20]
jmp 0x4c4191
mov ebx, dword [ebp - 0x20]
mov esi, 2
jmp 0x4c4197
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, 1
mov dword [edi + 0xb0], eax
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x4c41ab
push ebx
call fcn.004d72e4
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d6fd3
mov esp, ebp
pop ebp
ret 0xc
Function at 0x4cbf90
Capabilities:
Get file size

Disassembly:
sub esp, 8
mov eax, dword [0x5500a4]
xor eax, esp
mov dword [esp + 4], eax
mov eax, dword [ecx]
push esi
push edi
mov edi, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x4cbff5
lea ecx, [esp + 8]
mov dword [esp + 8], 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4cbfd0
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4cbff5
mov eax, dword [esp + 8]
xor ecx, ecx
add ecx, esi
mov dword [edi], ecx
adc eax, 0
mov dword [edi + 4], eax
mov al, 1
pop edi
pop esi
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.004d6fd3
add esp, 8
ret 4
mov ecx, dword [esp + 0xc]
xor al, al
pop edi
pop esi
xor ecx, esp
call fcn.004d6fd3
add esp, 8
ret 4
Function at 0x4cc190
Capabilities:
Get file size
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x516158
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x5500a4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x4cc1d9
mov dword [ecx], 0
mov dword [eax], 0
cmp dword [edi], 0xffffffff
je 0x4cc32b
mov eax, dword [ebp + 0xc]
mov ecx, 0x100000
push 0
mov ebx, eax
mov dword [ebp - 0x1c], 0
cmp eax, 0x100000
lea eax, [ebp - 0x1c]
push eax
cmova ebx, ecx
push ebx
push esi
push dword [edi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
neg eax
sbb eax, eax
and eax, 0x7fffbffb
add eax, 0x80004005
cmp dword [edi + 0x1c], 0
je 0x4cc2f6
test eax, eax
je 0x4cc2f6
mov edx, dword [ebp - 0x1c]
cmp edx, ebx
jae 0x4cc2f9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [edi]
mov dword [ebp - 0x24], eax
cmp ecx, 0xffffffff
je 0x4cc27b
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4cc26f
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4cc27b
mov eax, dword [ebp - 0x14]
xor ecx, ecx
add ecx, esi
adc eax, 0
jmp 0x4cc289
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
push 0
push dword [ebp - 0x24]
push eax
push ecx
sub esp, 0x18
lea eax, [edi + 4]
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.0040a8b0
mov dword [ebp - 4], 0
mov ecx, dword [edi + 0x1c]
mov eax, dword [ecx]
mov dword [ebp - 4], 0xffffffff
call dword [eax + 0x18]
mov esi, dword [ebp - 0x20]
test eax, eax
jne 0x4cc2f6
push eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x1c]
push ebx
add eax, esi
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, eax
xor edx, edx
test ecx, ecx
mov eax, 0x80004005
cmovne eax, edx
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
test ecx, ecx
je 0x4cc234
jmp 0x4cc2f9
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
add dword [ecx], edx
test eax, eax
jne 0x4cc322
test edx, edx
je 0x4cc31e
mov eax, dword [ebp + 0xc]
add esi, edx
sub eax, edx
mov dword [ebp - 0x20], esi
mov dword [ebp + 0xc], eax
mov ecx, 0x100000
jne 0x4cc1f0
mov al, 1
jmp 0x4cc32d
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x4cc32b
mov dword [ecx], eax
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d6fd3
mov esp, ebp
pop ebp
ret 0x10
Function at 0x4ce8b0
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x516718
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x5500a4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov edi, dword [ebp + 0x10]
mov ecx, edi
mov esi, dword [ebp + 0xc]
call fcn.0040a730
test al, al
jne 0x4ce90a
cmp byte [ebp + 8], al
jne 0x4ce911
mov eax, dword [ebx]
test eax, eax
je 0x4cea71
cmp byte [eax + 0xa5], 0
je 0x4cea71
xor al, al
jmp 0x4cea87
mov ecx, esi
call fcn.0040a730
test al, al
jne 0x4cea71
push esi
call fcn.004140d0
add esp, 4
test al, al
je 0x4ce939
push esi
push edi
call fcn.004ce4e0
jmp 0x4cea6d
push 0xb
mov ecx, esi
call fcn.0040a750
push eax
mov ecx, edi
call fcn.0040a750
mov ebx, dword [sym.imp.KERNEL32.dll_MoveFileExW]
push eax
call ebx
test eax, eax
je 0x4ce95e
mov al, 1
jmp 0x4cea6d
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x59], 0
call fcn.0040a890
mov dword [ebp - 4], 0
lea edx, [ebp - 0x58]
mov ecx, edi
call fcn.0041c200
movzx ecx, byte [ebp - 0x59]
test al, al
mov edx, 1
cmovne ecx, edx
mov dword [ebp - 0x60], ecx
lea ecx, [ebp - 0x40]
call fcn.0040a890
mov byte [ebp - 4], 1
lea edx, [ebp - 0x40]
mov ecx, esi
call fcn.0041c200
test al, al
jne 0x4ce9ab
cmp byte [ebp - 0x60], al
je 0x4ce9e7
push 0xb
lea ecx, [ebp - 0x40]
call fcn.0040a750
push eax
lea ecx, [ebp - 0x58]
call fcn.0040a750
push eax
call ebx
test eax, eax
je 0x4ce9e7
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.0040a7c0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.0040a7c0
mov al, 1
jmp 0x4cea6d
mov ecx, esi
call fcn.0041bba0
cmp eax, 0xffffffff
je 0x4cea50
push esi
lea ecx, [ebp - 0x28]
call fcn.0040a8b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
call fcn.0041bfc0
test al, al
je 0x4cea44
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.0041bc40
test al, al
je 0x4cea44
mov edx, esi
mov ecx, edi
call fcn.0041bc40
lea ecx, [ebp - 0x28]
test al, al
je 0x4cea3d
call fcn.0041bd50
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.0040a7c0
jmp 0x4ce9c5
mov edx, esi
call fcn.0041bc40
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.0040a7c0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.0040a7c0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.0040a7c0
xor al, al
test al, al
jne 0x4cea85
push edi
call fcn.004140d0
add esp, 4
test al, al
je 0x4cea85
mov ecx, edi
call fcn.0041bd50
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d6fd3
mov esp, ebp
pop ebp
ret 0xc