joyce8/EMBER2024-capa huggingface dataset:
Function at 0x11144
Capabilities:
Parse pe header

Disassembly:
push 0x34
push KeUnstackDetachProcess
call fcn.000195f0
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], ecx
cmp dword [ebp + 8], ecx
je 0x11268
mov edi, dword [ebp + 0xc]
cmp edi, ecx
je 0x11268
cmp dword [ebp + 0x10], ecx
je 0x11268
mov dword [ebp - 4], ecx
mov dword [ebp - 0x30], edi
cmp word [edi], 0x5a4d
jne 0x11264
mov eax, dword [edi + 0x3c]
add eax, edi
mov dword [ebp - 0x34], eax
cmp dword [eax], 0x4550
jne RtlEqualUnicodeString
mov eax, dword [eax + 0x80]
mov dword [ebp - 0x38], eax
cmp eax, ecx
je 0x11264
lea esi, [eax + edi]
mov dword [ebp - 0x28], esi
mov ebx, dword [esi + 0x10]
mov dword [ebp - 0x3c], ebx
mov eax, dword [esi]
cmp eax, ecx
jne 0x111d5
cmp dword [esi + 4], ecx
jne 0x111d5
cmp dword [esi + 8], ecx
jne 0x111d5
cmp dword [esi + 0xc], ecx
jne 0x111d5
cmp dword [esi + 0x10], ecx
je 0x11264
mov dword [ebp - 0x20], eax
cmp eax, ecx
jne 0x111e2
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
add eax, edi
mov dword [ebp - 0x40], eax
mov eax, dword [eax]
cmp eax, ecx
jne 0x111fe
inc dword [ebp - 0x1c]
add esi, 0x14
mov dword [ebp - 0x28], esi
inc dword [ebp - 0x24]
jmp 0x111b7
test eax, eax
js IoGetCurrentProcess
add eax, edi
mov dword [ebp - 0x44], eax
push dword [ebp + 0x10]
add eax, 2
push eax
call dword [sym.imp.ntoskrnl.exe__stricmp]
pop ecx
pop ecx
test eax, eax
jne 0x11229
mov eax, dword [ebp - 0x1c]
lea eax, [ebx + eax*4]
add eax, dword [ebp + 8]
or dword [ebp - 4], 0xffffffff
jmp 0x1126a
xor ecx, ecx
inc dword [ebp - 0x1c]
add dword [ebp - 0x20], 4
jmp MmSystemRangeStart
or dword [ebp - 4], 0xffffffff
xor eax, eax
call fcn.0001962b
ret 0xc

Function at 0x12818
Capabilities:
Get system information on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x54
and dword [ebp - 0x54], 0
push esi
push edi
push 0x50
pop edx
push 0x13
pop ecx
xor eax, eax
lea edi, [ebp - 0x50]
rep stosd dword es:[edi], eax
lea eax, [ebp - 4]
push eax
push edx
lea eax, [ebp - 0x54]
push eax
push 0x10
mov dword [ebp - 4], edx
call sub.ntoskrnl.exe_ZwQuerySystemInformation
mov eax, dword [ebp - 4]
mov esi, 0x5a544157
push esi
add eax, 0x1000
push eax
push 0
call dword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov edi, eax
test edi, edi
je 0x12884
mov eax, dword [ebp - 4]
push 0
add eax, 0x1000
push eax
push edi
push 0x10
call sub.ntoskrnl.exe_ZwQuerySystemInformation
test eax, eax
jge 0x12884
push esi
push edi
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
xor edi, edi
mov eax, edi
pop edi
pop esi
leave
ret

Function at 0x12a32
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push dword [ebp + 8]
xor esi, esi
push 0x12a10
push esi
push esi
push esi
push 0x1f03ff
lea eax, [ebp + 8]
push eax
call dword [sym.imp.ntoskrnl.exe_PsCreateSystemThread]
push esi
push esi
push dword [ebp + 8]
call dword [sym.imp.ntoskrnl.exe_ZwWaitForSingleObject]
push dword [ebp + 8]
call dword [sym.imp.ntoskrnl.exe_ZwClose]
pop esi
pop ebp
ret 4
Function at 0x1492c
Capabilities:
Get system information on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x1f3a4]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x14]
push eax
push 0xa
lea eax, [ebp - 0x10]
push eax
push 0xb
call sub.ntoskrnl.exe_ZwQuerySystemInformation
cmp eax, 0xc0000004
jne 0x14a16
push ebx
push 0x20736649
push dword [ebp - 0x14]
push 0
call dword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov ebx, eax
test ebx, ebx
je 0x14a10
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push ebx
push 0xb
call sub.ntoskrnl.exe_ZwQuerySystemInformation
test eax, eax
mov dword [ebp - 0x18], eax
jge 0x14997
push 0
push ebx
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov eax, dword [ebp - 0x18]
jmp 0x14a15
mov eax, dword [ebx + 0xc]
push esi
push edi
push 5
mov dword [0x1f41c], eax
mov eax, dword [ebx + 0x10]
pop ecx
mov esi, 0x14912
mov edi, 0x1f520
rep movsd dword es:[edi], dword [esi]
mov dword [0x1f420], eax
lea eax, [ebx + 0x20]
push 0x5c
push eax
movsb byte es:[edi], byte [esi]
call dword [sym.imp.ntoskrnl.exe_strrchr]
test eax, eax
pop ecx
pop ecx
je 0x149f4
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x149cd
mov edi, 0x1f520
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x149dc
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x1f41c]
test eax, eax
pop edi
pop esi
je 0x14989
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx + eax + 0x58]
mov dword [0x1f418], eax
jmp 0x14989
mov eax, 0xc0000023
pop ebx
mov ecx, dword [ebp - 4]
call fcn.000195d3
leave
ret

Function at 0x14a50
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [eax + 0x3c]
add esi, eax
movzx eax, word [esi + 0x14]
push edi
lea edi, [eax + esi + 0x18]
movzx eax, word [esi + 6]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
or ebx, 0xffffffff
cmp eax, dword [edi + 0xc]
jb 0x14ab2
jmp 0x14a9f
mov eax, dword [edi + 0xc]
dec dword [ebp + 8]
cmp dword [ebp + 0xc], eax
jb 0x14a9c
mov ecx, dword [edi + 8]
push 1
push dword [esi + 0x38]
add ecx, eax
push ecx
call fcn.00014a26
cmp dword [ebp + 0xc], eax
jb 0x14aa7
add edi, 0x28
cmp dword [ebp + 8], 0
jne 0x14a7c
jmp 0x14ab0
mov ebx, dword [edi + 0x14]
sub ebx, dword [edi + 0xc]
add ebx, dword [ebp + 0xc]
mov eax, ebx
pop edi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x14cee
Capabilities:
Map section object

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
push esi
push edi
push 0x1f520
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.ntoskrnl.exe_RtlInitAnsiString]
push 1
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.ntoskrnl.exe_RtlAnsiStringToUnicodeString]
push 0x18
pop ebx
push 0x40
pop edi
push 0x100
xor esi, esi
push esi
push esi
push esi
push esi
push esi
push 1
push 1
lea eax, [ebp - 0x14]
mov dword [ebp - 0x2c], eax
mov eax, 0x80
push eax
push esi
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x34]
push ecx
push eax
push 0x1f5a0
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
call dword [sym.imp.ntoskrnl.exe_IoCreateFile]
cmp eax, esi
jl 0x14e11
push dword [0x1f5a0]
lea eax, [ebp - 0x34]
push 0x8000000
push 2
push esi
push eax
push 0xf001f
push 0x1f504
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
call dword [sym.imp.ntoskrnl.exe_ZwCreateSection]
mov edi, eax
cmp edi, esi
jge 0x14dae
push dword [0x1f5a0]
call dword [sym.imp.ntoskrnl.exe_ZwClose]
jmp 0x14e0f
push 2
push 0x100000
push 1
lea eax, [ebp - 4]
push eax
push esi
push 0x3e8
push esi
push 0x1f424
push 0xffffffffffffffff
push dword [0x1f504]
mov dword [ebp - 4], esi
call dword [sym.imp.ntoskrnl.exe_ZwMapViewOfSection]
mov edi, eax
cmp edi, esi
jge 0x14df6
push dword [0x1f504]
mov esi, dword [sym.imp.ntoskrnl.exe_ZwClose]
call esi
push dword [0x1f5a0]
call esi
jmp 0x14e0f
mov eax, dword [0x1f424]
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx + eax + 0x58]
cmp eax, dword [0x1f418]
je 0x14e0f
mov edi, 0xc0000001
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret
Function at 0x14f40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x14ffa
cmp dword [ebp + 0xc], 0
je 0x14ffa
mov eax, dword [edi + 0x3c]
push dword [eax + edi + 0x78]
push edi
call fcn.00014a50
mov esi, eax
add esi, edi
push dword [esi + 0x20]
mov eax, dword [esi + 0x18]
push edi
mov dword [ebp - 0xc], eax
call fcn.00014a50
push dword [esi + 0x24]
mov ebx, eax
push edi
add ebx, edi
call fcn.00014a50
push dword [esi + 0x1c]
add eax, edi
push edi
mov dword [ebp - 0x10], eax
call fcn.00014a50
and dword [ebp - 4], 0
mov esi, eax
add esi, edi
cmp dword [ebp - 0xc], 0
jbe 0x14ffa
mov eax, dword [ebp + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
push dword [ebx + eax*4]
push edi
call fcn.00014a50
add eax, edi
mov cl, byte [eax]
mov edx, dword [ebp - 8]
mov byte [ebp + 0xb], cl
cmp cl, byte [edx]
jne 0x14fe6
test cl, cl
je 0x14fe2
mov cl, byte [eax + 1]
mov byte [ebp + 0xb], cl
cmp cl, byte [edx + 1]
jne 0x14fe6
add dword [ebp - 8], 2
inc eax
inc eax
test cl, cl
jne 0x14fbd
xor eax, eax
jmp 0x14feb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x15003
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0xc]
jb 0x14fa9
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 8
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
movzx eax, word [eax + ecx*2]
mov eax, dword [esi + eax*4]
jmp 0x14ffc
Function at 0x17210
Capabilities:
Check for software breakpoints
Parse pe header

Disassembly:
push 0x34
push 0x1ec70
call fcn.000195f0
xor edi, edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], edi
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
push edi
call fcn.00016eba
cmp eax, edi
jl 0x17396
cmp dword [ebp - 0x1c], edi
je 0x17396
cmp dword [ebp - 0x24], edi
je 0x17396
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 8]
call fcn.00010486
mov dword [ebp - 0x30], eax
cmp eax, edi
jl 0x17393
mov dword [ebp - 4], edi
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x34], esi
cmp word [esi], 0x5a4d
jne 0x1736a
mov eax, dword [esi + 0x3c]
add eax, esi
mov dword [ebp - 0x38], eax
cmp dword [eax], 0x4550
jne 0x1736a
add eax, 0x18
mov dword [ebp - 0x3c], eax
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x40], edx
mov eax, dword [eax + 0x10]
add eax, esi
mov dword [ebp - 0x44], eax
cmp dword [ebp + 0xc], 2
jne 0x172ad
add eax, 0xfffea000
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov ecx, 0x45c7
mov ebx, dword [ebp - 0x28]
add ebx, 0x400000
cmp eax, ebx
jae 0x1736a
cmp dword [ebp + 0xc], 1
jne 0x17316
cmp word [eax], cx
jne 0x17370
cmp byte [eax + 2], 0xcc
jne 0x17370
cmp word [eax + 7], cx
jne 0x17370
cmp byte [eax + 9], 0xd0
jne 0x17370
cmp word [eax + 0xe], cx
jne 0x17370
cmp byte [eax + 0x10], 0xd4
jne 0x17370
cmp word [eax + 0x15], cx
jne 0x17370
cmp byte [eax + 0x17], 0xd8
jne 0x17370
cmp word [eax + 0x1c], cx
jne 0x17370
cmp byte [eax + 0x1e], 0xdc
jmp 0x1734f
cmp word [eax], cx
jne 0x17370
cmp byte [eax + 2], 0xd0
jne 0x17370
cmp word [eax + 7], cx
jne 0x17370
cmp byte [eax + 9], 0xd4
jne 0x17370
cmp word [eax + 0xe], cx
jne 0x17370
cmp byte [eax + 0x10], 0xd8
jne 0x17370
cmp word [eax + 0x15], cx
jne 0x17370
cmp byte [eax + 0x17], 0xdc
jne 0x17370
cmp word [eax + 0x1c], cx
jne 0x17370
cmp byte [eax + 0x1e], 0xe0
jne 0x17370
cmp byte [eax + 0x23], 0xe8
jne 0x17370
mov eax, dword [eax + 0x11]
mov dword [0x1f5c0], eax
mov eax, dword [ebp - 0x1c]
sub eax, edx
add dword [0x1f5c0], eax
or dword [ebp - 4], 0xffffffff
jmp 0x17389
inc eax
mov dword [ebp - 0x2c], eax
jmp 0x172b8
cmp esi, edi
je 0x17393
push esi
call fcn.0001061a
mov eax, dword [ebp - 0x30]
call fcn.0001962b
ret 8
Function at 0x19868
Capabilities:
Print debug messages

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, 0x1f8a0
cmp ebx, esi
jb 0x198d7
cmp ebx, 0x20440
ja 0x198d7
push edi
mov edi, 0x20620
mov ecx, edi
call dword [sym.imp.HAL.dll_ExAcquireFastMutex]
mov eax, ebx
sub eax, esi
push 0x60
xor edx, edx
pop ecx
div ecx
lea esi, [eax + eax*2]
lea esi, [esi*4 + 0x204a0]
cmp dword [esi + 8], ebx
je 0x198b6
push str.FreeParameters_error._n
call sub.ntoskrnl.exe_DbgPrint
pop ecx
mov eax, dword [0x20734]
mov dword [esi], 0x20730
mov dword [esi + 4], eax
mov dword [eax], esi
mov ecx, edi
mov dword [0x20734], esi
call dword [sym.imp.HAL.dll_ExReleaseFastMutex]
pop edi
jmp 0x198e0
push 0
push ebx
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
pop esi
pop ebx
pop ebp
ret 4
Function at 0x10007529
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
mov edi, dword [ebp + 8]
mov edi, dword [edi]
push edi
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
pop edi
mov esi, ecx
not esi
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0xc]
lea eax, [eax + 0x10]
push dword [eax]
xor eax, eax
push edx
mov ecx, dword [edx + 0x30]
movzx ebx, byte [eax + edi]
movzx edx, byte [ecx + eax*2]
sub ebx, edx
cmp ebx, 0
je 0x10007570
cmp ebx, 0x20
je 0x10007570
cmp ebx, 0xffffffe0
je 0x10007570
jne 0x10007579
add eax, 1
cmp esi, eax
je 0x10007586
jne 0x10007555
pop edx
mov edx, dword [edx]
xor eax, eax
pop ebx
cmp ebx, edx
push ebx
je 0x1000758a
jne 0x10007551
pop edx
mov eax, dword [edx + 0x18]
leave
ret 4

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

Disassembly:
push ebp
mov ebp, esp
mov ebx, dword [ebp + 8]
cmp ebx, 0
je 0x100075e3
mov eax, dword [ebx + 0x3c]
add eax, ebx
mov edx, dword [eax + 0x78]
add edx, ebx
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + 0x20]
push ecx
push ecx
push eax
xor eax, eax
or ecx, 0xffffffff
mov edi, dword [ebp + 0xc]
mov edi, dword [edi]
repne scasb al, byte es:[edi]
not ecx
pop eax
push ecx
mov edi, dword [ebp + 0xc]
mov edi, dword [edi]
mov esi, dword [eax + ebx]
add esi, ebx
repe cmpsb byte [esi], byte es:[edi]
pop ecx
je 0x100075e9
add eax, 4
pop esi
dec esi
push esi
jne 0x100075cb
xor eax, eax
leave
ret 8
pop esi
pop ecx
sub ecx, esi
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx eax, word [eax + ebx]
mov ecx, dword [edx + 0x1c]
lea eax, [ecx + eax*4]
mov eax, dword [eax + ebx]
add eax, ebx
leave
ret 8

Function at 0x10019230
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push ebp
mov ebp, edx
push esi
push edi
mov esi, ebp
xor edi, edi
and esi, 3
mov eax, ecx
jle 0x10019251
mov dl, byte [eax]
inc eax
cmp dl, bl
je 0x100192ab
inc edi
cmp edi, esi
jl 0x10019245
mov edi, ebx
and edi, 0xff
mov esi, edi
shl esi, 8
or esi, edi
shl esi, 8
or esi, edi
shl esi, 8
or esi, edi
lea edi, [ecx + ebp]
cmp eax, edi
jae 0x100192e0
mov edx, dword [eax]
xor edx, esi
lea ebp, [edx - 0x1010101]
not edx
and ebp, edx
test ebp, 0x80808080
je 0x1001929a
cmp byte [eax], bl
je 0x100192b5
cmp byte [eax + 1], bl
je 0x100192be
cmp byte [eax + 2], bl
je 0x100192c8
cmp byte [eax + 3], bl
je 0x100192d4
add eax, 4
cmp eax, edi
jb 0x10019271
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret 4
pop edi
sub eax, ecx
pop esi
pop ebp
dec eax
pop ebx
ret 4
pop edi
pop esi
pop ebp
sub eax, ecx
pop ebx
ret 4
pop edi
sub eax, ecx
pop esi
pop ebp
inc eax
pop ebx
ret 4
pop edi
sub eax, ecx
pop esi
pop ebp
add eax, 2
pop ebx
ret 4
pop edi
sub eax, ecx
pop esi
pop ebp
add eax, 3
pop ebx
ret 4
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret 4
Function at 0x10326c10
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
sub esp, 0x4c
push ebx
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x10326d1c
test eax, eax
je 0x10326d1c
push esi
push edi
mov ecx, 0x10
mov esi, 0x10341fe8
lea edi, [ebp - 0x4c]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x14]
mov esi, dword [esi]
add esi, eax
mov dword [ebp - 8], esi
xor esi, esi
mov dword [ebp - 4], 0
mov ecx, eax
test edx, edx
jbe 0x10326d03
lea edi, [eax + 4]
jmp 0x10326c67
mov ebx, dword [ebp + 8]
movzx eax, byte [esi + ebx]
inc esi
shl eax, 0x10
cmp esi, edx
jne 0x10326c7c
mov dword [ebp - 4], 2
jmp 0x10326c9d
movzx ebx, byte [esi + ebx]
shl ebx, 8
inc esi
or eax, ebx
cmp esi, edx
jne 0x10326c93
mov dword [ebp - 4], 1
jmp 0x10326c9d
mov edx, dword [ebp + 8]
movzx edx, byte [esi + edx]
or eax, edx
inc esi
mov edx, eax
and edx, 0x3f
cmp edi, dword [ebp - 8]
ja 0x10326d13
mov ebx, eax
shr ebx, 0x12
and ebx, 0x3f
movzx ebx, byte [ebp + ebx - 0x4c]
mov byte [ecx], bl
mov ebx, eax
shr ebx, 0xc
and ebx, 0x3f
movzx ebx, byte [ebp + ebx - 0x4c]
inc ecx
inc edi
mov byte [ecx], bl
mov ebx, dword [ebp - 4]
inc ecx
inc edi
cmp ebx, 1
jbe 0x10326cd6
mov byte [ecx], 0x3d
jmp 0x10326ce2
shr eax, 6
and eax, 0x3f
mov al, byte [ebp + eax - 0x4c]
mov byte [ecx], al
inc ecx
inc edi
test ebx, ebx
jbe 0x10326ced
mov byte [ecx], 0x3d
jmp 0x10326cf3
mov dl, byte [ebp + edx - 0x4c]
mov byte [ecx], dl
mov edx, dword [ebp + 0xc]
inc ecx
inc edi
cmp esi, edx
jb 0x10326c64
mov eax, dword [ebp + 0x10]
sub ecx, eax
mov eax, dword [ebp + 0x14]
pop edi
pop esi
mov dword [eax], ecx
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10085b50
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push esi
call sym.steam_api.dll_SteamAPI_ISteamController_GetControllerState
mov esi, dword [ebp + 8]
test al, al
je 0x10085b6e
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push esi
call fcn.10085b80
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x409d5c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
mov eax, 0x401000
call 0x409d5c
lcall 0x5de5, 0x8b10c483
jmp loc.00801460
Function at 0x454060
Capabilities:
Contain obfuscated stackstrings

Disassembly:
inc dword [eax]
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x503]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.00453136
or byte [eax + 0x2ff845c6], ah
mov byte [ebp - 0x24], 0x34
and byte [ebp - 0x36c], 0
and byte [ebp - 0x36b], 0
mov byte [ebp - 0x36a], 0xaa
and byte [ebp - 0x369], 0
mov byte [ebp - 0x368], 0x12
mov byte [ebp - 0x367], 0x30
mov byte [ebp - 0x366], 0x21
mov byte [ebp - 0x365], 6
mov byte [ebp - 0x364], 0x2c
mov byte [ebp - 0x363], 0x26
mov byte [ebp - 0x362], 0x21
mov byte [ebp - 0x361], 0x30
mov byte [ebp - 0x360], 0x38
mov byte [ebp - 0x35f], 0x11
mov byte [ebp - 0x35e], 0x3c
mov byte [ebp - 0x35d], 0x27
mov byte [ebp - 0x35c], 0x30
mov byte [ebp - 0x35b], 0x36
mov byte [ebp - 0x35a], 0x21
mov byte [ebp - 0x359], 0x3a
mov byte [ebp - 0x358], 0x27
mov byte [ebp - 0x357], 0x2c
mov byte [ebp - 0x356], 0x14
mov byte [ebp - 0x355], 0x55
lea eax, [ebp - 0x36c]
push eax
call fcn.00453168
pop ecx
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.0045311d
add esp, 0xc
mov dword [ebp - 0x3d4], eax
call fcn.00453158
fiadd word [ecx]
inc ecx
push ss
push 0x104
lea eax, [ebp - 0x12c]
push eax
call dword [ebp - 0x3d4]
mov dword [ebp - 0x28], eax
call fcn.00453158
or dword [0x65808013], ecx
adc eax, dword [eax + 0xe06580]
and byte [ebp - 0x1f], 0
mov byte [ebp - 0x1e], 0x1d
and byte [ebp - 0x1d], 0
mov byte [ebp - 0x1c], 0xa5
mov byte [ebp - 0x1b], 0x87
mov byte [ebp - 0x1a], 0x96
mov byte [ebp - 0x19], 0xb6
mov byte [ebp - 0x18], 0x87
mov byte [ebp - 0x17], 0x8f
mov byte [ebp - 0x16], 0x92
mov byte [ebp - 0x15], 0xb2
mov byte [ebp - 0x14], 0x83
mov byte [ebp - 0x13], 0x96
mov byte [ebp - 0x12], 0x8a
mov byte [ebp - 0x11], 0xa3
mov byte [ebp - 0x10], 0xe2
lea eax, [ebp - 0x20]
push eax
call fcn.00453168
pop ecx
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.0045311d
add esp, 0xc
mov dword [ebp - 0x370], eax
lea eax, [ebp - 0x654]
push eax
push 0x104
call dword [ebp - 0x370]
mov dword [ebp - 0x550], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [ebp + eax - 0x12d]
cmp eax, 0x5c
jne 0x454204
mov eax, dword [ebp - 0x28]
dec eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x550]
movsx eax, byte [ebp + eax - 0x655]
cmp eax, 0x5c
jne 0x454224
mov eax, dword [ebp - 0x550]
dec eax
mov dword [ebp - 0x550], eax
and dword [ebp - 0x338], 0
and dword [ebp - 0x3d0], 0
jmp 0x454241
mov eax, dword [ebp - 0x3d0]
inc eax
mov dword [ebp - 0x3d0], eax
cmp dword [ebp - 0x3d0], 0x104
jge 0x4542a8
mov eax, dword [ebp - 0x3d0]
movsx eax, byte [ebp + eax - 0x334]
and eax, 0x80
test eax, eax
je 0x454273
mov eax, dword [ebp - 0x3d0]
inc eax
mov dword [ebp - 0x3d0], eax
jmp 0x4542a6
mov eax, dword [ebp - 0x3d0]
movsx eax, byte [ebp + eax - 0x334]
cmp eax, 0x5c
jne 0x454292
mov eax, dword [ebp - 0x3d0]
invalid
Function at 0x4552fa
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
add ebp, 0x24
push esp
call fcn.00453158
pop edx
bound esi, qword [ebx]
inc eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x1c]
lodsd eax, dword [esi]
cmp byte [eax + 0x1c], 0x18
je 0x45531c
xchg esi, eax
lodsd eax, dword [esi]
mov eax, dword [eax + 8]
push eax
call fcn.00453158
xor eax, 0x8b3b45e5
clc
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
add edx, edi
mov ecx, dword [edx + 0x18]
mov ebx, dword [edx + 0x20]
add ebx, edi
call fcn.00453158
sub byte [esi], bl
inc eax
pop ebp
dec ecx
mov esi, dword [ebx + ecx*4]
add esi, edi
mov eax, 0x50746547
cmp dword [esi], eax
jne 0x455345
mov eax, 0x41636f72
cmp dword [esi + 4], eax
jne 0x455345
call fcn.00453158
xchg edi, eax
pop ss
adc al, 0x4b
mov ebx, dword [edx + 0x24]
add ebx, edi
mov cx, word [ebx + ecx*2]
mov ebx, dword [edx + 0x1c]
add ebx, edi
mov eax, dword [ebx + ecx*4]
add eax, edi
push eax
call fcn.00453158
adc dword [esi + 0x76], 0x68
push dword [ebp + 8]
push dword [ebp + 4]
push dword [ebp]
call fcn.00453958
fstp qword [esp + 0x10]
fld qword [ebx + 0x18]
fstp qword [esp + 8]
fld qword [ebx + 0x10]
fstp qword [esp]
push dword [ebx + 0xc]
push edi
call fcn.00455955
add esp, 0x24
jmp 0x4553c9
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004079b2
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
Function at 0xf99370
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov eax, dword [esp + 4]
push ebx
push esi
push edi
push 0x1a
push eax
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
jne 0xf9938e
pop edi
pop esi
xor al, al
pop ebx
ret
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push esi
push 0
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ecx, dword [esp + 0x14]
push 0xfc2074
push ecx
mov edi, eax
call fcn.00fad198
mov esi, eax
add esp, 8
test esi, esi
jne 0xf993cb
pop edi
pop esi
xor al, al
pop ebx
ret
push esi
push ebx
push 1
push edi
call fcn.00fad02e
push esi
call fcn.00facfb1
add esp, 0x14
mov al, 1
pop edi
pop esi
pop ebx
ret