joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10109f5b
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
test edx, edx
je 0x10109f80
movzx eax, byte [ecx]
xor eax, esi
shr esi, 8
movzx eax, al
xor esi, dword [eax*4 + 0x10029890]
inc ecx
sub edx, 1
jne 0x10109f68
mov eax, esi
pop esi
pop ebp
ret 4

Function at 0x1010a0b0
Capabilities:
Get file size
Read file via mapping

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, edx
test edi, edi
je 0x1010a13f
test esi, esi
je 0x1010a12f
push 0
push 0x100080
push 3
push 0
push 1
push SysReAllocString
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x1010a12f
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x1010a0fc
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebx], eax
cmp eax, 0xffffffff
je 0x1010a12f
xor eax, eax
push eax
push eax
push eax
push 2
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov ebx, eax
test ebx, ebx
je 0x1010a12f
push 0
push 0
push 0
push 4
push ebx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
push ebx
mov dword [esi], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi], 0
jne 0x1010a146
cmp dword [edi], 0xffffffff
je 0x1010a13f
push dword [edi]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [edi], 0xffffffff
test esi, esi
je 0x1010a146
and dword [esi], 0
mov eax, dword [esi]
pop edi
pop esi
pop ebx
pop ebp
ret 8

Function at 0x1010a1ae
Capabilities:
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x1019fbfc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x208
xor esi, esi
lea eax, [ebp - 0x20c]
push esi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x210], esi
lea eax, [ebp - 0x210]
mov edx, 0x103
mov ecx, 0x10029c90
push eax
call fcn.1010a16d
mov edi, eax
mov ebx, esi
test edi, edi
js 0x1010a296
mov ebx, dword [ebp - 0x210]
lea eax, [ebp - 0x20c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x1010a231
mov edx, 0x103
cmp eax, edx
jae 0x1010a231
lea ecx, [ebx + eax]
cmp ecx, edx
jb 0x1010a236
mov edi, 0x80004005
test edi, edi
js 0x1010a296
push 0x5c
pop ecx
mov word [ebp + eax*2 - 0x20c], cx
mov edx, 0x104
push 0x10029c90
lea ecx, [ebp - 0x20c]
call fcn.1003fcc9
test eax, eax
js 0x1010a296
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [0x101a0f14], eax
test eax, eax
je 0x1010a29c
push 0x10029ca8
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x1010a29c
push 2
mov ecx, edi
call dword [0x101a27b8]
call edi
mov esi, eax
jmp 0x1010a29c
mov dword [0x101a0f14], esi
mov ecx, dword [ebp - 4]
pop edi
mov dword [0x101a0f10], esi
xor ecx, ebp
pop esi
pop ebx
call fcn.101637b0
leave
ret
Function at 0x1010bbbf
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push 0
push 0
xor edi, edi
push 5
inc edi
push 0x800
mov esi, edi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov dword [ebp - 4], eax
test eax, eax
jle 0x1010bc42
add eax, eax
push eax
push 0
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
test ebx, ebx
je 0x1010bc42
push dword [ebp - 4]
push ebx
push 5
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
cmp dword [ebp - 4], eax
jne 0x1010bc15
push ebx
call sub.msvcrt.dll__wtol
pop ecx
mov esi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp esi, edi
je 0x1010bc42
cmp esi, 2
je 0x1010bc42
lea eax, [esi - 0x32]
cmp eax, 9
ja 0x1010bc32
cmp esi, 0x37
jne 0x1010bc42
cmp esi, 0x1f4
jl 0x1010bc44
cmp esi, 0x258
jge 0x1010bc44
xor edi, edi
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret

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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, edx
mov dword [ebp - 0xc], ecx
push esi
push edi
mov edi, dword [ebx + 4]
test edi, edi
je 0x1010e687
lea esi, [ebx + 0x14]
mov eax, dword [esi + 4]
dec edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 8], eax
test eax, eax
je 0x1010e632
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 8
push 0
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [esi + 0x10], eax
test eax, eax
je 0x1010e5d6
cmp dword [ebp + 8], 1
jne 0x1010e632
mov ecx, dword [ebp - 0xc]
mov edx, esi
call fcn.100d6d3d
test eax, eax
jne 0x1010e5b3
and dword [esi + 0x24], eax
test byte [esi + 0x3c], 1
je 0x1010e5dd
mov edi, dword [esi + 0x40]
jmp 0x1010e5e8
cmp dword [esi + 0x24], 0
je 0x1010e5a8
lea ecx, [ebp - 4]
xor edx, edx
push ecx
push ecx
lea eax, [esi + 0xc]
inc edx
push eax
mov ecx, esi
call fcn.100d7122
test eax, eax
js 0x1010e5d6
cmp dword [esi + 0xc], 0
jne 0x1010e632
xor eax, eax
jmp 0x1010e68a
xor edx, edx
mov ecx, esi
call fcn.1010e691
mov edi, eax
test edi, edi
je 0x1010e5d6
lea eax, [ebp - 4]
mov ecx, edi
push eax
push 4
lea eax, [ebp - 0x10]
push eax
push 2
call dword [0x101a27b8]
call edi
test eax, eax
je 0x1010e5d6
cmp dword [ebp - 0x10], 0x10000
jne 0x1010e5d6
lea ecx, [ebp - 4]
push ecx
push 4
lea eax, [esi + 0xc]
mov ecx, edi
push eax
push 1
call dword [0x101a27b8]
call edi
test eax, eax
je 0x1010e5d6
cmp dword [esi + 0xc], 0
je 0x1010e5d6
mov edi, dword [ebp - 0x14]
add esi, 0x78
test edi, edi
jne 0x1010e55f
cmp dword [ebp + 8], 1
jne 0x1010e687
inc edi
cmp dword [ebx + 4], 1
jbe 0x1010e687
lea esi, [ebx + 0x8c]
cmp dword [esi + 0x10], 0
je 0x1010e67e
xor eax, eax
test edi, edi
je 0x1010e67e
mov edx, dword [esi + 0xc]
lea ecx, [ebx + 0x20]
cmp dword [ecx], edx
je 0x1010e670
inc eax
add ecx, 0x78
cmp eax, edi
jb 0x1010e662
jmp 0x1010e67e
xor edx, edx
mov ecx, esi
inc edx
call fcn.1010e466
and dword [esi + 0xc], 0
inc edi
add esi, 0x78
cmp edi, dword [ebx + 4]
jb 0x1010e650
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x1010e6d2
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
mov dword [ebp - 4], edx
push edi
and dword [eax], ebx
mov edi, dword [edx + 4]
mov dword [ebp - 8], ecx
test edi, edi
jne 0x1010e6f8
xor eax, eax
inc eax
jmp 0x1010e7b9
push esi
lea esi, [edx + 0x14]
mov ecx, dword [esi + 0x10]
dec edi
test ecx, ecx
je 0x1010e7a5
mov eax, dword [esi + 0x18]
test al, 4
jne 0x1010e7a2
or eax, 4
mov dword [ebp - 0x30], 0x24
mov dword [esi + 0x18], eax
xor eax, eax
cmp dword [esi + 0x24], 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov eax, dword [edx]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
je 0x1010e764
lea eax, [ebp - 0x30]
xor edx, edx
push eax
inc edx
mov ecx, esi
call fcn.1004b343
cmp eax, 0x80004001
je 0x1010e75e
test eax, eax
js 0x1010e7bf
test eax, eax
js 0x1010e79f
jmp 0x1010e790
test byte [esi + 0x3c], 2
jne 0x1010e7a2
xor edx, edx
mov ecx, esi
inc edx
call fcn.1010e691
mov dword [ebp - 0xc], eax
test eax, eax
je 0x1010e79f
lea ecx, [ebp - 0x30]
push ecx
push 1
mov ecx, eax
call dword [0x101a27b8]
call dword [ebp - 0xc]
test eax, eax
je 0x1010e7bf
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x1010e79c
cmp eax, 0xc
jb 0x1010e7bf
mov dword [esi + 0x20], eax
mov edx, dword [ebp - 4]
add ebx, dword [esi + 0x20]
add esi, 0x78
test edi, edi
jne 0x1010e6fc
mov eax, dword [ebp + 8]
mov dword [eax], ebx
xor eax, eax
inc eax
pop esi
pop edi
pop ebx
leave
ret 4
and dword [esi + 0x18], 0xfffffffb
xor eax, eax
jmp 0x1010e7b8
Function at 0x101108ad
Capabilities:
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x1019fbfc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x208
lea eax, [ebp - 0x20c]
mov ebx, edx
push 0
push eax
mov edi, ecx
call sub.msvcrt.dll_memset
xor eax, eax
add esp, 0xc
xor esi, esi
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x214], eax
test edi, edi
je 0x10110908
test ebx, ebx
je 0x10110908
push 0x10018fc0
push edi
call sub.msvcrt.dll_wcsstr
pop ecx
pop ecx
test eax, eax
je 0x1011090d
mov esi, 0x80070057
and dword [ebx], 0
test esi, esi
js 0x101109d9
test edi, edi
je 0x1011093f
lea eax, [ebp - 0x214]
mov edx, 0x103
push eax
mov ecx, edi
call fcn.1010a16d
mov esi, eax
mov eax, dword [ebp - 0x214]
mov dword [ebp - 0x210], eax
jmp 0x10110944
mov esi, 0x80070057
test esi, esi
jns 0x10110957
and dword [ebp - 0x210], 0
test esi, esi
js 0x101109d9
push 0x104
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, eax
test ecx, ecx
je 0x10110984
mov edx, 0x103
cmp ecx, edx
jae 0x10110984
mov eax, dword [ebp - 0x210]
add eax, ecx
cmp eax, edx
jb 0x10110989
mov esi, 0x80004005
test esi, esi
js 0x101109d9
push 0x5c
pop eax
mov word [ebp + ecx*2 - 0x20c], ax
mov edx, 0x104
push edi
lea ecx, [ebp - 0x20c]
call fcn.1003fcc9
mov esi, eax
test esi, esi
js 0x101109d9
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
jne 0x101109d7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x101109d9
movzx esi, si
or esi, 0x80070000
jmp 0x101109d9
mov dword [ebx], eax
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101637b0
leave
ret

Function at 0x10110c79
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
xor esi, esi
mov ebx, ecx
and dword [ebp - 4], esi
push edi
mov edi, edx
test edi, edi
jne 0x10110c9b
mov eax, 0x80004003
jmp 0x10110d26
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push 0x1002a198
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x10110ccd
jg 0x10110cc0
mov esi, eax
jmp 0x10110cc9
movzx esi, ax
or esi, 0x80070000
test esi, esi
js 0x10110d24
lea eax, [ebp - 8]
mov dword [ebp - 8], 4
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push 0x10
push ebx
push 0
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x10110d03
jg 0x10110cf8
mov esi, eax
jmp 0x10110d1b
movzx esi, ax
or esi, 0x80070000
jmp 0x10110d1b
cmp dword [ebp - 0xc], 4
jne 0x10110d16
cmp dword [ebp - 8], 4
jne 0x10110d16
mov eax, dword [ebp - 0x10]
mov dword [edi], eax
jmp 0x10110d1b
mov esi, 0x8007000d
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret
Function at 0x101110b3
Capabilities:
Read .ini file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
push 0x1003bb6b
push 0x2000
mov edi, edx
mov dword [ebp - 0xc], ecx
call fcn.10163d16
mov ebx, eax
mov esi, ebx
mov dword [ebp - 0x18], ebx
neg esi
pop ecx
sbb esi, esi
and esi, 0x7ff8fff2
add esi, 0x8007000e
pop ecx
test ebx, ebx
je 0x10111113
push edi
push 0x1000
push ebx
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
test eax, eax
je 0x10111245
cmp eax, 0xffe
jne 0x10111113
mov esi, 0x8007007a
test esi, esi
js 0x10111245
xor ecx, ecx
mov dword [ebp - 0x10], ecx

Function at 0x10111256
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov ebx, edx
mov eax, ecx
mov esi, ebx
mov dword [ebp - 4], eax
neg esi
sbb esi, esi
and esi, 0x7ff8ffa9
add esi, 0x80070057
test ebx, ebx
je 0x1011128c
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1011128c
mov esi, 0x80070002
test esi, esi
js 0x1011130f
push edi
push 0x1003bb6b
push 0x50
call fcn.10163d16
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x101112be
xor ecx, ecx
mov eax, dword [ecx + 0x101944f8]
add ecx, 0xc
and dword [eax + edi], 0
cmp ecx, 0xf0
jb 0x101112a7
jmp 0x101112c0
xor edi, edi
test edi, edi
jne 0x101112c9
mov esi, 0x8007000e
test esi, esi
js 0x101112f9
mov edx, dword [ebp - 4]
mov ecx, 0x1002a3cc
push edi
call fcn.101110b3
mov esi, eax
test esi, esi
js 0x101112f9
mov edx, dword [ebp - 4]
mov ecx, 0x1002a3b8
push edi
call fcn.101110b3
mov esi, eax
test esi, esi
js 0x101112f9
mov dword [ebx], edi
xor edi, edi
test edi, edi
je 0x1011130e
push 1
mov ecx, edi
call fcn.10111077
push edi
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void__]
pop ecx
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret

Function at 0x10111315
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 8]
mov eax, ecx
push esi
push edi
mov dword [ebp - 8], edx
mov edi, 0x104
push edi
mov edx, ebx
mov dword [ebp - 0xc], eax
call fcn.10113524
mov esi, eax
test esi, esi
js 0x101113c7
push 0x10018fc0
mov edx, edi
mov ecx, ebx
call fcn.1003fcc9
mov esi, eax
test esi, esi
js 0x101113c7
and dword [ebp - 4], 0
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 4]
jne 0x1011135f
sub ecx, edx
sar ecx, 1
sub edi, ecx
mov ecx, ebx
add edi, edi
mov dword [ebp - 4], edi
xor edi, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x1011137d
sub ecx, edx
lea eax, [ebp - 4]
push eax
sar ecx, 1
lea eax, [ebx + ecx*2]
push eax
lea eax, [ebp - 0x10]
push eax
push 2
push dword [ebp - 8]
push edi
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x101113bc
jg 0x101113b1
mov esi, eax
jmp 0x101113c7
movzx esi, ax
or esi, 0x80070000
jmp 0x101113c7
cmp dword [ebp - 0x10], 1
je 0x101113c7
mov esi, 0x8000ffff
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8
Function at 0x10113524
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov ebx, edx
mov dword [ebp - 8], ecx
push edi
mov edi, dword [ebp + 8]
mov ecx, ebx
mov edx, edi
call fcn.101134d7
mov esi, eax
test esi, esi
js 0x101135b9
and dword [ebp - 4], 0
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 4]
jne 0x1011354f
sub ecx, edx
sar ecx, 1
sub edi, ecx
mov ecx, ebx
add edi, edi
mov dword [ebp - 4], edi
xor edi, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x1011356d
sub ecx, edx
lea eax, [ebp - 4]
push eax
sar ecx, 1
lea eax, [ebx + ecx*2]
push eax
lea eax, [ebp - 0xc]
push eax
push 2
push 0x10018dfc
push edi
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x101135ae
jg 0x101135a3
mov esi, eax
jmp 0x101135b9
movzx esi, ax
or esi, 0x80070000
jmp 0x101135b9
cmp dword [ebp - 0xc], 1
je 0x101135b9
mov esi, 0x8000ffff
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 4
Function at 0x10113f25
Capabilities:
Encode data using base64

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
cmp dword [ebp + 8], 0
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
je 0x101140ae
test ebx, ebx
je 0x101140ae
lea eax, [edi + 3]
cmp eax, edi
jb 0x101140a7
push 3
xor edx, edx
pop ecx
div ecx
push 4
pop ecx
mul ecx
test edx, edx
ja 0x101140a7
jb 0x10113f6f
cmp eax, 0xffffffff
ja 0x101140a7
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x101140a7
push ecx
push 0
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov esi, eax
mov eax, dword [ebp + 8]
mov dword [eax], esi
test esi, esi
jne 0x10113f98
mov eax, 0x8007000e
jmp 0x101140b3
push 3
pop ecx
cmp edi, ecx
jl 0x10114019
mov eax, edi
xor edx, edx
div ecx
imul ecx, eax, 0xfffffffd
add edi, ecx
mov dword [ebp - 8], edi
mov edi, eax
movzx edx, byte [ebx]
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
add ebx, 3
shl edx, 8
add edx, ecx
shl edx, 8
add edx, eax
mov eax, edx
shr eax, 0x12
mov ax, word [eax*2 + 0x1002adb0]
mov word [esi], ax
mov eax, edx
shr eax, 0xc
and eax, 0x3f
mov ax, word [eax*2 + 0x1002adb0]
mov word [esi + 2], ax
mov eax, edx
shr eax, 6
and edx, 0x3f
and eax, 0x3f
mov ax, word [eax*2 + 0x1002adb0]
mov word [esi + 4], ax
mov ax, word [edx*2 + 0x1002adb0]
mov word [esi + 6], ax
add esi, 8
sub edi, 1
jne 0x10113faf
mov edi, dword [ebp - 8]
cmp edi, 2
jne 0x10114062
movzx ecx, byte [ebx]
movzx eax, byte [ebx + 1]
shl ecx, 8
add ecx, eax
mov eax, ecx
shr eax, 0xa
push 0x3d
mov ax, word [eax*2 + 0x1002adb0]
mov word [esi], ax
mov eax, ecx
shr eax, 4
and eax, 0x3f
and ecx, 0xf
mov ax, word [eax*2 + 0x1002adb0]
mov word [esi + 2], ax
mov ax, word [ecx*8 + 0x1002adb0]
mov word [esi + 4], ax
pop eax
jmp 0x10114092
cmp edi, 1
jne 0x1011409e
movzx ecx, byte [ebx]
mov eax, ecx
and ecx, 3
shr eax, 2
shl ecx, 5
push 0x3d
mov ax, word [eax*2 + 0x1002adb0]
mov word [esi], ax
mov ax, word [ecx + 0x1002adb0]
mov word [esi + 2], ax
pop eax
mov word [esi + 4], ax
mov word [esi + 6], ax
xor eax, eax
mov word [esi + 8], ax
jmp 0x101140a3
xor eax, eax
mov word [esi], ax
xor eax, eax
jmp 0x101140b3
mov eax, 0x80070216
jmp 0x101140b3
mov eax, 0x80070057
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x1011e901
Capabilities:
Get file size

Disassembly:
push 0x14
mov eax, 0x10174966
call fcn.10163eac
mov ebx, ecx
cmp dword [ebx + 0x14], 8
jb 0x1011e919
mov eax, dword [ebx]
jmp 0x1011e91b
mov eax, ebx
xor edi, edi
push edi
push 0x80
push 3
push edi
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], edi
cmp esi, 0xffffffff
je 0x1011ea38
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], edi
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, 0xffffffff
jne 0x1011e965
push ecx
mov edx, 0xa2
jmp 0x1011ea3e
cmp dword [ebp - 0x10], 0
ja 0x1011ea46
xor eax, eax
push eax
push eax
push eax
push 2
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 1
test eax, eax
je 0x1011ea30
cmp eax, 0xffffffff
je 0x1011ea30
sub esp, 0xc
lea ecx, [ebp - 0x18]
push 1
push eax
call fcn.1003fe80
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x18]
test esi, esi
jne 0x1011e9ba
push ecx
mov edx, 0xbe
jmp 0x1011ea3e
cmp edi, 2
jbe 0x1011e9e3
cmp byte [esi], 0xff
jne 0x1011e9e3
cmp byte [esi + 1], 0xfe
jne 0x1011e9e3
shr edi, 1
cmp edi, 1
jbe 0x1011ea13
lea eax, [edi - 1]
push eax
lea eax, [esi + 2]
push eax
lea ecx, [ebx + 0x1c]
call fcn.10045aa5
jmp 0x1011ea13
cmp edi, 3
jbe 0x1011ea08
cmp byte [esi], 0xef
jne 0x1011ea08
cmp byte [esi + 1], 0xbb
jne 0x1011ea08
cmp byte [esi + 2], 0xbf
jne 0x1011ea08
lea eax, [edi - 3]
push eax
lea eax, [esi + 3]
push eax
push 0xfde9
jmp 0x1011ea0c
push edi
push esi
push 3
mov ecx, ebx
call fcn.1011e88c
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
lea ecx, [ebp - 0x1c]
call fcn.1003fe40
lea ecx, [ebp - 0x20]
call fcn.1003fe40
call fcn.10163e7a
ret
push ecx
mov edx, 0xb3
jmp 0x1011ea3e
push ecx
mov edx, 0x9a
mov ecx, dword [ebp + 4]
call fcn.1011f9ba
push 0x800700df
lea ecx, [ebp - 0x14]
call fcn.1003f8d8
push 0x10191580
mov eax, ecx
push eax
call sub.msvcrt.dll__CxxThrowException
int3

Function at 0x1011f08e
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
lea eax, [ebp - 4]
xor ebx, ebx
push eax
push 1
push ebx
push 0x1002ca08
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 4], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1011f0ec
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 4
push eax
lea eax, [ebp - 8]
mov dword [ebp - 8], ebx
push eax
push ebx
push ebx
push 0x1002ca8c
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1011f0e3
cmp dword [ebp - 8], ebx
setne bl
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [0x101923c0]
cmp eax, 0x101923c0
je 0x1011f115
test byte [eax + 0x1c], 4
je 0x1011f115
movzx ecx, bl
mov edx, 0x1002cad0
push ecx
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x11
pop ecx
call fcn.100401e4
mov al, bl
pop ebx
leave
ret
Function at 0x101238df
Capabilities:
Get system information on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x44
push edi
push 0x1c
lea eax, [ebp - 0x20]
mov dword [ebp - 4], edx
mov edi, ecx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
jne 0x10123903
push 0x19
pop ecx
int 0x29
test byte [ebp - 0xc], 0x44
je 0x1012394c
push ebx
push esi
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ebx, dword [ebp - 0x40]
xor edx, edx
mov esi, ebx
neg esi
and esi, edi
lea ecx, [ebx - 1]
mov eax, ecx
and ecx, dword [ebp - 4]
and eax, edi
dec ecx
add eax, ebx
add eax, ecx
div ebx
xor edx, edx
mov ecx, eax
mov eax, dword [ebp - 4]
div ebx
add ecx, eax
je 0x1012394a
xor eax, eax
lock or dword [esi], eax
add esi, ebx
sub ecx, 1
jne 0x1012393e
pop esi
pop ebx
pop edi
leave
ret

Function at 0x10125632
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
mov ax, dx
mov dword [ebp - 4], edx
push esi
movzx esi, ax
lea edx, [ebp - 4]
shr ax, 4
inc ax
push edi
movzx ebx, ax
mov word [ebp - 4], ax
call fcn.1012557e
mov edi, eax
mov dword [ebp - 4], edi
test edi, edi
je 0x101256ea
push 6
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
je 0x101256ea
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x101256ea
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x101256ea
push ebx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [ebp + 0xc]
cmp cx, 2
jb 0x101256ea
add ecx, 0xffff
and esi, 0xf
jmp 0x101256b6
movzx eax, word [edi]
lea edi, [edi + eax*2]
add edi, 2
sub esi, 1
jns 0x101256ad
movzx esi, word [edi]
test esi, esi
je 0x101256e4
movzx eax, cx
cmp esi, eax
jbe 0x101256cb
mov esi, eax
mov edx, dword [ebp + 8]
lea ecx, [edi + 2]
add esi, esi
xor eax, eax
push esi
push ecx
push edx
mov word [esi + edx], ax
call sub.msvcrt.dll_memcpy
add esp, 0xc
shr esi, 1
mov eax, esi
jmp 0x101256ec
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 8