joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401f10
Capabilities:
Get disk information
Inspect load icon resource
Read file on windows

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x148
push ebx
push esi
push edi
push 0x65
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
lea ecx, [esp + 0xc]
call fcn.00401000
lea ecx, [esp + 0x50]
push 0x104
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x50]
lea ecx, [esp + 0xc]
push edx
call fcn.004012b0
test eax, eax
je 0x402021
lea eax, [esp + 0x50]
push 0x404030
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
add esp, 8
test esi, esi
je 0x402084
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x10]
call fcn.00401290
mov edi, dword [sym.imp.MSVCRT.dll_fseek]
sub eax, 8
push 0
push eax
push esi
call edi
mov ebx, dword [sym.imp.MSVCRT.dll_fread]
push esi
push 1
lea edx, [esp + 0x24]
push 8
push edx
call ebx
mov eax, dword [esp + 0x2c]
push 0
push eax
push esi
call edi
push esi
push 1
lea ecx, [esp + 0x48]
push 0x38
push ecx
call ebx
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x50]
add esp, 0x3c
test eax, eax
mov eax, dword [esp + 0x10]
push edx
push eax
jne 0x401ffe
sub esp, 0x38
mov ecx, 0xe
lea esi, [esp + 0x58]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x50]
call fcn.00401800
jmp 0x402084
sub esp, 0x38
mov ecx, 0xe
lea esi, [esp + 0x58]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x50]
call fcn.00401a90
jmp 0x402084
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_1
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edi, eax
mov esi, 1
xor ebx, ebx
test edi, esi
je 0x40206a
mov dl, bl
lea ecx, [esp + 0x10]
add dl, 0x41
push edx
call sub.MFC42.DLL_CString::operator_1
push 0x40412c
lea ecx, [esp + 0x14]
call fcn.004020e2
lea ecx, [esp + 0xc]
mov eax, dword [esp + 0x10]
push eax
push 0
call fcn.00401cf0
add esi, esi
inc ebx
cmp ebx, 0x1a
jl 0x402039
lea ecx, [esp + 0xc]
call fcn.00401040
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
call fcn.00401030
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10

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
mov ebx, 0x40de38
nop
mov ecx, 0x1e0262b0
nop
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x43304e
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x433024
nop
nop
mov eax, section..data
nop
mov ebx, 0x4304d8
nop
nop
mov ecx, 0x2a8f281b
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x433084
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
cmp eax, ebx
nop
jne 0x43306c
nop
nop
nop
nop
nop
nop
nop
nop
nop
popal
jmp 0x431219
Function at 0x42e000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
nop
push 4
nop
nop
nop
nop
nop
nop
pop edi
nop
nop
nop
cmp eax, 0
nop
nop
je 0x42e072
nop
nop
nop
nop
nop
mov ebx, 0x407ef8
mov ecx, ebx
nop
nop
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
div edi
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x61c35e18
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
add eax, edi
loop 0x42e060
nop
nop
nop
nop
mov eax, section..data
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
nop
je 0x42e0d2
mov ebx, 0x42cd70
nop
nop
nop
nop
nop
mov ecx, ebx
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
push eax
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
div edi
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
mov esi, 0x4b450372
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
add eax, edi
nop
loop 0x42e0c0
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x401219
Function at 0x4011b0
Capabilities:
Create thread

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
push 0
push 0
push eax
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
ret 8

Function at 0x4019c0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
push ebx
push esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0x20
lea eax, [ebp - 0x104]
push str.hra_u.dll
push eax
xor ebx, ebx
call dword [0x409e38]
add esp, 0xc
lea ecx, [ebp - 0x104]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x401a72
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.StartWork
push esi
call edi
mov dword [0x40a3dc], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push str.StopWork
push esi
call edi
test eax, eax
mov dword [0x40a3e0], eax
pop edi
je 0x401a4f
mov eax, dword [0x40a3dc]
test eax, eax
je 0x401a4f
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edx, [ebp - 0x104]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x402500
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp + 0x10]
mov ecx, 0xfe
and eax, 0xff
mov esi, dword [ebp + 0xc]
cdq
idiv ecx
inc dl
test esi, esi
jbe 0x40253a
mov eax, dword [ebp + 8]
mov cl, byte [eax]
sub cl, dl
xor cl, dl
mov byte [eax], cl
inc eax
dec esi
jne 0x40252e
pop esi
pop ebp
ret
Function at 0x402540
Capabilities:
Contain obfuscated stackstrings
Get common file path
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
push esi
push edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov al, 0x65
mov cl, 0x6c
mov byte [ebp - 0x13], al
mov byte [ebp - 0xc], al
mov byte [ebp - 8], al
mov byte [ebp - 4], al
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x47
push eax
push str.kernel32.dll
mov byte [ebp - 0x12], 0x74
mov byte [ebp - 0x11], 0x4d
mov byte [ebp - 0x10], 0x6f
mov byte [ebp - 0xf], 0x64
mov byte [ebp - 0xe], 0x75
mov byte [ebp - 0xd], cl
mov byte [ebp - 0xb], 0x46
mov byte [ebp - 0xa], 0x69
mov byte [ebp - 9], cl
mov byte [ebp - 7], 0x4e
mov byte [ebp - 6], 0x61
mov byte [ebp - 5], 0x6d
mov byte [ebp - 3], 0x41
mov byte [ebp - 2], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, eax
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x117]
mov byte [ebp - 0x118], 0
push 0x104
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [ebp - 0x118]
push ecx
push 0
stosb byte es:[edi], al
call edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edx, [ebp - 0x21c]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x21c]
push str.SOFTWARE.LOG
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
lea ecx, [ebp - 0x21c]
push 3
lea edx, [ebp - 0x118]
push ecx
push edx
call esi
test eax, eax
je 0x40264d
push 5
lea eax, [ebp - 0x21c]
push 0
push eax
call esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x402fc0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
push ebx
push edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov bl, 0x74
mov cl, 0x72
mov al, 0x65
mov byte [ebp - 0x17], bl
mov byte [ebp - 0x13], bl
mov byte [ebp - 0xd], bl
mov byte [ebp - 0x1b], cl
mov byte [ebp - 0x1a], cl
mov byte [ebp - 0x19], al
mov byte [ebp - 0x12], cl
mov byte [ebp - 0xe], al
mov byte [ebp - 0xa], al
mov byte [ebp - 9], cl
mov byte [ebp - 5], al
xor ebx, ebx
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x12b]
mov byte [ebp - 0x12c], bl
mov dl, 0x53
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x12c]
push eax
push ecx
mov byte [ebp - 0x24], dl
mov byte [ebp - 0x23], 0x59
mov byte [ebp - 0x22], dl
mov byte [ebp - 0x21], 0x54
mov byte [ebp - 0x20], 0x45
mov byte [ebp - 0x1f], 0x4d
mov byte [ebp - 0x1e], 0x5c
mov byte [ebp - 0x1d], 0x43
mov byte [ebp - 0x1c], 0x75
mov byte [ebp - 0x18], 0x6e
mov byte [ebp - 0x16], 0x43
mov byte [ebp - 0x15], 0x6f
mov byte [ebp - 0x14], 0x6e
mov byte [ebp - 0x11], 0x6f
mov byte [ebp - 0x10], 0x6c
mov byte [ebp - 0xf], dl
mov byte [ebp - 0xc], 0x5c
mov byte [ebp - 0xb], dl
mov byte [ebp - 8], 0x76
mov byte [ebp - 7], 0x69
mov byte [ebp - 6], 0x63
mov byte [ebp - 4], 0x73
mov byte [ebp - 3], 0x5c
mov byte [ebp - 2], bl
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [ebp - 0x12c]
push str.Nationaldgu
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x12c]
push eax
push 0xf003f
push ebx
push ecx
push 0x80000002
call dword [0x409df0]
neg eax
sbb eax, eax
pop edi
inc eax
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x404420
Capabilities:
Get common file path

Disassembly:
sub esp, 0x104
lea eax, [esp]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [esp]
push str.Program_FilesInternet_Exploreriexplore.exe
push ecx
mov byte [esp + 0xa], 0
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [esp + 0x108]
lea edx, [esp]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, 1
add esp, 0x104
ret
Function at 0x402510
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
mov dword [esp + 0x10], eax
lea eax, [ebp - 8]
mov dword [esp + 8], eax
lea eax, [ebp - 0xc]
mov dword [esp + 4], eax
lea eax, [ebp - 0x10]
mov dword [esp], eax
mov dword [esp + 0xc], 0
call sub.msvcrt.dll___getmainargs
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0x3c]
cmp word [eax + edx + 0x5c], 2
sete al
movzx eax, al
add eax, 1
mov dword [esp], eax
call sub.msvcrt.dll___set_app_type
mov eax, dword [ebp - 8]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.004025d0
mov dword [esp], eax
call sub.msvcrt.dll_exit
nop
nop
nop
nop
push ebp
mov ebp, esp
call sub.msvcrt.dll___iob_func
mov edx, dword [ebp + 8]
pop ebp
shl edx, 5
add eax, edx
ret
Function at 0x430000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43000c
nop
nop
nop
nop
pop eax
nop
nop
add eax, 0x403d7a
nop
sub eax, 0x403d20
nop
nop
mov ebx, dword [eax]
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
mov edx, dword [eax + 8]
nop
xor dword [ebx], edx
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
nop
nop
cmp ebx, ecx
jl 0x430030
nop
nop
nop
nop
nop
nop
nop
add eax, 0xc
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
popal
nop
nop
jmp fcn.00401219
Function at 0x581970
Capabilities:
Encode data using xor

Disassembly:
push ss
mov ah, al
add byte [eax], cl
add byte [eax], bh
sub dword [esp + eax*8 + 1], 0x1898700
movsb byte es:[edi], byte [esi]
les esp, [ecx]
sub eax, 0x8c801100
les ecx, [eax + 8]
add byte [ecx + 0x1806c81], bl
or byte [eax], al
mov dword [ecx], eax
inc esp
les esp, [ecx]
add byte [eax], al
or byte [esi + ebp*8], ch
les eax, [eax]
add byte [eax], al
sbb al, byte [ebx + 0x821c484]
pop ecx
add dword [eax], eax
add ah, al
add dword [eax - 0x117c6700], ebp
les ebp, [ebp + 8]
add byte [ecx + 0x21486081], al
or byte [eax], al
add byte [eax], al
rol ah, cl
add dword [eax], ecx
add byte [ecx], dl
call 0x858de51
add byte [edi - 0x7f], dl
dec esp
les eax, [ecx]
add byte [ecx + eax], ch
add ah, al
add ebp, edi
add byte [eax + 0x8c42a00], cl
mov byte [eax], al
sub al, ah
or byte [eax], al
add byte [ecx + 0x1a0e401], cl
or byte [eax], al
or byte [edx + 0x821c4f6], al
add byte [ecx], al
sbb eax, 0x800c400
add byte [ebx + eax*4], ch
les esp, es:[eax]
or byte [esi], bl
adc byte [eax - 0x51df3b12], al
add byte [ecx], dl
add al, byte [eax]
invalid
Function at 0x681a40
Capabilities:
Encode data using xor
Read .ini file

Disassembly:
mov edx, dword [0x80a950]
mov ecx, dword [esp - 0x14]
sub esp, 0x14
cmp edx, 0xbb40e64e
push esi
mov esi, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x14]
je 0x681a67
test edx, 0xffff0000
jne 0x681a89
mov eax, ecx
xor eax, esi
xor eax, edi
cmp eax, 0xbb40e64e
je 0x681a7c
test edx, 0xffff0000
jne 0x681a81
mov eax, 0xbb40e64f
mov edx, eax
mov dword [0x80a950], edx
cmp edx, 0xbb40e64e
je 0x681aa3
test edx, 0xffff0000
je 0x681aa3
not edx
mov dword [0x80a954], edx
jmp 0x681aca
xor ecx, esi
xor ecx, edi
cmp ecx, 0xbb40e64e
je 0x681ab7
test edx, 0xffff0000
jne 0x681abc
mov ecx, 0xbb40e64f
mov dword [0x80a950], ecx
not ecx
mov dword [0x80a954], ecx
push 0x80a7b8
push 5
xor eax, eax
push 0x80a7b8
push 0x80a7b8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [0x80a950]
mov edi, eax
mov eax, dword [esp + 8]
xor edi, eax
cmp esi, 0xbb40e64e
je 0x681b1c
test esi, 0xffff0000
je 0x681b1c
not esi
mov dword [0x80a954], esi
jmp 0x681baa
push ebx
lea eax, [esp + 0x10]
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov ebx, dword [sym.imp.GDI32.dll_Ellipse]
mov ebp, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [esp + 0x10], 5
mov ecx, dword [0x80a670]
push 0xd
push 0xc
push 0x32
push 0x19
push ecx
call ebx
call ebp
mov ecx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [esp + 0x14]
xor esi, ecx
xor esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x10]
xor eax, esi
dec ecx
mov dword [esp + 0x10], ecx
jne 0x681b3d
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
xor edi, ecx
mov esi, ecx
xor edi, edx
xor esi, edx
pop ebp
cmp edi, 0xbb40e64e
pop ebx
je 0x681b97
test dword [0x80a950], 0xffff0000
jne 0x681b9c
mov edi, 0xbb40e64f
mov dword [0x80a950], edi
not edi
mov dword [0x80a954], edi
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, esi
pop edi
pop esi
add esp, 0x14
ret

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

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

Disassembly:
cmp ecx, dword [0x54e938]
jne 0x401320
repz ret
jmp fcn.004e7cd3

Function at 0x401a90
Capabilities:
Parse pe header

Disassembly:
mov ecx, dword [ecx + 4]
mov eax, 0x5a4d
cmp word [ecx], ax
je 0x401aa0
xor al, al
ret
mov eax, dword [ecx + 0x3c]
add eax, ecx
cmp dword [eax], 0x4550
jne 0x401a9d
mov ecx, 0xe0
cmp word [eax + 0x14], cx
jne 0x401a9d
mov edx, 0x10b
cmp word [eax + 0x18], dx
sete al
ret

Function at 0x402e50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ecx
test ebx, ebx
jne 0x402e6b
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x78]
mov edx, dword [esi]
mov edx, dword [edx]
push edi
push eax
mov ecx, esi
call edx
mov edi, eax
mov dword [ebp - 8], edi
test edi, edi
je 0x402f10
mov eax, dword [ebp + 8]
cmp eax, 0xffff
ja 0x402ea4
pop edi
mov word [ebx], ax
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [edi + 0x20]
mov eax, dword [esi]
mov edx, dword [eax]
push ecx
mov ecx, esi
call edx
mov ebx, eax
mov eax, dword [edi + 0x18]
lea eax, [ebx + eax*4]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 4], eax
cmp ebx, eax
je 0x402f10
jmp 0x402ec7
mov eax, dword [ebp - 4]
sub eax, ebx
sar eax, 2
cdq
sub eax, edx
mov edx, dword [esi]
mov edx, dword [edx]
sar eax, 1
lea edi, [ebx + eax*4]
mov eax, dword [edi]
push eax
mov ecx, esi
call edx
mov ecx, dword [ebp + 8]
mov dl, byte [ecx]
test dl, dl
je 0x402ef5
cmp dl, byte [eax]
jne 0x402ef5
mov dl, byte [ecx + 1]
inc ecx
inc eax
test dl, dl
jne 0x402ee8
movzx edx, byte [eax]
movzx eax, byte [ecx]
sub eax, edx
je 0x402f1b
test eax, eax
jle 0x402f08
lea ebx, [edi + 4]
jmp 0x402f0b
mov dword [ebp - 4], edi
cmp ebx, dword [ebp - 4]
jne 0x402ec4
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [ebp - 8]
mov ecx, dword [ebx + 0x24]
mov eax, dword [esi]
mov edx, dword [eax]
push ecx
mov ecx, esi
call edx
sub edi, dword [ebp - 0xc]
mov ecx, dword [ebp + 0xc]
sar edi, 2
mov ax, word [eax + edi*2]
add ax, word [ebx + 0x10]
pop edi
pop esi
mov word [ecx], ax
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x43bfc0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x404
mov eax, dword [0x54e938]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor bl, bl
cmp esi, 0x804
ja 0x43bffd
je case.0x43bff6.1027
lea eax, [esi - 0x403]
cmp eax, 0x2a
ja case.0x43bff6.1032
movzx eax, byte [eax + 0x43c050]
jmp dword [eax*4 + 0x43c048]
cmp esi, 0xc0a
je case.0x43bff6.1027
push 0x400
lea ecx, [ebp - 0x404]
push 0
push ecx
call fcn.004e15a0
add esp, 0xc
push 0x200
lea edx, [ebp - 0x404]
push edx
push 3
push esi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x43c036
mov bl, 1
mov ecx, dword [ebp - 4]
pop esi
mov al, bl
xor ecx, ebp
pop ebx
call fcn.00401316
mov esp, ebp
pop ebp
ret
Function at 0x47dff1
Capabilities:
Delete file

Disassembly:
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 4]
xor ebx, ebx
cmp eax, ebx
je 0x47e00a
push eax
call dword [sym.imp.GDI32.dll_CloseEnhMetaFile]
mov dword [esi + 8], eax
mov dword [esi + 4], ebx
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x47e01b
push eax
call dword [sym.imp.GDI32.dll_DeleteEnhMetaFile]
mov dword [esi + 8], ebx
cmp dword [esi + 0x1c], ebx
je 0x47e048
cmp dword [esi + 0x20], 8
push edi
lea edi, [esi + 0xc]
jb 0x47e02e
mov eax, dword [edi]
jmp 0x47e030
mov eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [edi + 0x14], 8
mov dword [edi + 0x10], ebx
jb 0x47e042
mov edi, dword [edi]
xor eax, eax
mov word [edi], ax
pop edi
mov dword [esi], ebx
mov dword [esi + 0x28], ebx
pop esi
pop ebx
ret

Function at 0x47ee50
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x503f0b
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x54e938]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x14], esi
xor ebx, ebx
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
xor eax, eax
mov dword [esi + 0x20], 7
mov dword [esi + 0x1c], ebx
mov word [esi + 0xc], ax
mov eax, 1
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], ebx
mov dword [esi + 0x48], eax
lea edi, [esi + 0x4c]
push 8
mov dword [ebp - 4], ebx
mov dword [edi], ebx
call fcn.004051ca
add esp, 4
cmp eax, ebx
je 0x47eefe
mov dword [edi], eax
xor ecx, ecx
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov ecx, dword [edi]
mov dword [ecx], edi
xor eax, eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x10]
push edx
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], ebx
call fcn.004e102a
push 0x53b460
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], vtable.std::bad_alloc.0
call fcn.004e1169
int3
Function at 0x484ce9
Capabilities:
Encode data using xor

Disassembly:
mov ecx, 0x484a08
sub edx, 0x58dea984
call fcn.00484d25
add edx, edx
xor dword [esi], ecx
mov ebx, 0x22f513cf
add esi, 2
and edx, ebx
cmp esi, eax
jl fcn.00484ce9
dec ebx
add ebx, 0x98abae6b
sub edx, ebx
ret
Function at 0xb3130
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, dword [esp + 0x10]
test ebp, ebp
jne 0xb3140
lea eax, [ebp + 0xd]
pop ebp
ret 0xc
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push edi
xor edi, edi
mov esi, ebp
lea ecx, [ecx]
push esi
call ebx
inc eax
lea esi, [esi + eax*2]
lea edi, [edi + eax*2]
cmp eax, 1
jne 0xb3150
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push edi
push ebp
push 7
push 0
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
Function at 0xb3710
Capabilities:
Query or enumerate registry key

Disassembly:
sub esp, 0x228
mov eax, dword [0x2d16ec]
xor eax, esp
mov dword [esp + 0x224], eax
mov eax, dword [esp + 0x22c]
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov edx, dword [edi + 4]
lea ecx, [esp + 0x14]
xor esi, esi
push ecx
mov ecx, dword [edi]
or edx, 0x2001f
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
call fcn.000b36a0
mov ebp, eax
cmp ebp, esi
je 0xb3774
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0xb376d
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebp
jmp 0xb380d
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x18]
push esi
push esi
push esi
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x44]
push ecx
push esi
push edx
mov dword [esp + 0x40], 0x100
call ebx
test eax, eax
jne 0xb37da
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x18]
call fcn.000b3710
mov ebp, eax
cmp ebp, esi
jne 0xb375e
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x18]
push esi
push esi
push esi
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x44]
push eax
push esi
push ecx
mov dword [esp + 0x40], 0x100
call ebx
test eax, eax
je 0xb37a0
mov eax, dword [esp + 0x14]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, esi
je 0xb37ef
push eax
call ebp
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x24]
mov eax, edi
mov dword [esp + 0x18], esi
call fcn.000b3890
mov edi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0xb380b
push eax
call ebp
mov eax, edi
mov ecx, dword [esp + 0x234]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.001f8a41
add esp, 0x228
ret 4