joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4f6fcc
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
mov ebx, eax
cmp dword [ebx + 0x14], 0xca
jne 0x4f6ffa
mov eax, ebx
call fcn.004f7a80
cmp dword [ebx + 0x40], 0
je 0x4f6ff3
mov dword [ebx + 0x14], 0xcf
mov eax, 1
pop ebx
ret
mov dword [ebx + 0x14], 0xcb
cmp dword [ebx + 0x14], 0xcb
jne 0x4f706b
mov edx, dword [ebx + 0x1b4]
cmp dword [edx + 0x10], 0
je 0x4f705d
cmp dword [ebx + 8], 0
je 0x4f701c
mov eax, ebx
mov edx, dword [eax + 8]
call dword [edx]
mov eax, ebx
mov edx, dword [eax + 0x1b4]
call dword [edx]
test eax, eax
jne 0x4f702e
xor eax, eax
pop ebx
ret
cmp eax, 2
je 0x4f705d
cmp dword [ebx + 8], 0
je 0x4f700f
cmp eax, 3
je 0x4f7041
dec eax
jne 0x4f700f
mov edx, dword [ebx + 8]
inc dword [edx + 4]
mov ecx, dword [edx + 4]
mov eax, dword [ebx + 8]
cmp ecx, dword [eax + 8]
jl 0x4f700f
mov edx, dword [ebx + 0x140]
add dword [eax + 8], edx
jmp 0x4f700f
mov ecx, dword [ebx + 0x90]
mov dword [ebx + 0x98], ecx
jmp 0x4f7089
cmp dword [ebx + 0x14], 0xcc
je 0x4f7089
mov eax, dword [ebx]
mov dword [eax + 0x14], 0x14
mov edx, dword [ebx + 0x14]
mov dword [eax + 0x18], edx
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.004f7094
pop ebx
ret

Function at 0x51ebdc
Capabilities:
Log keystrokes via polling

Disassembly:
push 2
call sub.user32.dll_GetAsyncKeyState
movsx eax, ax
test ah, 0x80
jne 0x51ebfd
push 1
call sub.user32.dll_GetAsyncKeyState
movsx eax, ax
test ah, 0x80
jne 0x51ebfd
xor eax, eax
ret
mov al, 1
ret
Function at 0x521638
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov ebx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040550c
mov eax, dword [ebp - 8]
call fcn.0040550c
xor eax, eax
push ebp
push 0x5217c0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.0040505c
mov dword [ebp - 0x1c], 0xff
mov eax, dword [ebp - 4]
call fcn.0040531c
test eax, eax
jle 0x52179d
lea eax, [ebp - 4]
mov edx, 0x5217d4
call fcn.00405324
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 4]
call fcn.00405574
push eax
call sub.version.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jle 0x52179d
mov eax, dword [ebp - 0x14]
call fcn.00402e00
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x521796
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
lea eax, [ebp - 4]
call fcn.00405574
push eax
call sub.version.dll_GetFileVersionInfoA
test eax, eax
je 0x52177d
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
push 0x5217d8
mov eax, dword [ebp - 0xc]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x521755
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x20]
movzx eax, word [eax]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
call fcn.004084cc
movzx eax, ax
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x28], 0xb
lea edx, [ebp - 0x3c]
mov ecx, 2
mov eax, 0x5217fc
call fcn.0040e4a8
mov edx, dword [ebp - 0x24]
lea eax, [ebp - 8]
call fcn.004050f4
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 8]
call fcn.00405574
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x52177d
mov edx, ebx
mov eax, dword [ebp - 0x10]
call fcn.0040dbf4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52179d
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00402e30
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5217c7
lea eax, [ebp - 0x24]
call fcn.0040505c
lea eax, [ebp - 8]
mov edx, 2
call fcn.00405080
ret
Function at 0x521d9c
Capabilities:
Get hostname

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], ebx
mov edi, ecx
mov esi, edx
mov ebx, eax
lea eax, [ebp - 0x10]
mov edx, dword [0x41f3bc]
call fcn.00405bc4
xor eax, eax
push ebp
push 0x521ee0
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x54374c], 0
jne 0x521def
mov ecx, dword [0x544c04]
mov dl, 1
mov eax, dword [0x40bba8]
call fcn.0041146c
call fcn.004049b0
lea eax, [ebp - 0x20]
xor ecx, ecx
mov edx, 0x10
call fcn.004038c8
mov eax, ebx
call fcn.00405910
mov dword [ebp - 0x1c], eax
push esi
push edi
mov esi, 0x521ef0
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea eax, [ebp - 0x30]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xc]
call fcn.00406de4
xor eax, eax
mov dword [ebp - 8], eax
mov eax, ebx
call fcn.00405920
test eax, eax
jle 0x521e87
mov dword [ebp - 4], 0x10
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.kernel32.dll_GetComputerNameA
test eax, eax
je 0x521e80
lea eax, [ebp - 0x44]
mov edx, ebx
call fcn.004052e4
mov eax, dword [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
lea edx, [ebp - 0x40]
mov ecx, 0x10
call fcn.004052cc
mov eax, dword [ebp - 0x48]
pop edx
call fcn.0040cbac
test eax, eax
jne 0x521e80
mov ebx, 0x15
jmp 0x521e8c
mov ebx, 0x10
jmp 0x521e8c
mov ebx, 0x15
lea eax, [ebp - 0x10]
push eax
push 1
lea eax, [ebp - 0x20]
push eax
push ebx
push 0
push esi
call dword [0x54374c]
call fcn.00521c14
mov eax, dword [ebp - 8]
call fcn.00521c14
mov eax, edi
mov edx, dword [ebp - 0xc]
call fcn.00406dfc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x521ee7
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.00405080
lea eax, [ebp - 0x10]
mov edx, dword [0x41f3bc]
call fcn.00405c94
ret
Function at 0x529b64
Capabilities:
Hash data with md5

Disassembly:
push ebx
mov ebx, eax
mov eax, ebx
xor ecx, ecx
mov edx, 0x58
call fcn.004038c8
mov dword [ebx], 0x67452301
mov dword [ebx + 4], 0xefcdab89
mov dword [ebx + 8], 0x98badcfe
mov dword [ebx + 0xc], 0x10325476
pop ebx
ret

Function at 0x52c71c
Capabilities:
Find taskbar
Hide graphical window
Hide the windows taskbar

Disassembly:
push ebx
add esp, 0xffffffcc
mov ebx, eax
mov eax, dword [0x54a794]
call fcn.0052c69c
xor eax, eax
call fcn.0052c440
mov eax, esp
mov edx, 0x52c77c
call fcn.0040da84
push 0
lea eax, [esp + 4]
push eax
call sub.user32.dll_FindWindowA
push 9
push eax
call sub.user32.dll_ShowWindow
push 0
push 0x52c78c
call sub.user32.dll_FindWindowA
push 5
push eax
call sub.user32.dll_ShowWindow
mov eax, ebx
call fcn.004696f8
add esp, 0x34
pop ebx
ret

Function at 0x52c7b4
Capabilities:
Find taskbar
Hide graphical window
Hide the windows taskbar

Disassembly:
add esp, 0xffffffcc
mov eax, dword [0x5453ac]
mov eax, dword [eax]
call fcn.0046caa4
mov eax, dword [0x54a794]
call fcn.0052c6d4
mov al, 1
call fcn.0052c440
push 0
push 0x52c7ec
call sub.user32.dll_FindWindowA
push 0
push eax
call sub.user32.dll_ShowWindow
mov eax, esp
mov edx, 0x52c7fc
call fcn.0040da84
push 0
lea eax, [esp + 4]
push eax
call sub.user32.dll_FindWindowA
push 0
push eax
call sub.user32.dll_ShowWindow
add esp, 0x34
ret
Function at 0x52ce84
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffffd0
mov dword [esp], edx
mov ebx, eax
lea edx, [esp + 0x20]
mov eax, dword [esp]
mov ecx, 0x10
call fcn.00403088
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
dec eax
test eax, eax
jl 0x52cfe0
inc eax
mov dword [esp + 0x1c], eax
lea eax, [ebx + 8]
mov ebx, eax
mov edx, dword [esp + 0xc]
mov ecx, dword [ebx]
mov esi, dword [esp + 0x10]
mov eax, dword [ebx + 4]
add edx, eax
add eax, edx
mov edi, edx
shr edi, 7
xor edx, edi
add ecx, edx
add edx, ecx
mov edi, ecx
shl edi, 0xd
xor ecx, edi
add esi, ecx
add ecx, esi
mov edi, esi
shr edi, 0x11
xor esi, edi
add eax, esi
add esi, eax
mov edi, eax
shl edi, 9
xor eax, edi
add edx, eax
add eax, edx
mov edi, edx
shr edi, 3
xor edx, edi
add ecx, edx
add edx, ecx
mov edi, ecx
shl edi, 7
xor ecx, edi
add esi, ecx
add ecx, esi
mov edi, eax
shr edi, 0xf
xor esi, edi
add eax, esi
add esi, eax
mov edi, eax
shl edi, 0xb
xor eax, edi
mov edi, edx
mov edx, esi
mov esi, edi
mov edi, ecx
mov ecx, eax
mov eax, edi
add edx, eax
add eax, edx
mov edi, edx
shr edi, 7
xor edx, edi
add ecx, edx
add edx, ecx
mov edi, ecx
shl edi, 0xd
xor ecx, edi
add esi, ecx
add ecx, esi
mov edi, esi
shr edi, 0x11
xor esi, edi
add eax, esi
add esi, eax
mov edi, eax
shl edi, 9
xor eax, edi
add edx, eax
add eax, edx
mov edi, edx
shr edi, 3
xor edx, edi
add ecx, edx
add edx, ecx
mov edi, ecx
shl edi, 7
xor ecx, edi
add esi, ecx
add ecx, esi
mov edi, eax
shr edi, 0xf
xor esi, edi
add eax, esi
add esi, eax
mov edi, eax
shl edi, 0xb
xor eax, edi
xor edx, dword [esp + 0x14]
xor ecx, edx
mov dword [esp + 4], ecx
xor esi, dword [esp + 0x18]
xor eax, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
add ebx, 8
dec dword [esp + 0x1c]
jne 0x52ced6
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov edx, dword [esp]
lea eax, [esp + 0x20]
mov ecx, 0x10
call fcn.00403088
add esp, 0x30
pop edi
pop esi
pop ebx
ret
Function at 0x52d018
Capabilities:
Encrypt data using des

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff74
mov byte [esp + 8], cl
mov dword [esp + 4], edx
mov dword [esp], eax
mov ecx, 0x38
mov esi, 0x543940
lea eax, [esp + 0x1c]
movzx edi, byte [esi]
mov edx, edi
and edx, 0x80000007
jns 0x52d04d
dec edx
or edx, 0xfffffff8
inc edx
test edi, edi
jns 0x52d054
add edi, 7
sar edi, 3
mov ebx, dword [esp]
mov bl, byte [ebx + edi]
and bl, byte [edx + 0x5439b8]
setne dl
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x52d03b
xor eax, eax
mov dword [esp + 0x14], eax
mov esi, 0x5439a8
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
xor ecx, ecx
lea eax, [esp + 0x54]
movzx edi, byte [esi]
add edi, ecx
cmp edi, 0x1c
jge 0x52d09f
mov dl, byte [esp + edi + 0x1c]
mov byte [eax], dl
mov dl, byte [esp + edi + 0x38]
mov byte [eax + 0x1c], dl
jmp 0x52d0ab
mov dl, byte [esp + edi]
mov byte [eax], dl
mov dl, byte [esp + edi + 0x1c]
mov byte [eax + 0x1c], dl
inc ecx
inc eax
cmp ecx, 0x1c
jne 0x52d086
lea eax, [esp + 9]
xor ecx, ecx
mov edx, 8
call fcn.004038c8
xor ecx, ecx
mov ebp, 0x543978
xor eax, eax
mov al, byte [ebp]
cmp byte [esp + eax + 0x54], 0
je 0x52d0fa
mov eax, ecx
mov ebx, 6
cdq
idiv ebx
mov edi, eax
mov eax, ecx
mov ebx, 6
cdq
idiv ebx
xor eax, eax
mov al, byte [edx + 0x5439b8]
shr eax, 2
or byte [esp + edi + 9], al
inc ecx
inc ebp
cmp ecx, 0x30
jne 0x52d0c9
cmp byte [esp + 8], 0
je 0x52d165
xor eax, eax
mov al, byte [esp + 9]
shl eax, 0x18
xor edx, edx
mov dl, byte [esp + 0xb]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esp + 0xd]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esp + 0xf]
or eax, edx
mov edx, dword [esp + 0x18]
mov dword [edx], eax
xor eax, eax
mov al, byte [esp + 0xa]
shl eax, 0x18
xor edx, edx
mov dl, byte [esp + 0xc]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esp + 0xe]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esp + 0x10]
or eax, edx
mov edx, dword [esp + 0x18]
mov dword [edx + 4], eax
jmp 0x52d1d8
xor edx, edx
mov dl, byte [esp + 9]
shl edx, 0x18
xor ecx, ecx
mov cl, byte [esp + 0xb]
shl ecx, 0x10
or edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0xd]
shl ecx, 8
or edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0xf]
or edx, ecx
mov eax, dword [esp + 0x14]
add eax, eax
mov ecx, eax
inc ecx
mov ebx, 0x1f
sub ebx, ecx
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*4], edx
xor edx, edx
mov dl, byte [esp + 0xa]
shl edx, 0x18
xor ecx, ecx
mov cl, byte [esp + 0xc]
shl ecx, 0x10
or edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0xe]
shl ecx, 8
or edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0x10]
or edx, ecx
mov ecx, 0x1f
sub ecx, eax
mov eax, dword [esp + 4]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x14]
add dword [esp + 0x18], 8
inc esi
cmp dword [esp + 0x14], 0x10
jne 0x52d080
mov eax, dword [esp + 4]
mov dl, byte [esp + 8]
mov byte [eax + 0x80], dl
add esp, 0x8c
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x52d208
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff5c
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov dl, byte [ebp + 8]
mov byte [eax], dl
mov edx, ebx
mov eax, 0x10
call fcn.0052cd94
mov edx, eax
mov eax, 4
call fcn.0052cd9c
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x24], 0x543930
mov eax, dword [ebp - 4]
add eax, 8
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ecx]
mov ecx, esi
mov ebx, dword [ebp - 8]
mov ebx, dword [ebx + 4]
mov dword [ebp - 0xc], esi
mov edi, dword [ebp - 8]
mov edi, dword [edi + 8]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], esi
mov edi, dword [ebp - 8]
mov edi, dword [edi + 0xc]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], esi
mov esi, 8
mov edi, ecx
shl edi, 0xb
xor edx, edi
add dword [ebp - 0xc], edx
add ecx, ebx
mov edi, ebx
shr edi, 2
xor ecx, edi
add dword [ebp - 0x10], ecx
add ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
shl edi, 8
xor ebx, edi
add dword [ebp - 0x14], ebx
mov edi, dword [ebp - 0x10]
add dword [ebp - 0xc], edi
mov edi, dword [ebp - 0x10]
shr edi, 0x10
xor dword [ebp - 0xc], edi
mov edi, dword [ebp - 0xc]
add dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x14]
add dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x14]
shl edi, 0xa
xor dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x10]
add dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x18]
add dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x18]
shr edi, 4
xor dword [ebp - 0x14], edi
add edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
add dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x1c]
shl edi, 8
xor dword [ebp - 0x18], edi
add ecx, dword [ebp - 0x18]
add dword [ebp - 0x1c], edx
mov edi, edx
shr edi, 9
xor dword [ebp - 0x1c], edi
add ebx, dword [ebp - 0x1c]
add edx, ecx
dec esi
jne 0x52d288
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov edx, dword [ebp - 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x14]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 0x1c], edx
add eax, 0x20
add dword [ebp - 0x24], 4
dec dword [ebp - 0x20]
jne 0x52d256
cmp byte [ebp + 8], 0
jne 0x52d3b7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
dec eax
test eax, eax
jl 0x52d38c
inc eax
mov dword [ebp - 0x20], 0
mov edx, dword [ebp - 4]
add edx, 8
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 4]
dec ecx
sub ecx, dword [ebp - 0x20]
mov ebx, dword [edx]
mov dword [ebp + ecx*8 - 0xa4], ebx
mov ebx, dword [edx + 4]
mov dword [ebp + ecx*8 - 0xa0], ebx
inc dword [ebp - 0x20]
add edx, 8
dec eax
jne 0x52d366
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
dec eax
test eax, eax
jl 0x52d3b7
inc eax
lea edx, [ebp - 0xa4]
mov ebx, dword [ebp - 4]
add ebx, 8
mov ecx, dword [edx]
mov dword [ebx], ecx
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
add ebx, 8
add edx, 8
dec eax
jne 0x52d3a4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x52d50c
Capabilities:
Encode data using xor
Encrypt data using des

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff0
mov dword [esp], edx
mov edi, eax
mov ebx, 0x5439c0
lea esi, [esp + 4]
lea ecx, [esp + 8]
mov edx, esi
mov eax, dword [esp]
call fcn.0052d3c0
lea edx, [esp + 8]
mov eax, esi
call fcn.0052d410
mov dword [esp + 0xc], edi
mov edx, 8
mov eax, dword [esp + 8]
shr eax, 4
mov ecx, dword [esp + 8]
shl ecx, 0x1c
or eax, ecx
mov ecx, dword [esp + 0xc]
xor eax, dword [ecx]
add dword [esp + 0xc], 4
mov ecx, eax
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x600]
xor dword [esi], ecx
mov ecx, eax
shr ecx, 8
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x400]
xor dword [esi], ecx
mov ecx, eax
shr ecx, 0x10
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x200]
xor dword [esi], ecx
shr eax, 0x18
and eax, 0x3f
mov eax, dword [ebx + eax*4]
xor dword [esi], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
xor eax, dword [esp + 8]
add dword [esp + 0xc], 4
mov ecx, eax
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x700]
xor dword [esi], ecx
mov ecx, eax
shr ecx, 8
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x500]
xor dword [esi], ecx
mov ecx, eax
shr ecx, 0x10
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x300]
xor dword [esi], ecx
shr eax, 0x18
and eax, 0x3f
mov eax, dword [ebx + eax*4 + 0x100]
xor dword [esi], eax
mov eax, dword [esi]
shr eax, 4
mov ecx, dword [esi]
shl ecx, 0x1c
or eax, ecx
mov ecx, dword [esp + 0xc]
xor eax, dword [ecx]
add dword [esp + 0xc], 4
mov ecx, eax
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x600]
xor dword [esp + 8], ecx
mov ecx, eax
shr ecx, 8
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x400]
xor dword [esp + 8], ecx
mov ecx, eax
shr ecx, 0x10
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x200]
xor dword [esp + 8], ecx
shr eax, 0x18
and eax, 0x3f
mov eax, dword [ebx + eax*4]
xor dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
xor eax, dword [esi]
add dword [esp + 0xc], 4
mov ecx, eax
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x700]
xor dword [esp + 8], ecx
mov ecx, eax
shr ecx, 8
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x500]
xor dword [esp + 8], ecx
mov ecx, eax
shr ecx, 0x10
and ecx, 0x3f
mov ecx, dword [ebx + ecx*4 + 0x300]
xor dword [esp + 8], ecx
shr eax, 0x18
and eax, 0x3f
mov eax, dword [ebx + eax*4 + 0x100]
xor dword [esp + 8], eax
dec edx
jne 0x52d542
lea edx, [esp + 8]
mov eax, esi
call fcn.0052d48c
mov ecx, dword [esp]
mov edx, dword [esp + 8]
mov eax, dword [esi]
call fcn.0052d3ec
add esp, 0x10
pop edi
pop esi
pop ebx
ret

Function at 0x52d800
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffee8
mov ebx, eax
mov edx, esp
mov eax, ebx
mov ecx, 0x118
call fcn.00403088
xor eax, eax
mov dword [esp], eax
mov esi, 0x543830
lea edi, [esp + 4]
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], 0x55555555
mov dword [esp + 0x10c], 0x55555555
mov dword [esp + 0x110], 0x55555555
mov dword [esp + 0x114], 0x55555555
mov edx, ebx
mov eax, esp
mov ecx, 0x118
call fcn.00403088
add esp, 0x118
pop edi
pop esi
pop ebx
ret
Function at 0x52d87c
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffee0
mov edi, ecx
mov ebx, edx
mov dword [esp], eax
lea edx, [esp + 8]
mov eax, dword [esp]
mov ecx, 0x118
call fcn.00403088
dec edi
test edi, edi
jl 0x52d99b
inc edi
mov dword [esp + 4], edi
mov esi, ebx
mov al, byte [esi]
mov edx, dword [esp + 8]
xor byte [esp + edx + 0xc], al
inc dword [esp + 8]
cmp dword [esp + 8], 0x100
jne 0x52d8cc
xor edx, edx
mov dword [esp + 8], edx
mov edx, dword [esp + 0x10c]
xor byte [esp + edx + 0x110], al
inc dword [esp + 0x10c]
cmp dword [esp + 0x10c], 8
jne 0x52d990
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
mov ebx, dword [esp + 0x114]
mov eax, dword [esp + 0x110]
mov edi, 4
add edx, eax
add eax, edx
mov ebp, edx
shr ebp, 7
xor edx, ebp
add ecx, edx
add edx, ecx
mov ebp, ecx
shl ebp, 0xd
xor ecx, ebp
add ebx, ecx
add ecx, ebx
mov ebp, ebx
shr ebp, 0x11
xor ebx, ebp
add eax, ebx
add ebx, eax
mov ebp, eax
shl ebp, 9
xor eax, ebp
add edx, eax
add eax, edx
mov ebp, edx
shr ebp, 3
xor edx, ebp
add ecx, edx
add edx, ecx
mov ebp, ecx
shl ebp, 7
xor ecx, ebp
add ebx, ecx
add ecx, ebx
mov ebp, eax
shr ebp, 0xf
xor ebx, ebp
add eax, ebx
add ebx, eax
mov ebp, eax
shl ebp, 0xb
xor eax, ebp
dec edi
jne 0x52d910
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], eax
xor eax, eax
mov dword [esp + 0x10c], eax
inc esi
dec dword [esp + 4]
jne 0x52d8ae
mov edx, dword [esp]
lea eax, [esp + 8]
mov ecx, 0x118
call fcn.00403088
add esp, 0x120
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x52daa0
Capabilities:
Encode data using xor

Disassembly:
push esi
push edi
mov esi, eax
mov edi, edx
push ecx
shr ecx, 2
je 0x52daba
cld
mov eax, dword [edi]
xor dword [esi], eax
add esi, 4
add edi, 4
dec ecx
jne 0x52daad
pop ecx
and ecx, 3
je 0x52dac9
mov al, byte [edi]
xor byte [esi], al
inc esi
inc edi
dec ecx
jne 0x52dac0
pop edi
pop esi
ret
Function at 0x52e30c
Capabilities:
Encode data using base64

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffff88
mov dword [esp + 4], edx
mov dword [esp], eax
lea eax, [esp + 0x39]
xor ecx, ecx
mov edx, 0x3f
call fcn.004038c8
lea edx, [esp + 0xc]
mov ecx, 0x2d
mov eax, dword [esp]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x52e48f
mov edi, 1
xor esi, esi
jmp 0x52e3cf
mov al, byte [esp + edi + 0xb]
xor edx, edx
mov dl, al
shr edx, 2
and dl, 0x3f
and edx, 0xff
mov dl, byte [edx + 0x5441c8]
mov byte [esp + esi + 0x39], dl
mov edx, eax
shl edx, 4
xor eax, eax
mov al, byte [esp + edi + 0xc]
shr eax, 4
or dl, al
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x5441c8]
mov byte [esp + esi + 0x3a], al
mov dl, byte [esp + edi + 0xc]
shl edx, 2
xor eax, eax
mov al, byte [esp + edi + 0xd]
shr eax, 6
or dl, al
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x5441c8]
mov byte [esp + esi + 0x3b], al
mov dl, byte [esp + edi + 0xd]
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x5441c8]
mov byte [esp + esi + 0x3c], al
add edi, 3
add esi, 4
mov eax, dword [esp + 8]
sub eax, 2
cmp edi, eax
jle 0x52e352
cmp edi, dword [esp + 8]
jg 0x52e475
mov al, byte [esp + edi + 0xb]
xor edx, edx
mov dl, al
shr edx, 2
and dl, 0x3f
and edx, 0xff
mov dl, byte [edx + 0x5441c8]
mov byte [esp + esi + 0x39], dl
cmp edi, dword [esp + 8]
jne 0x52e42c
mov edx, eax
shl edx, 4
and dl, 0x30
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x5441c8]
mov byte [esp + esi + 0x3a], al
mov byte [esp + esi + 0x3b], 0x3d
jmp 0x52e46d
mov edx, eax
shl edx, 4
and dl, 0x30
xor eax, eax
mov al, byte [esp + edi + 0xc]
shr eax, 4
and al, 0xf
or dl, al
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x5441c8]
mov byte [esp + esi + 0x3a], al
mov dl, byte [esp + edi + 0xc]
shl edx, 2
and dl, 0x3c
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x5441c8]
mov byte [esp + esi + 0x3b], al
mov byte [esp + esi + 0x3c], 0x3d
add esi, 4
lea edx, [esp + 0x39]
mov ecx, esi
mov eax, dword [esp + 4]
mov ebx, dword [eax]
call dword [ebx + 0x10]
cmp dword [esp + 8], 0x2d
jge 0x52e329
add esp, 0x78
pop edi
pop esi
pop ebx
ret

Function at 0x52f1f4
Capabilities:
Get common file path

Disassembly:
push ebx
add esp, 0xfffffbfc
mov ebx, eax
push esp
push 0x400
call sub.kernel32.dll_GetTempPathA
mov edx, ebx
mov eax, esp
call fcn.0040dbf4
add esp, 0x404
pop ebx
ret