joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4a4fb8
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
mov byte [ebp - 1], al
cmp dword [0x51d38c], 0
jne 0x4a4ff9
mov dl, 1
mov eax, dword [0x4a4eb8]
call fcn.004a5694
mov dword [0x51d38c], eax
cmp byte [ebp - 1], 0
je 0x4a4ff9
mov eax, dword [0x51d38c]
call fcn.004a5dc4
test al, al
jne 0x4a4ff9
push 0x4a5008
call sub.kernel32.dll_OutputDebugStringA
mov eax, dword [0x51d38c]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
pop ecx
pop ecx
pop ebp
ret

Function at 0x4a5610
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
mov dword [ebp - 4], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
sub eax, dword [edx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [ebp - 0x14]
xor edx, edx
push edx
push eax
call fcn.0049ea64
fstp qword [ebp - 0x10]
wait
cmp dword [ebp - 0x14], 0x4d3f6400
jbe 0x4a5663
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0xc]
mov dword [eax + 0xc], edx
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
fld qword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
Function at 0x4a5884
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
mov dword [ebp - 0x20], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.0040588c
xor eax, eax
push ebp
push 0x4a59c3
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 0
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x14], eax
call fcn.00403490
push 0
push 0xffffffffffffffff
push 0
push 0
call sub.kernel32.dll_CreateEventA
mov dword [ebp - 0x18], eax
xor eax, eax
push ebp
push 0x4a59a6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_ResetEvent
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov cl, 1
mov dl, 1
mov eax, dword [0x4a4e40]
call fcn.004a59d4
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
add eax, 8
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x68], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x64], edx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
call fcn.004a5ce4
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0x10]
call fcn.004a5cc8
mov eax, dword [ebp - 0x10]
call fcn.004a4cd4
push 0x64
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_WaitForSingleObject
mov dword [ebp - 0x1c], eax
mov eax, dword [0x518d28]
mov eax, dword [eax]
call fcn.00466104
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x1c]
ja 0x4a5963
cmp dword [ebp - 0x1c], 0
jne 0x4a5933
cmp dword [ebp - 0x1c], 0
je 0x4a5977
call fcn.0040e3c0
mov eax, dword [ebp - 4]
fstp qword [eax + 8]
wait
jmp 0x4a597b
mov byte [ebp - 9], 1
mov eax, dword [ebp - 4]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
call fcn.004a566c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a59ad
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
Function at 0x4a6208
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
mov dword [ebp - 4], eax
mov byte [ebp - 5], 0
mov eax, dword [ebp - 4]
call fcn.0040569c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x20
jge 0x4a625c
mov eax, dword [ebp - 0x10]
test eax, eax
jle 0x4a62a5
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], 1
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx - 1]
xor al, byte [ebp - 5]
and eax, 0xff
mov al, byte [eax + 0x512e24]
mov byte [ebp - 5], al
inc dword [ebp - 0xc]
dec dword [ebp - 0x18]
jne 0x4a6237
jmp 0x4a62a5
mov eax, dword [ebp - 0x10]
test eax, eax
jns 0x4a6266
add eax, 0x1f
sar eax, 5
inc eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], 1
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x10]
jge 0x4a62a5
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov al, byte [eax + edx - 1]
xor al, byte [ebp - 5]
and eax, 0xff
mov al, byte [eax + 0x512e24]
mov byte [ebp - 5], al
mov eax, dword [ebp - 0x14]
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x10]
jl 0x4a627c
mov al, byte [ebp - 5]
mov esp, ebp
pop ebp
ret

Function at 0x4a62ac
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [0x513324]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 8], 0x20
jge 0x4a630e
mov eax, dword [ebp - 8]
dec eax
test eax, eax
jl 0x4a6365
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x10]
shr eax, 0x18
mov eax, dword [eax*4 + 0x512f24]
mov edx, dword [ebp - 0x10]
shl edx, 8
xor eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
movzx edx, byte [edx + ecx]
xor eax, edx
mov dword [ebp - 0x10], eax
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x4a62e0
jmp 0x4a6365
mov eax, dword [ebp - 8]
test eax, eax
jns 0x4a6318
add eax, 0x1f
sar eax, 5
inc eax
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
dec eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x4a6365
mov eax, dword [ebp - 0x10]
shr eax, 0x18
mov eax, dword [eax*4 + 0x512f24]
mov edx, dword [ebp - 0x10]
shl edx, 8
xor eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
movzx edx, byte [edx + ecx]
xor eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
add dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jl 0x4a6333
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
shr eax, 0x18
mov eax, dword [eax*4 + 0x512f24]
mov edx, dword [ebp - 0x10]
shl edx, 8
xor eax, edx
mov edx, dword [ebp - 0xc]
shr edx, 0x18
xor eax, edx
mov dword [ebp - 0x10], eax
shl dword [ebp - 0xc], 8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jne 0x4a636a
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
Function at 0x4b2090
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov dword [edx], eax
mov eax, dword [ebp - 4]
add eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov dword [edx + 4], eax
mov eax, dword [ebp - 4]
add eax, 8
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov dword [edx + 8], eax
mov eax, dword [ebp - 4]
add eax, 0xc
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
xor eax, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx*4 + 0xc]
shl eax, 0x18
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov edx, dword [edx + ecx*4 + 0xc]
shr edx, 8
or eax, edx
mov dword [ebp - 0x14], eax
xor eax, eax
mov al, byte [ebp - 0x14]
mov eax, dword [eax*4 + 0x513818]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
shr eax, 8
and eax, 0xff
mov eax, dword [eax*4 + 0x513818]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x513818]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
shr eax, 0x18
and eax, 0xff
mov eax, dword [eax*4 + 0x513818]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
shl eax, 8
mov edx, dword [ebp - 0x1c]
shr edx, 0x18
or eax, edx
xor eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
shl edx, 0x10
mov ecx, dword [ebp - 0x20]
shr ecx, 0x10
or edx, ecx
xor eax, edx
mov edx, dword [ebp - 0x24]
shl edx, 0x18
mov ecx, dword [ebp - 0x24]
shr ecx, 8
or edx, ecx
xor eax, edx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
xor eax, dword [edx + ecx*4]
mov edx, dword [ebp - 0x10]
xor eax, dword [edx*4 + 0x51339c]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov dword [edx + ecx*4 + 0x10], eax
inc dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx*4 + 4]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
xor eax, dword [edx + ecx*4 + 0x10]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov dword [edx + ecx*4 + 0x14], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx*4 + 8]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
xor eax, dword [edx + ecx*4 + 0x14]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov dword [edx + ecx*4 + 0x18], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx*4 + 0xc]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
xor eax, dword [edx + ecx*4 + 0x18]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov dword [edx + ecx*4 + 0x1c], eax
add dword [ebp - 0xc], 4
cmp dword [ebp - 0xc], 0x28
jl 0x4b20dc
mov esp, ebp
pop ebp
ret
Function at 0x4c0770
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
test esi, esi
js 0x4c078d
shr esi, 2
mov edi, dword [ebx + esi*4]
dec esi
push edi
jns 0x4c0786
mov dword [ebp + 0xc], esp
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
dec eax
test eax, eax
jl 0x4c07d6
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov al, byte [eax + edx]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
xor al, byte [edx + ecx]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov byte [edx + ecx], al
inc dword [ebp - 0x14]
dec dword [ebp - 0x18]
jne 0x4c07b3
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x1c]
mov esp, ebp
pop ebp
ret 8
Function at 0x4c6de0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4c6f06
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
xor eax, eax
push ebp
push 0x4c6eaf
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004c5f2c
lea eax, [ebp - 0xc]
call fcn.004c63a8
mov eax, dword [ebp - 0xc]
call fcn.0040c2fc
test al, al
je 0x4c6e59
mov eax, dword [ebp - 0xc]
call fcn.0040589c
push eax
call sub.kernel32.dll_DeleteFileA
test eax, eax
jne 0x4c6e59
mov eax, dword [ebp - 4]
mov edx, 0x4c6f20
call fcn.00405420
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c6ee8
mov eax, dword [ebp - 4]
call fcn.004c644c
test al, al
jne 0x4c6e6f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c6ee8
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0xc]
call fcn.0040c6a0
mov eax, dword [ebp - 0x18]
call fcn.0040c330
push 0x4c6f44
mov ecx, dword [ebp - 0xc]
mov dl, 1
mov eax, dword [0x4c3490]
call fcn.004c370c
mov dword [0x51d494], eax
call fcn.004c6000
call fcn.004c6294
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c6ee4
mov byte [ebp - 5], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c6f0d
lea eax, [ebp - 0x18]
call fcn.004053cc
lea eax, [ebp - 0xc]
call fcn.004053cc
ret

Function at 0x4c9014
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040588c
xor eax, eax
push ebp
push 0x4c9128
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
call fcn.004053cc
mov eax, dword [ebp - 4]
call fcn.0040c2fc
test al, al
je 0x4c9102
lea ecx, [ebp - 0xc]
mov edx, 0x4c9140
mov eax, dword [ebp - 4]
call fcn.0040c60c
xor eax, eax
push ebp
push 0x4c90ac
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4c9154
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
call fcn.004c1cc4
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
call fcn.0047cdb8
mov eax, dword [ebp - 0xc]
call fcn.0040589c
push eax
call sub.kernel32.dll_DeleteFileA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c9102
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c912f
lea eax, [ebp - 0x14]
call fcn.004053cc
lea eax, [ebp - 0xc]
call fcn.004053cc
lea eax, [ebp - 4]
call fcn.004053cc
ret
Function at 0x4c9d28
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 4
push 0
push 0
dec ecx
jne 0x4c9d30
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4c9ebc
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x1c]
call fcn.0049eca0
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.0047d018
push dword [ebp - 0x18]
push 0x4c9ed4
push 0x4c9ee4
push 0x4c9ef0
lea eax, [ebp - 0xc]
mov edx, 4
call fcn.0040575c
mov eax, dword [ebp - 0xc]
call fcn.0040c2fc
test al, al
je 0x4c9e94
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.0040c7f4
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
mov edx, 0x4c9f08
call fcn.004056e8
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 8]
mov eax, dword [ebp - 0xc]
call fcn.0040c60c
xor eax, eax
push ebp
push 0x4c9e60
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4c9f18
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
push eax
call fcn.004c1cc4
push 0
mov eax, dword [ebp - 4]
add eax, 0x18
push eax
push 0
mov ecx, 0x4c9f30
mov edx, 0x4c9f48
mov eax, dword [ebp - 8]
call fcn.0049f9bc
push 0
mov eax, dword [ebp - 4]
add eax, 0x14
push eax
push 0
mov edx, 0x4c9f48
mov ecx, 0x4c9f60
mov eax, dword [ebp - 8]
call fcn.0049f9bc
push 0
mov eax, dword [ebp - 4]
add eax, 0x1c
push eax
push 0
mov ecx, 0x4c9f74
mov edx, 0x4c9f88
mov eax, dword [ebp - 8]
call fcn.0049f9bc
mov eax, dword [ebp - 8]
call fcn.0040589c
push eax
call sub.kernel32.dll_DeleteFileA
mov eax, dword [ebp - 4]
cmp dword [eax + 0x18], 0
je 0x4c9e4e
mov eax, dword [ebp - 4]
cmp dword [eax + 0x14], 0
jne 0x4c9e56
mov eax, dword [ebp - 0xc]
call fcn.0040c56c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c9e94
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c9ec3
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.004053f0
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.004053f0
ret
Function at 0x4d6f00
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d6f66
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5188b8]
cmp byte [eax], 0
je 0x4d6f34
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_GetFileAttributesW
mov dword [ebp - 8], eax
jmp 0x4d6f50
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 4]
call fcn.00405604
mov eax, dword [ebp - 0xc]
call fcn.0040589c
push eax
call sub.kernel32.dll_GetFileAttributesA
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d6f6d
lea eax, [ebp - 0xc]
call fcn.004053cc
ret

Function at 0x4d6f74
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d6fe5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5188b8]
cmp byte [eax], 0
je 0x4d6faf
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_SetFileAttributesW
mov dword [ebp - 0xc], eax
jmp 0x4d6fcf
mov eax, dword [ebp - 8]
push eax
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 4]
call fcn.00405604
mov eax, dword [ebp - 0x10]
call fcn.0040589c
push eax
call sub.kernel32.dll_SetFileAttributesA
mov dword [ebp - 0xc], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d6fec
lea eax, [ebp - 0x10]
call fcn.004053cc
ret

Function at 0x4d6ff4
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d7065
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5188b8]
cmp byte [eax], 0
je 0x4d702f
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_CreateDirectoryW
mov dword [ebp - 0xc], eax
jmp 0x4d704f
mov eax, dword [ebp - 8]
push eax
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 4]
call fcn.00405604
mov eax, dword [ebp - 0x10]
call fcn.0040589c
push eax
call sub.kernel32.dll_CreateDirectoryA
mov dword [ebp - 0xc], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d706c
lea eax, [ebp - 0x10]
call fcn.004053cc
ret
Function at 0x4d7074
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d70fd
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5188b8]
cmp byte [eax], 0
je 0x4d70b2
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_MoveFileW
mov dword [ebp - 0xc], eax
jmp 0x4d70e2
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.00405604
mov eax, dword [ebp - 0x10]
call fcn.0040589c
push eax
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 4]
call fcn.00405604
mov eax, dword [ebp - 0x14]
call fcn.0040589c
push eax
call sub.kernel32.dll_MoveFileA
mov dword [ebp - 0xc], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d7104
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.004053f0
ret

Function at 0x4d710c
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d71a2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5188b8]
cmp byte [eax], 0
je 0x4d7147
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_GetCurrentDirectoryW
mov dword [ebp - 0xc], eax
jmp 0x4d718c
lea eax, [ebp - 0x10]
mov edx, 0x104
call fcn.00405a2c
mov eax, dword [ebp - 0x10]
call fcn.0040589c
push eax
mov eax, dword [ebp - 0x10]
call fcn.0040569c
push eax
call sub.kernel32.dll_GetCurrentDirectoryA_1
mov edx, eax
lea eax, [ebp - 0x10]
call fcn.00405a2c
mov al, byte [0x4d71b0]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004d6ad8
mov dword [ebp - 0xc], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d71a9
lea eax, [ebp - 0x10]
call fcn.004053cc
ret
Function at 0x4d73b8
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
call fcn.00408afc
cmp ax, 0xffff
jne 0x4d73e2
mov eax, dword [ebp - 8]
neg eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
shr eax, 4
and eax, 0xffff
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 8]
and eax, 0xf
mov dword [ebp - 0x20], eax
push 6
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_FindResourceA
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x4d74b2
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_LoadResource
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x4d74b2
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_LockResource
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
dec eax
test eax, eax
jl 0x4d7468
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax]
add eax, eax
add eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x4d744f
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax]
mov dword [ebp - 0x10], eax
add dword [ebp - 0x1c], 2
cmp dword [ebp - 0xc], 0
je 0x4d74b2
cmp dword [ebp + 8], 0
jle 0x4d74b2
mov eax, dword [ebp + 8]
dec eax
mov edx, dword [ebp - 0x10]
call fcn.0042ea70
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jle 0x4d74a6
mov ecx, dword [ebp - 0x10]
add ecx, ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
call fcn.00408b10
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov word [eax + edx*2], 0
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret 4

Function at 0x4d81e8
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
xor edx, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d8252
push dword fs:[eax]
mov dword fs:[eax], esp
push 6
lea eax, [ebp - 0xf]
push eax
push 0x1004
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_GetLocaleInfoA_1
lea eax, [ebp - 0x14]
lea edx, [ebp - 0xf]
mov ecx, 7
call fcn.0040564c
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_GetACP
mov edx, eax
pop eax
call fcn.0040bef4
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d8259
lea eax, [ebp - 0x14]
call fcn.004053cc
ret