joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4d6f07
Capabilities:
Check os version
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
mov eax, dword [0x71906c]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x144]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0x118
lea eax, [ebp - 0x11c]
push 0
push eax
call fcn.00507100
add esp, 0xc
mov dword [ebp - 0x120], 0x11c
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x11c], 5
jg 0x4d6f6a
cmp dword [ebp - 0x118], 2
jg 0x4d6f6a
mov al, 1
jmp 0x4d6f6c
xor al, al
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042d065
leave
ret

Function at 0x4d71ca
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6a0
mov eax, dword [0x71906c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor eax, eax
push edi
mov dword [ebp - 0x69c], esi
lea edi, [ebp - 0x18]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x284]
mov edi, 0x208
push edi
push 0
push eax
call fcn.00507100
add esp, 0xc
lea eax, [ebp - 0x284]
mov ebx, 0x104
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 3
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.0051b73f
push edi
lea eax, [ebp - 0x694]
push 0
push eax
call fcn.00507100
push edi
lea eax, [ebp - 0x48c]
push 0
push eax
call fcn.00507100
xor eax, eax
push 0x64
push eax
mov dword [ebp - 0x698], eax
mov dword [ebp - 0x69c], eax
mov dword [ebp - 0x6a0], eax
lea eax, [ebp - 0x7c]
push eax
call fcn.00507100
add esp, 0x30
lea eax, [ebp - 0x48c]
push ebx
push eax
lea eax, [ebp - 0x6a0]
push eax
lea eax, [ebp - 0x69c]
push eax
lea eax, [ebp - 0x698]
push eax
push ebx
lea eax, [ebp - 0x694]
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x4d72ba
push dword [ebp - 0x698]
lea eax, [ebp - 0x7c]
push str._08X
push eax
call fcn.004d78f3
add esp, 0xc
and dword [esi + 0x10], 0
lea ecx, [ebp - 0x7c]
mov dword [esi + 0x14], 0xf
lea edx, [ecx + 1]
mov byte [esi], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4d72ce
sub ecx, edx
lea eax, [ebp - 0x7c]
push ecx
push eax
mov ecx, esi
call fcn.00406e90
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042d065
leave
ret
Function at 0x4d758e
Capabilities:
Get common file path
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3100
call fcn.0042e3a0
mov eax, dword [0x71906c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, 0x104
lea eax, [ebp - 0x108]
push esi
xor ebx, ebx
mov edi, ecx
push ebx
push eax
mov dword [ebp - 0x3100], edi
call fcn.00507100
push esi
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.00507100
add esp, 0x18
lea eax, [ebp - 0x108]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
movsx eax, byte [ebp - 0x108]
push eax
push str.._c:
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.0040ce10
add esp, 0x10
lea eax, [ebp - 0x20c]
push ebx
push ebx
push 3
push ebx
push 3
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4d7624
mov al, 1
jmp 0x4d772d
push 0x2710
lea eax, [ebp - 0x30ec]
mov dword [ebp - 0x30fc], ebx
push ebx
push eax
call fcn.00507100
push 0x3e8
lea eax, [ebp - 0x9dc]
push ebx
push eax
call fcn.00507100
push 0x3e8
lea eax, [ebp - 0x5f4]
push ebx
push eax
call fcn.00507100
add esp, 0x24
mov dword [ebp - 0x30f0], ebx
lea eax, [ebp - 0x30fc]
mov dword [ebp - 0x30f8], ebx
mov dword [ebp - 0x30f4], ebx
push ebx
push eax
push 0x2710
lea eax, [ebp - 0x30ec]
push eax
push 0xc
lea eax, [ebp - 0x30f8]
push eax
push 0x2d1400
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x4d76a6
mov bl, 2
jmp 0x4d7724
lea eax, [ebp - 0x5f4]
push eax
push ebx
push dword [ebp - 0x30dc]
lea eax, [ebp - 0x30ec]
push eax
call fcn.004d773c
lea eax, [ebp - 0x9dc]
push eax
push 1
push dword [ebp - 0x30d4]
lea eax, [ebp - 0x30ec]
push eax
call fcn.004d773c
lea ecx, [ebp - 0x5f4]
add esp, 0x20
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4d76e7
sub ecx, edx
lea eax, [ebp - 0x5f4]
push ecx
push eax
mov ecx, edi
call fcn.004d4cfe
lea edx, [ebp - 0x9dc]
lea edi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4d7708
mov ecx, dword [ebp - 0x3100]
lea eax, [ebp - 0x9dc]
sub edx, edi
push edx
push eax
call fcn.004d4cfe
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, bl
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042d065
leave
ret

Function at 0x4d86d8
Capabilities:
Check mutex on windows

Disassembly:
push 0x1c
mov eax, 0x67e299
call fcn.0042db94
mov esi, ecx
lea ecx, [ebp - 0x28]
call fcn.004dbd42
and dword [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.004dbd5b
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0xc
call fcn.004dbd57
push dword [ebp + 8]
and dword [ebp - 0x10], 0
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x18]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [esi], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 0xb7
lea ecx, [ebp - 0x28]
neg eax
sbb eax, eax
inc eax
mov dword [esi + 4], eax
call fcn.004dbd52
call fcn.0042db6e
ret 4
Function at 0x4d88d6
Capabilities:
Create process on windows
Get common file path
Get program files directory

Disassembly:
push 0x210
mov eax, 0x67e2bf
call fcn.0042dbc8
mov esi, dword [ebp + 8]
push 1
push 0
push esi
push 0x69249c
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
xor ebx, ebx
cmp eax, 0x20
setg bl
jle 0x4d8852
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x483
jne 0x4d88ce
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.00507100
add esp, 0xc
lea eax, [ebp - 0x218]
push ebx
push 0x26
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
call fcn.00401c70
push eax
lea ecx, [ebp - 0x21c]
call fcn.0040c320
lea eax, [ebp - 0x218]
mov dword [ebp - 4], ebx
push eax
lea eax, [ebp - 0x21c]
push str.__sInternet_Exploreriexplore.exe_
push eax
call fcn.004d8744
add esp, 0xc
push 1
push ebx
push esi
mov esi, dword [ebp - 0x21c]
push esi
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
lea ecx, [esi - 0x10]
setg bl
call fcn.0040bb50
mov eax, ebx
call fcn.0042db83
ret
push ebp
mov ebp, esp
push 1
xor eax, eax
push eax
push eax
push dword [ebp + 8]
push str.open
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jg 0x4d88f9
pop ebp
jmp 0x4d8812
pop ebp
ret

Function at 0x4d88fb
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x14
mov eax, 0x67e300
call fcn.0042db94
and dword [ebp - 0x20], 0
xor eax, eax
mov ebx, dword [ebp + 8]
and dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 7
mov word [ebx], ax
and dword [ebp - 4], eax
push 0x208
mov dword [ebp - 0x20], 1
call fcn.0042d716
mov edx, eax
xor eax, eax
pop ecx
mov ecx, 0x82
mov dword [ebp - 0x14], edx
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, 0x20019
mov dword [ebp - 0x1c], edi
lea eax, [ebp - 0x18]
push eax
push edi
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
test esi, esi
jne 0x4d8a01
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x104
push eax
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x14]
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
test esi, esi
jne 0x4d89f8
cmp dword [ebp - 0x10], 0x104
jbe 0x4d89c9
push dword [ebp - 0x14]
call fcn.0042d711
mov eax, dword [ebp - 0x10]
xor ecx, ecx
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042d716
mov edi, eax
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x14], edi
push eax
push esi
push edi
call fcn.0040cda0
add esp, 0x14
jmp 0x4d89cc
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push edi
push 0
push 0
push dword [ebp + 0x14]
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x10]
mov ecx, ebx
mov esi, eax
push edi
call fcn.00404e30
push edi
call fcn.0042d711
mov edi, dword [ebp - 0x1c]
pop ecx
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 2
pop eax
cmp esi, eax
jne 0x4d8a23
cmp dword [ebp + 0xc], reloc.OLEAUT32.dll_SysReAllocString
jne 0x4d8a23
cmp edi, 0x20019
jne 0x4d8a23
mov edi, 0x20119
jmp 0x4d8948
mov eax, ebx
call fcn.0042db6e
ret
Function at 0x4db95a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edx, ecx
cmp byte [edx + 4], 0
je 0x4db98a
push esi
xor esi, esi
cmp dword [edx + 0x3cc], esi
jle 0x4db989
mov ecx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
sub edi, ecx
mov al, byte [edi + ecx]
xor byte [ecx], al
inc ecx
inc esi
cmp esi, dword [edx + 0x3cc]
jl 0x4db979
pop edi
pop esi
pop ebp
ret 8

Function at 0x4dbbab
Capabilities:
Encode data using base64

Disassembly:
push 0x10
mov eax, 0x67e42c
call fcn.0042db94
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov edi, ebx
mov eax, dword [ebp + 8]
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], 0xf
mov byte [eax], bl
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], 1
cmp dword [ebp + 0x10], ebx
je 0x4dbd36
mov eax, dword [ebp + 0x10]
push 3
pop esi
mov ecx, dword [ebp + 0xc]
dec eax
mov dword [ebp + 0x10], eax
mov al, byte [ecx]
mov byte [ebp + edi - 0x14], al
inc edi
mov dl, byte [ebp - 0x13]
inc ecx
mov dword [ebp + 0xc], ecx
mov ch, byte [ebp - 0x12]
mov cl, byte [ebp - 0x14]
mov byte [ebp - 0xf], ch
mov byte [ebp - 0xd], dl
mov byte [ebp - 0xe], cl
cmp edi, esi
jne 0x4dbc7c
mov esi, dword [ebp + 8]
mov al, cl
shr al, 2
and cl, 3
mov byte [ebp - 0x18], al
mov edi, ebx
shl cl, 4
mov al, dl
shr al, 4
add cl, al
mov al, ch
mov byte [ebp - 0x17], cl
mov cl, dl
and cl, 0xf
shr al, 6
shl cl, 2
add cl, al
mov al, ch
and al, 0x3f
mov byte [ebp - 0x16], cl
mov byte [ebp - 0x15], al
cmp dword [0x7193d0], 0x10
mov ecx, 0x7193bc
movzx eax, byte [ebp + edi - 0x18]
cmovae ecx, dword [0x7193bc]
movzx eax, byte [eax + ecx]
mov ecx, esi
push eax
call fcn.00418990
inc edi
cmp edi, 4
jl 0x4dbc44
mov dl, byte [ebp - 0xd]
mov edi, ebx
mov cl, byte [ebp - 0xe]
mov ch, byte [ebp - 0xf]
push 3
pop esi
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x4dbbe6
mov dword [ebp + 0x10], edi
test edi, edi
je 0x4dbd33
mov eax, edi
cmp edi, esi
jge 0x4dbcb2
cmp eax, esi
jae 0x4dbd3c
mov byte [ebp + eax - 0x14], bl
inc eax
cmp eax, esi
jl 0x4dbc9a
mov ch, byte [ebp - 0x12]
mov dl, byte [ebp - 0x13]
mov cl, byte [ebp - 0x14]
mov al, cl
and cl, 3
shr al, 2
mov byte [ebp - 0x18], al
mov al, dl
shr al, 4
and dl, 0xf
shl cl, 4
add cl, al
shl dl, 2
mov al, ch
mov byte [ebp - 0x17], cl
shr al, 6
and ch, 0x3f
add dl, al
mov byte [ebp - 0x15], ch
lea eax, [edi + 1]
mov byte [ebp - 0x16], dl
mov dword [ebp - 0x14], eax
test eax, eax
jle 0x4dbd1e
mov esi, dword [ebp + 8]
mov edi, eax
cmp dword [0x7193d0], 0x10
mov ecx, 0x7193bc
movzx eax, byte [ebp + ebx - 0x18]
cmovae ecx, dword [0x7193bc]
movzx eax, byte [eax + ecx]
mov ecx, esi
push eax
call fcn.00418990
inc ebx
cmp ebx, edi
jl 0x4dbcef
mov edi, dword [ebp + 0x10]
push 3
pop esi
cmp edi, esi
jge 0x4dbd33
sub esi, edi
mov ecx, dword [ebp + 8]
push 0x3d
call fcn.00418990
sub esi, 1
jne 0x4dbd24
mov eax, dword [ebp + 8]
call fcn.0042db6e
ret
call fcn.0042d840
int3
Function at 0x4dd9a0
Capabilities:
Encrypt data using camellia

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x67e7a3
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x71906c]
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 dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x64
call fcn.00407190
push 0x7007f4
lea ecx, [ebp - 0x6c]
call fcn.00406990
mov dword [ebp - 4], 0
lea eax, [ebp - 0x84]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp - 0x14]
mov edx, dword [edx]
mov ecx, dword [eax + 0x5c]
mov eax, dword [edx + 8]
call eax
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x8c], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x8c]
push edx
lea eax, [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x64
call fcn.004dd0b0
mov ecx, eax
call fcn.004068d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x84]
call fcn.00403290
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.00403290
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.0042d065
mov esp, ebp
pop ebp
ret
Function at 0x4df170
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x64]
add ecx, 2
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x64]
mov ax, word [edx]
mov word [ebp - 0x6a], ax
add dword [ebp - 0x64], 2
cmp word [ebp - 0x6a], 0
jne 0x4df188
mov ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x68]
sar ecx, 1
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x70]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
add eax, 1
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042d716
add esp, 4
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
add eax, 1
push eax
push 0
mov ecx, dword [ebp - 8]
push ecx
call fcn.0040cda0
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 4]
add ecx, 1
push ecx
mov edx, dword [ebp - 8]
push edx
call fcn.00518e66
add esp, 0xc
mov byte [ebp - 9], 1
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
jmp 0x4df21f
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 4]
jg 0x4df28d
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
movzx edx, word [ecx + eax*2]
cmp edx, 0x5c
jne 0x4df28b
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov dx, word [ecx + eax*2]
mov word [ebp - 0x18], dx
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
mov word [edx + ecx*2], ax
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4df274
push 0
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4df274
mov byte [ebp - 9], 0
jmp 0x4df28d
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov dx, word [ebp - 0x18]
mov word [ecx + eax*2], dx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x14], eax
jmp 0x4df216
mov eax, dword [ebp - 8]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x60]
push ecx
call fcn.0042d711
add esp, 4
mov al, byte [ebp - 9]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4e03f0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x67ec00
mov eax, dword fs:[0]
push eax
sub esp, 0x2c0
mov eax, dword [0x71906c]
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
push 0x67
push 0x6f
push 0x6c
push 0x74
push 0x6e
push 0x65
push 0x74
push 0x6e
push 0x6f
push 0x43
push 0x70
push 0x74
push 0x74
push 0x48
push 0x77
push 0x6f
push 0x68
push 0x53
push 0x695c40
lea eax, [ebp - 0x28]
push eax
call fcn.004cc186
add esp, 0x50
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00406770
mov byte [ebp - 4], 1
push 0x691f74
lea ecx, [ebp - 0x40]
call fcn.00408830
push 0x691f78
lea ecx, [ebp - 0x40]
call fcn.00408830
push 0x7006d0
lea ecx, [ebp - 0x40]
call fcn.00408830
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x40]
call fcn.0042c8d6
lea ecx, [ebp - 0x40]
call fcn.00408820
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4e0513
push 0x208
push 0
lea eax, [ebp - 0x248]
push eax
call fcn.00507100
add esp, 0xc
push 0x104
lea eax, [ebp - 0x248]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x248]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea ecx, [ebp - 0x40]
call fcn.004df530
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x40]
call fcn.00408830
push 0x7006d0
lea ecx, [ebp - 0x40]
call fcn.00408830
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x40]
call fcn.0042c8d6
lea ecx, [ebp - 0x40]
call fcn.00408820
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4e052f
mov byte [ebp - 0x2ca], 1
jmp 0x4e0536
mov byte [ebp - 0x2ca], 0
mov al, byte [ebp - 0x2ca]
mov byte [ebp - 0x2c9], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00404d80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00404d80
mov al, byte [ebp - 0x2c9]
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.0042d065
mov esp, ebp
pop ebp
ret
Function at 0x4e2900
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
cmp dword [ebp + 8], 0
je 0x4e2918
cmp dword [ebp + 0xc], 0
jne 0x4e2922
mov eax, 1
jmp 0x4e2a1d
push 0
push 0x80
push 3
push 0
push 5
push SysReAllocString
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x4e2952
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4e2a1d
mov dword [ebp - 0xc], 0
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
jne 0x4e297b
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4e2a1d
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
jb 0x4e2991
mov eax, 8
jmp 0x4e2a1d
cmp dword [ebp + 0x10], 0
je 0x4e299f
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 0xc]
add eax, 1
push eax
call fcn.0042d716
add esp, 4
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x60]
mov dword [ecx], edx
mov eax, dword [ebp - 0xc]
add eax, 1
push eax
push 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push edx
call fcn.00507100
add esp, 0xc
mov dword [ebp - 0x18], 0
push 0
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x4e2a02
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4e2a1d
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0xc]
je 0x4e2a11
mov eax, 1
jmp 0x4e2a1d
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x4e2ff0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
cmp dword [ebp + 8], 0
je 0x4e300c
mov eax, dword [ebp + 8]
movzx ecx, word [eax]
test ecx, ecx
jne 0x4e3013
mov eax, 1
jmp 0x4e3075
push 0
push 0x80
push 2
push 0
push 0
push 0xc0000000
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x4e3040
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4e3075
push 0
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4e3069
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4e3075
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x4eae70
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
xor edx, edx
mov ecx, edx
mov eax, edx
and ecx, 1
shr eax, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov dword [edx*4 + 0x72b840], eax
inc edx
cmp edx, 0x100
jb 0x4eae72
push esi
mov eax, 0x72b844
mov esi, 0x1c0
mov edx, dword [eax - 4]
lea eax, [eax + 0x10]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x72b840]
mov dword [eax + 0x3ec], edx
mov edx, dword [eax - 0x10]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x72b840]
mov dword [eax + 0x3f0], edx
mov edx, dword [eax - 0xc]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x72b840]
mov dword [eax + 0x3f4], edx
mov edx, dword [eax - 8]
movzx ecx, dl
shr edx, 8
xor edx, dword [ecx*4 + 0x72b840]
mov dword [eax + 0x3f8], edx
sub esi, 1
jne 0x4eaf17
mov dword [0x72b830], 0x4ec4d0
mov dword [0x72b828], 0x4ec4d0
mov dword [0x72b82c], 0x4ec570
call fcn.004ec2e0
mov ecx, dword [0x72b828]
test eax, eax
mov edx, 0x4ec570
cmove ecx, edx
mov dword [0x72b828], ecx
pop esi
ret

Function at 0x4eb0d0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, dword [edi]
test esi, esi
je 0x4eb123
mov ebx, dword [ebp + 0xc]
mov dword [edi], 0
push 0
mov ecx, 0x400000
mov dword [ebp + 0x10], 0
lea eax, [ebp + 0x10]
cmp esi, ecx
push eax
mov eax, esi
cmova eax, ecx
push eax
mov eax, dword [ebp + 8]
push ebx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp + 0x10]
add ebx, ecx
add dword [edi], ecx
sub esi, ecx
test eax, eax
je 0x4eb12a
test ecx, ecx
je 0x4eb123
test esi, esi
jne 0x4eb0e8
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
pop edi
pop esi
pop ebx
pop ebp
jmp dword [sym.imp.KERNEL32.dll_GetLastError]

Function at 0x4eb140
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, dword [edi]
test esi, esi
je 0x4eb193
mov ebx, dword [ebp + 0xc]
mov dword [edi], 0
push 0
mov ecx, 0x400000
mov dword [ebp + 0x10], 0
lea eax, [ebp + 0x10]
cmp esi, ecx
push eax
mov eax, esi
cmova eax, ecx
push eax
mov eax, dword [ebp + 8]
push ebx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp + 0x10]
add ebx, ecx
add dword [edi], ecx
sub esi, ecx
test eax, eax
je 0x4eb19a
test ecx, ecx
je 0x4eb193
test esi, esi
jne 0x4eb158
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
pop edi
pop esi
pop ebx
pop ebp
jmp dword [sym.imp.KERNEL32.dll_GetLastError]