joyce8/EMBER2024-capa huggingface dataset:
Function at 0x43d842
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push edi
xor edi, edi
mov dword [ecx + 0x9c], edi
cmp dword [str.SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer], edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], 4
mov dword [ebp - 0xc], edi
mov ebx, 0x458ea4
je 0x43d8fe
push esi
lea eax, [ebp - 4]
push eax
push 1
push edi
push dword [ebx]
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x43d8e6
mov esi, dword [ebx + 4]
jmp 0x43d8e0
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 0xc]
push ecx
push edi
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x43d8d0
cmp dword [ebp - 0xc], 4
jne 0x43d8d0
cmp dword [ebp - 8], edi
mov eax, dword [ebp - 0x10]
mov ecx, dword [esi + 4]
je 0x43d8c8
or dword [eax + 0x9c], ecx
jmp 0x43d8d0
not ecx
and dword [eax + 0x9c], ecx
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], 4
mov dword [ebp - 0xc], edi
add esi, 8
mov eax, dword [esi]
cmp eax, edi
jne 0x43d894
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add ebx, 8
cmp dword [ebx], edi
mov dword [ebp - 4], edi
jne 0x43d877
pop esi
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
pop edi
inc eax
pop ebx
leave
ret

Function at 0x43df36
Capabilities:
Query or enumerate registry key

Disassembly:
mov eax, 0x44239f
call fcn.0041e7e0
sub esp, 0x11c
mov eax, dword [0x459790]
push ebx
push esi
push edi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x10], esp
lea ecx, [ebp - 0x124]
push ecx
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
mov esi, eax
test esi, esi
jne 0x43e02f
push 0x104
lea eax, [ebp - 0x11c]
push eax
push 0
push dword [ebp - 0x124]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov esi, eax
test esi, esi
jne 0x43e003
and dword [ebp - 4], eax
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x120]
call fcn.0040200e
lea eax, [ebp - 0x120]
push eax
push dword [ebp - 0x124]
mov byte [ebp - 4], 1
call fcn.0043df36
mov ecx, dword [ebp - 0x120]
mov esi, eax
test esi, esi
setne bl
add ecx, 0xfffffff0
mov byte [ebp - 4], 0
call fcn.00401139
test bl, bl
jne 0x43e003
or dword [ebp - 4], 0xffffffff
jmp 0x43df74
cmp esi, 0x103
je 0x43e013
cmp esi, 0x3f2
jne 0x43e023
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov esi, eax
push dword [ebp - 0x124]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
mov eax, esi
call fcn.0041f181
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x43e447
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
lea ebx, [esi + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [esp + 0x10]
test edi, edi
jle 0x43e47c
cmp edi, dword [esi + 0xc]
jge 0x43e47c
push dword [esi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x43e47c
cmp edi, dword [eax + 8]
jge 0x43e47c
mov eax, dword [eax + 0xc]
mov edi, dword [eax + edi*4]
jmp 0x43e47e
xor edi, edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, edi
pop edi
pop esi
pop ebx
ret 4

Function at 0x43e582
Capabilities:
Allocate thread local storage

Disassembly:
xor eax, eax
push esi
mov esi, ecx
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x18], 4
mov dword [esi + 4], eax
mov dword [esi + 8], 1
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
mov dword [esi], eax
jne 0x43e5b6
jmp fcn.00431232
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov eax, esi
pop esi
ret

Function at 0x43e627
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, ecx
lea esi, [edi + 0x1c]
push esi
mov dword [ebp - 4], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 8]
xor ebx, ebx
cmp eax, ebx
jle 0x43e720
cmp eax, dword [edi + 0xc]
jge 0x43e720
push dword [edi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
cmp esi, ebx
je 0x43e678
mov ecx, dword [ebp + 8]
cmp ecx, dword [esi + 8]
jl 0x43e709
cmp dword [ebp + 0xc], ebx
je 0x43e709
jmp 0x43e6a2
push 0x10
call fcn.0043e313
cmp eax, ebx
je 0x43e68e
mov ecx, eax
call fcn.0043e579
mov esi, eax
jmp 0x43e690
xor esi, esi
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x18]
mov dword [esi + eax], ecx
mov dword [edi + 0x14], esi
mov eax, dword [esi + 0xc]
cmp eax, ebx
jne 0x43e6b9
mov eax, dword [edi + 0xc]
shl eax, 2
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
jmp 0x43e6c9
mov ecx, dword [edi + 0xc]
push 2
shl ecx, 2
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_LocalReAlloc]
cmp eax, ebx
jne 0x43e6db
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.00431232
mov ecx, dword [esi + 8]
mov dword [esi + 0xc], eax
mov edx, dword [edi + 0xc]
sub edx, ecx
shl edx, 2
push edx
lea eax, [eax + ecx*4]
push ebx
push eax
call fcn.0041f0f0
mov eax, dword [edi + 0xc]
add esp, 0xc
push esi
mov dword [esi + 8], eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x43e71b
cmp ecx, dword [esi + 8]
jge 0x43e71b
mov edx, dword [ebp + 0xc]
mov dword [eax + ecx*4], edx
push dword [ebp - 4]
jmp 0x43e721
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x401eff
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
push ebx
xor ebx, ebx
push 0x14
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.00401fcb
add esp, 0xc
mov byte [ebp - 0x14], 0x47
mov byte [ebp - 0xf], 0x72
mov byte [ebp - 0xa], 0x45
mov byte [ebp - 0x13], 0x65
mov byte [ebp - 0xe], 0x73
mov byte [ebp - 9], 0x78
mov byte [ebp - 0x12], 0x74
mov byte [ebp - 0xd], 0x69
mov byte [ebp - 8], 0x41
mov byte [ebp - 0x11], 0x56
mov byte [ebp - 0xc], 0x6f
mov byte [ebp - 7], bl
mov byte [ebp - 0x10], 0x65
mov byte [ebp - 0xb], 0x6e
mov dword [ebp - 0xa8], 0x94
call fcn.00401ffa
lea ecx, [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0xa8]
push ecx
call eax
test eax, eax
push 0x14
lea eax, [ebp - 0x14]
push ebx
push eax
jne 0x401f8b
call fcn.00401fcb
add esp, 0xc
xor eax, eax
jmp 0x401fc8
call fcn.00401fcb
mov eax, dword [ebp - 0x98]
add esp, 0xc
sub eax, ebx
je 0x401fc5
dec eax
je 0x401fa5
dec eax
je 0x401fb7
jmp 0x401f87
cmp dword [ebp - 0xa0], ebx
jne 0x401fb1
push 4
jmp 0x401fc7
jbe 0x401fb7
push 5
jmp 0x401fc7
cmp dword [ebp - 0xa4], 5
sbb eax, eax
add eax, 7
jmp 0x401fc8
push 3
pop eax
pop ebx
leave
ret

Function at 0x401ffa
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push 0x14
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.00401fcb
mov eax, dword [0x44d0e4]
and byte [ebp - 8], 0
add esp, 0xc
cmp eax, 1
mov byte [ebp - 0xc], 0x2e
mov byte [ebp - 0xb], 0x64
mov byte [ebp - 0xa], 0x6c
mov byte [ebp - 9], 0x6c
mov byte [ebp - 0x14], 0x6b
mov byte [ebp - 0x13], 0x65
mov byte [ebp - 0x12], 0x72
mov byte [ebp - 0x11], 0x6e
mov byte [ebp - 0x10], 0x65
mov byte [ebp - 0xf], 0x6c
mov byte [ebp - 0xe], 0x33
mov byte [ebp - 0xd], 0x32
jne 0x40205d
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x44d0e4], eax
leave
ret

Function at 0x40205f
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push esi
push edi
xor eax, eax
lea edi, [ebp - 0x1b]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor esi, esi
stosd dword es:[edi], eax
push esi
push 0x4000000
push 1
push esi
stosw word es:[edi], ax
push esi
lea eax, [ebp - 0x1c]
push esi
push eax
mov byte [ebp - 0x1c], 0x5c
mov byte [ebp - 0x1b], 0x5c
mov byte [ebp - 0x1a], 0x2e
mov byte [ebp - 0x19], 0x5c
mov byte [ebp - 0x18], 0x48
mov byte [ebp - 0x17], 0x4f
mov byte [ebp - 0x16], 0x53
mov byte [ebp - 0x15], 0x54
mov byte [ebp - 0x14], 0x39
mov byte [ebp - 0x13], 0x35
mov byte [ebp - 0x12], 0x2e
mov byte [ebp - 0x11], 0x56
mov byte [ebp - 0x10], 0x58
mov byte [ebp - 0xf], 0x44
call fcn.0040210b
mov edi, eax
add esp, 0x1c
cmp edi, 0xffffffff
jne 0x4020d0
mov eax, 0xc357
jmp 0x402107
push ebx
lea eax, [ebp - 4]
push esi
push eax
lea eax, [ebp - 0xc]
push 8
push eax
push esi
push esi
push 2
push edi
call fcn.00402196
push edi
mov ebx, eax
call fcn.00402234
add esp, 0x24
cmp ebx, esi
pop ebx
je 0x402102
mov eax, dword [ebp + 8]
mov cl, byte [ebp - 8]
mov byte [eax], cl
xor eax, eax
jmp 0x402107
mov eax, 0xc358
pop edi
pop esi
leave
ret
Function at 0x40210b
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push 0x14
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.00401fcb
and byte [ebp - 9], 0
add esp, 0xc
mov byte [ebp - 0x14], 0x43
mov byte [ebp - 0xf], 0x65
mov byte [ebp - 0xa], 0x41
mov byte [ebp - 0x13], 0x72
mov byte [ebp - 0xe], 0x46
mov byte [ebp - 0x12], 0x65
mov byte [ebp - 0xd], 0x69
mov byte [ebp - 0x11], 0x61
mov byte [ebp - 0xc], 0x6c
mov byte [ebp - 0x10], 0x74
mov byte [ebp - 0xb], 0x65
call fcn.00401ffa
lea ecx, [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x402167
leave
ret
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call eax
mov esi, eax
push 0x14
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.00401fcb
add esp, 0xc
mov eax, esi
pop esi
leave
ret

Function at 0x402196
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push 0x14
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.00401fcb
and byte [ebp - 5], 0
add esp, 0xc
mov byte [ebp - 0x14], 0x44
mov byte [ebp - 0xf], 0x65
mov byte [ebp - 0xa], 0x6e
mov byte [ebp - 0x13], 0x65
mov byte [ebp - 0xe], 0x49
mov byte [ebp - 9], 0x74
mov byte [ebp - 0x12], 0x76
mov byte [ebp - 0xd], 0x6f
mov byte [ebp - 8], 0x72
mov byte [ebp - 0x11], 0x69
mov byte [ebp - 0xc], 0x43
mov byte [ebp - 7], 0x6f
mov byte [ebp - 0x10], 0x63
mov byte [ebp - 0xb], 0x6f
mov byte [ebp - 6], 0x6c
call fcn.00401ffa
lea ecx, [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x402202
leave
ret
push esi
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call eax
mov esi, eax
push 0x14
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.00401fcb
add esp, 0xc
mov eax, esi
pop esi
leave
ret

Function at 0x402234
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push 0x14
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.00401fcb
and byte [ebp - 9], 0
add esp, 0xc
mov byte [ebp - 0x14], 0x43
mov byte [ebp - 0xf], 0x48
mov byte [ebp - 0xa], 0x65
mov byte [ebp - 0x13], 0x6c
mov byte [ebp - 0xe], 0x61
mov byte [ebp - 0x12], 0x6f
mov byte [ebp - 0xd], 0x6e
mov byte [ebp - 0x11], 0x73
mov byte [ebp - 0xc], 0x64
mov byte [ebp - 0x10], 0x65
mov byte [ebp - 0xb], 0x6c
call fcn.00401ffa
lea ecx, [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x402290
leave
ret
push esi
push dword [ebp + 8]
call eax
mov esi, eax
push 0x14
lea eax, [ebp - 0x14]
push 0
push eax
call fcn.00401fcb
add esp, 0xc
mov eax, esi
pop esi
leave
ret
Function at 0x4022ad
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push esi
push edi
xor eax, eax
lea edi, [ebp - 0x17]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor esi, esi
stosd dword es:[edi], eax
push esi
push 0x80
push 3
push esi
stosw word es:[edi], ax
push esi
lea eax, [ebp - 0x18]
push 0xc0000000
push eax
mov byte [ebp - 0x18], 0x5c
mov byte [ebp - 0x17], 0x5c
mov byte [ebp - 0x16], 0x2e
mov byte [ebp - 0x15], 0x5c
mov byte [ebp - 0x14], 0x48
mov byte [ebp - 0x13], 0x4f
mov byte [ebp - 0x12], 0x53
mov byte [ebp - 0x11], 0x54
mov byte [ebp - 0x10], 0x4e
mov byte [ebp - 0xf], 0x54
call fcn.0040210b
mov edi, eax
add esp, 0x1c
cmp edi, 0xffffffff
je 0x402347
push ebx
lea eax, [ebp - 8]
push esi
push eax
lea eax, [ebp - 4]
push 4
push eax
push esi
push esi
push 0x80002000
push edi
call fcn.00402196
push edi
mov ebx, eax
call fcn.00402234
add esp, 0x24
cmp ebx, esi
pop ebx
je 0x402340
mov eax, dword [ebp + 8]
mov cl, byte [ebp - 4]
mov byte [eax], cl
xor eax, eax
jmp 0x40234c
mov eax, 0xc358
jmp 0x40234c
mov eax, 0xc357
pop edi
pop esi
leave
ret

Function at 0x402350
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push es
mov ax, 0x101f
mov es, ax
xor eax, eax
mov esi, eax
mov ecx, 0x8000
xor al, byte es:[esi]
inc esi
loop 0x402366
pop es
mov byte [ebp - 1], al
mov al, byte [ebp - 1]
test al, al
jne 0x402379
add al, 0x55
mov ecx, dword [ebp + 8]
pop esi
mov byte [ecx], al
xor al, al
leave
ret
Function at 0x408950
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x1c]
cmp ecx, 1
jle 0x408a2b
add eax, 0x32
push esi
dec ecx
movzx edx, byte [eax + 1]
movzx esi, byte [eax - 1]
mov edx, dword [edx*4 + 0x450000]
xor edx, dword [esi*4 + 0x44f800]
movzx esi, byte [eax]
add eax, 0x10
xor edx, dword [esi*4 + 0x44fc00]
movzx esi, byte [eax - 0x12]
xor edx, dword [esi*4 + 0x44f400]
mov dword [eax - 0x12], edx
movzx edx, byte [eax - 0xb]
movzx esi, byte [eax - 0xc]
mov edx, dword [edx*4 + 0x450000]
xor edx, dword [esi*4 + 0x44fc00]
movzx esi, byte [eax - 0xd]
xor edx, dword [esi*4 + 0x44f800]
movzx esi, byte [eax - 0xe]
xor edx, dword [esi*4 + 0x44f400]
mov dword [eax - 0xe], edx
movzx edx, byte [eax - 7]
movzx esi, byte [eax - 8]
mov edx, dword [edx*4 + 0x450000]
xor edx, dword [esi*4 + 0x44fc00]
movzx esi, byte [eax - 9]
xor edx, dword [esi*4 + 0x44f800]
movzx esi, byte [eax - 0xa]
xor edx, dword [esi*4 + 0x44f400]
mov dword [eax - 0xa], edx
movzx edx, byte [eax - 3]
movzx esi, byte [eax - 4]
mov edx, dword [edx*4 + 0x450000]
xor edx, dword [esi*4 + 0x44fc00]
movzx esi, byte [eax - 5]
xor edx, dword [esi*4 + 0x44f800]
movzx esi, byte [eax - 6]
xor edx, dword [esi*4 + 0x44f400]
dec ecx
mov dword [eax - 6], edx
jne 0x408965
pop esi
ret
Function at 0x409058
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe8
push ebx
mov ebx, dword [ebp + 0xc]
push esi
cmp ebx, 0x40
push edi
jle 0x4090a3
lea eax, [ebp - 0xe8]
push eax
call fcn.00409175
push ebx
lea eax, [ebp - 0xe8]
push dword [ebp + 8]
push eax
call fcn.0040919d
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040924c
add esp, 0x18
lea esi, [ebp - 0x10]
push 0x10
pop ebx
jmp 0x4090a6
mov esi, dword [ebp + 8]
push 0x10
xor eax, eax
pop ecx
lea edi, [ebp - 0x90]
rep stosd dword es:[edi], eax
push 0x10
lea edi, [ebp - 0x50]
pop ecx
xor edx, edx
test ebx, ebx
rep stosd dword es:[edi], eax
jle 0x4090db
lea eax, [ebp - 0x50]
sub esi, eax
lea eax, [edx + ebp - 0x50]
inc edx
cmp edx, ebx
mov cl, byte [eax + esi]
mov byte [edx + ebp - 0x91], cl
mov byte [eax], cl
jl 0x4090c6
xor eax, eax
jmp 0x4090e0
xor byte [eax + ebp - 0x90], 0x36
xor byte [eax + ebp - 0x50], 0x5c
inc eax
cmp eax, 0x40
jl 0x4090dd
lea eax, [ebp - 0xe8]
push eax
call fcn.00409175
lea eax, [ebp - 0x90]
push 0x40
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.0040919d
mov esi, dword [ebp + 0x10]
add esp, 0x10
lea eax, [ebp - 0xe8]
mov ecx, esi
push 4
sub eax, esi
pop edi
mov edx, edi
jmp 0x40912c
mov ebx, dword [ecx + eax]
mov dword [ecx], ebx
add ecx, edi
dec edx
jne 0x409129
lea eax, [ebp - 0xe8]
push eax
call fcn.00409175
lea eax, [ebp - 0x50]
push 0x40
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.0040919d
add esp, 0x10
lea eax, [ebp - 0xe8]
lea ecx, [esi + 0x10]
mov edx, edi
jmp 0x409165
mov esi, dword [eax]
add eax, edi
mov dword [ecx], esi
add ecx, edi
dec edx
jne 0x409162
pop edi
pop esi
pop ebx
leave
ret

Function at 0x40919d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 4
mov eax, esi
pop ecx
xor dword [eax], 0x41dfac36
add eax, 4
dec ecx
jne 0x4091ab
mov ecx, dword [esi + 0x10]
mov edi, dword [ebp + 0x10]
mov eax, ecx
mov edx, edi
shr eax, 3
lea ecx, [ecx + edi*8]
and eax, 0x3f
shl edx, 3
cmp ecx, edx
mov dword [esi + 0x10], ecx
jae 0x4091d7
inc dword [esi + 0x14]
push 0x40
mov ecx, edi
pop ebx
shr ecx, 0x1d
add dword [esi + 0x14], ecx
sub ebx, eax
cmp edi, ebx
jb 0x40922a
push ebx
lea eax, [esi + eax + 0x18]
push dword [ebp + 0xc]
push eax
call fcn.00409d20
lea eax, [esi + 0x18]
push eax
push esi
call fcn.004092b0
add esp, 0x14
mov dword [ebp + 8], ebx
add ebx, 0x3f
cmp ebx, edi
jae 0x409226
mov eax, dword [ebp + 0xc]
lea eax, [ebx + eax - 0x3f]
push eax
push esi
call fcn.004092b0
add dword [ebp + 8], 0x40
pop ecx
pop ecx
add ebx, 0x40
jmp 0x409209
xor eax, eax
jmp 0x40922e
and dword [ebp + 8], 0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
sub edi, ecx
add ecx, edx
push edi
lea eax, [esi + eax + 0x18]
push ecx
push eax
call fcn.00409d20
add esp, 0xc
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x40b258
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push 0x14
lea eax, [ebp - 0x24]
push 0
push eax
call fcn.00401fcb
and byte [ebp - 0x17], 0
add esp, 0xc
mov byte [ebp - 0x24], 0x47
mov byte [ebp - 0x23], 0x65
mov byte [ebp - 0x22], 0x74
mov byte [ebp - 0x21], 0x53
mov byte [ebp - 0x20], 0x79
mov byte [ebp - 0x1f], 0x73
mov byte [ebp - 0x1e], 0x74
mov byte [ebp - 0x1d], 0x65
mov byte [ebp - 0x1c], 0x6d
mov byte [ebp - 0x1b], 0x54
mov byte [ebp - 0x1a], 0x69
mov byte [ebp - 0x19], 0x6d
mov byte [ebp - 0x18], 0x65
call fcn.00401ffa
lea ecx, [ebp - 0x24]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40b2c0
lea ecx, [ebp - 0x10]
push ecx
call eax
push esi
push 0x14
movzx esi, word [ebp - 0x10]
movzx eax, word [ebp - 0xe]
imul esi, esi, 0xd
add esi, eax
push 0
movzx eax, word [ebp - 0xa]
imul esi, esi, 0x1e
add esi, eax
movzx eax, word [ebp - 8]
imul esi, esi, 0x1a
imul eax, eax, 0x3d
add esi, eax
movzx eax, word [ebp - 6]
add esi, eax
movzx eax, word [ebp - 4]
imul esi, esi, 0x3c
add esi, eax
movzx eax, word [ebp - 2]
imul esi, esi, 0x4d2
add esi, eax
lea eax, [ebp - 0x24]
push eax
call fcn.00401fcb
add esp, 0xc
mov eax, esi
pop esi
leave
ret
Function at 0x40b5ae
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
push ebx
xor ebx, ebx
mov byte [ebp - 0x20], 0x2a
mov byte [ebp - 0x10], 0x67
mov byte [ebp - 0x1f], 0x2f
mov byte [ebp - 0xf], 0x21
mov byte [ebp - 0x1e], 0xed
mov byte [ebp - 0xe], 0x4c
mov byte [ebp - 0x1d], 0x5e
mov byte [ebp - 0xd], 0xa4
mov byte [ebp - 0x1c], 0x49
mov byte [ebp - 0xc], 0x10
mov byte [ebp - 0x1b], 0x26
mov byte [ebp - 0xb], 0x7e
mov byte [ebp - 0x1a], 0x40
mov byte [ebp - 0xa], 0x51
mov byte [ebp - 0x19], 0x19
mov byte [ebp - 9], 0x22
mov byte [ebp - 0x18], 0x40
mov byte [ebp - 8], 0x25
mov byte [ebp - 0x17], 0x40
mov byte [ebp - 7], bl
mov byte [ebp - 0x16], 0xe2
mov byte [ebp - 6], bl
mov byte [ebp - 0x15], 0x51
mov byte [ebp - 5], bl
mov byte [ebp - 0x14], 0xaa
mov byte [ebp - 4], bl
mov byte [ebp - 0x13], 0xfa
mov byte [ebp - 3], bl
mov byte [ebp - 0x12], 0xdb
mov byte [ebp - 0x11], 0xcb
mov byte [ebp - 0x34], 0x47
mov byte [ebp - 0x33], 0x65
mov byte [ebp - 0x32], 0x74
mov byte [ebp - 0x31], 0x53
mov byte [ebp - 0x30], 0x79
mov byte [ebp - 0x2f], 0x73
mov byte [ebp - 0x2e], 0x74
mov byte [ebp - 0x2d], 0x65
mov byte [ebp - 0x2c], 0x6d
mov byte [ebp - 0x2b], 0x54
mov byte [ebp - 0x2a], 0x69
mov byte [ebp - 0x29], 0x6d
mov byte [ebp - 0x28], 0x65
mov byte [ebp - 0x27], bl
call fcn.00401ffa
lea ecx, [ebp - 0x34]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x44]
push ecx
call eax
mov ax, word [ebp - 0x44]
xor ecx, ecx
mov cl, ah
mov byte [ebp - 7], al
mov ax, word [ebp - 0x42]
mov byte [ebp - 6], cl
xor ecx, ecx
mov byte [ebp - 4], al
mov cl, ah
lea eax, [ebp - 0x9c]
push eax
mov byte [ebp - 5], 0x2d
mov byte [ebp - 3], cl
call fcn.00409175
lea eax, [ebp - 0x20]
push 0x1e
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.0040919d
lea eax, [ebp - 0x9c]
push eax
push dword [ebp + 8]
call fcn.0040924c
push 0x1f
push ebx
lea eax, [ebp - 0x20]
push eax
call fcn.00401fcb
add esp, 0x24
pop ebx
leave
ret
Function at 0x40b6d9
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
lea eax, [ebp - 0x9c]
mov byte [ebp - 0x20], 0x2a
push eax
mov byte [ebp - 0x10], 0x67
mov byte [ebp - 0x1f], 0x2f
mov byte [ebp - 0xf], 0x21
mov byte [ebp - 0x1e], 0xed
mov byte [ebp - 0xe], 0x4c
mov byte [ebp - 0x1d], 0x5e
mov byte [ebp - 0xd], 0xa4
mov byte [ebp - 0x1c], 0x49
mov byte [ebp - 0xc], 0x10
mov byte [ebp - 0x1b], 0x26
mov byte [ebp - 0xb], 0x7e
mov byte [ebp - 0x1a], 0x40
mov byte [ebp - 0xa], 0x51
mov byte [ebp - 0x19], 0x19
mov byte [ebp - 9], 0x22
mov byte [ebp - 0x18], 0x40
mov byte [ebp - 8], 0x25
mov byte [ebp - 0x17], 0x40
mov byte [ebp - 7], 0x11
mov byte [ebp - 0x16], 0xe2
mov byte [ebp - 6], 0x2b
mov byte [ebp - 0x15], 0x51
mov byte [ebp - 5], 0x3c
mov byte [ebp - 0x14], 0xaa
mov byte [ebp - 4], 0x46
mov byte [ebp - 0x13], 0xfa
mov byte [ebp - 3], 0x5e
mov byte [ebp - 0x12], 0xdb
mov byte [ebp - 0x11], 0xcb
call fcn.00409175
lea eax, [ebp - 0x20]
push 0x1c
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.0040919d
lea eax, [ebp - 0x9c]
push eax
push dword [ebp + 8]
call fcn.0040924c
and byte [ebp - 0x27], 0
add esp, 0x18
mov byte [ebp - 0x34], 0x47
mov byte [ebp - 0x33], 0x65
mov byte [ebp - 0x32], 0x74
mov byte [ebp - 0x31], 0x53
mov byte [ebp - 0x30], 0x79
mov byte [ebp - 0x2f], 0x73
mov byte [ebp - 0x2e], 0x74
mov byte [ebp - 0x2d], 0x65
mov byte [ebp - 0x2c], 0x6d
mov byte [ebp - 0x2b], 0x54
mov byte [ebp - 0x2a], 0x69
mov byte [ebp - 0x29], 0x6d
mov byte [ebp - 0x28], 0x65
call fcn.00401ffa
lea ecx, [ebp - 0x34]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x44]
push ecx
call eax
mov cx, word [ebp - 0x44]
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dl, ch
mov byte [eax], cl
mov cx, word [ebp - 0x42]
mov byte [eax + 1], dl
xor edx, edx
mov byte [eax + 2], cl
mov dl, ch
mov byte [eax + 3], dl
leave
ret