joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4610db
Capabilities:
Shutdown system

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
call fcn.00459073
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
and eax, 1
push 0x10
pop esi
push 4
mov dword [ebp - 4], eax
pop eax
cmovne esi, eax
test edi, edi
je 0x461179
cmp edi, 1
je 0x461174
push 2
pop ebx
cmp edi, ebx
je 0x46112a
cmp edi, 3
je 0x46117c
jle 0x46116d
cmp edi, 5
jle 0x46112e
cmp edi, 6
jne 0x46116d
call fcn.00457e14
push 0x40
test al, al
pop ecx
cmovne ebx, ecx
or esi, ebx
jmp 0x46117c
call fcn.004609ce
test al, al
jne 0x46113b
xor al, al
jmp 0x4611ac
mov ecx, dword [0x4e0f50]
test ecx, ecx
jne 0x46114f
push 0x78
call fcn.0045907c
pop ecx
jmp 0x461137
mov eax, dword [ebp + 0xc]
shr eax, 1
and eax, 1
push eax
push dword [ebp - 4]
xor eax, eax
cmp edi, 5
sete al
push eax
call ecx
test al, al
setne al
jmp 0x4611ac
call fcn.0045908a
jmp 0x461137
or esi, 8
jmp 0x46117c
or esi, 1
push 0
push 1
mov edi, str.SeShutdownPrivilege
push edi
call fcn.00460a07
add esp, 0xc
push dword [ebp + 0x10]
push esi
call dword [sym.imp.USER32.dll_ExitWindowsEx]
push 0
test eax, eax
push 0
push edi
setne bl
call fcn.00460a07
add esp, 0xc
mov al, bl
pop edi
pop esi
pop ebx
leave
ret

Function at 0x462687
Capabilities:
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
cmp dword [ebp + 0xc], 0
je 0x462743
mov eax, dword [ebp + 0x10]
and eax, 2
mov dword [ebp - 8], eax
jne 0x4626ae
call fcn.00462651
test al, al
je 0x462743
mov eax, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
mov esi, dword [esi + 4]
sub eax, 1
je 0x4626cd
sub eax, 6
je 0x4626cd
sub eax, 6
jne 0x4626ce
add esi, 2
jmp 0x4626ce
inc esi
and dword [ebp - 4], 0
push esi
call fcn.004578ee
mov edi, eax
pop ecx
test edi, edi
je 0x462724
push edi
call fcn.0045794d
pop ecx
mov ecx, eax
mov dword [ebp - 4], ecx
test ecx, ecx
je 0x462724
mov edx, dword [ebp + 8]
mov eax, 0x49cb70
push esi
cmp dword [edx], 0
cmovne eax, dword [edx]
push eax
push ecx
call fcn.00480920
push edi
call fcn.00457988
add esp, 0x10
test byte [ebp + 0x10], 1
jne 0x46271a
call dword [sym.imp.USER32.dll_EmptyClipboard]
push edi
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_SetClipboardData]
cmp dword [ebp - 8], 0
jne 0x46272f
call sub.USER32.dll_CloseClipboard
test edi, edi
pop edi
pop esi
je 0x46273f
cmp dword [ebp - 4], 0
je 0x46273f
mov al, 1
leave
ret
xor eax, eax
leave
ret
xor al, al
leave
ret

Function at 0x4643bd
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
call fcn.00428cde
cmp dword [ebp + 0xc], 0
je 0x4643f6
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov ecx, eax
test ecx, ecx
jle 0x4643f6
lea eax, [ecx + 1]
add ecx, ecx
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.00423cdd
push eax
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov eax, dword [ebp + 8]
pop ebp
ret
Function at 0x465dd1
Capabilities:
Get common file path

Disassembly:
mov eax, 0x49b269
call fcn.0046c73c
sub esp, 0x250
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x14]
or ecx, 0x100000
mov dword [ebx + 0x14], ecx
or edi, 0xffffffff
mov dword [ebp - 0x18], edi
movzx eax, cx
sub eax, 1
je 0x465e16
sub eax, 1
je 0x465e12
sub eax, 1
jne 0x465e1c
push 0x17
jmp 0x465e18
push 2
jmp 0x465e18
push 0x11
pop edi
mov dword [ebp - 0x18], edi
and dword [ebp - 0x20], 0
test edi, edi
js 0x465e34
lea eax, [ebp - 0x20]
push eax
push edi
push dword [ebx]
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov ecx, dword [ebx + 0x14]
test ecx, 0x80000
je 0x465e77
push edi
lea eax, [ebp - 0x2c]
push eax
call fcn.00466a52
pop ecx
pop ecx
push 0
sub esp, 0xc
mov esi, esp
mov ecx, esi
call fcn.00428cde
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.0042f968
lea esi, [ebx + 0x18]
push esi
call fcn.00445fdc
add esp, 0x14
lea ecx, [ebp - 0x2c]
call fcn.00426615
jmp 0x465e7a
lea esi, [ebx + 0x18]
push esi
call fcn.00442488
push 0
push 0x20
lea eax, [ebp - 0x4c]
push eax
call fcn.0042a502
add esp, 0x10
mov eax, dword [ebx]
mov dword [ebp - 0x4c], eax
mov eax, 0x49cb74
cmp dword [ebx + 8], 0
cmovne eax, dword [ebx + 8]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x38], 0x462197
mov dword [ebp - 0x34], ebx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x48], eax
push 0x41
pop eax
test dword [ebx + 0x14], 0x20000
mov ecx, 0x8041
cmove eax, ecx
mov dword [ebp - 0x3c], eax
test dword [ebx + 0x14], 0x40000
je 0x465ed9
or eax, 0x10
mov dword [ebp - 0x3c], eax
and dword [ebp - 4], 0
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderW]
mov esi, eax
mov dword [ebp - 0x50], esi
test esi, esi
je 0x465fbf
lea eax, [ebp - 0x25c]
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
setne byte [ebp - 0x11]
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 4], 2
and dword [ebp - 0x1c], 0
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
jne 0x465f3e
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x465f3e
mov eax, dword [ecx]
push esi
push ecx
call dword [eax + 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x465f45
push esi
call dword [sym.imp.ole32.dll_CoTaskMemFree]
or dword [ebp - 4], 0xffffffff
jmp 0x465f5b
cmp byte [ebp - 0x11], 0
je 0x465fbf
push closesocket
lea ecx, [ebp - 0x25c]
push ecx
lea ecx, [ebx + 0x24]
call fcn.0042fedc
test dword [ebx + 0x14], 0x80000
je 0x465fb1
push edi
lea eax, [ebp - 0x2c]
push eax
call fcn.00466a52
push ecx
mov esi, esp
mov ecx, esi
call fcn.00428cde
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.0042f968
lea eax, [ebx + 0x24]
push eax
call fcn.004455a5
add esp, 0x10
lea ecx, [ebp - 0x2c]
call fcn.00426615
mov al, 1
jmp 0x465fc1
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4666c5
Capabilities:
Create process on windows

Disassembly:
mov eax, 0x49b27d
call fcn.0046c73c
push ecx
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, dword [ebp + 8]
push esi
call fcn.00432524
pop ecx
test al, al
je 0x4666f4
push 0x7b
call fcn.0045907c
pop ecx
xor al, al
jmp 0x46679d
call fcn.00459073
and dword [ebp - 4], 0
mov ebx, dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
mov edi, dword [ebp + 0x14]
push edi
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 0x14], eax
or dword [ebp - 4], 0xffffffff
jmp 0x46673a
cmp eax, 5
jne 0x46678d
test edi, edi
je 0x466754
push 0x49cf40
push edi
call fcn.004325e9
pop ecx
pop ecx
test al, al
je 0x4666ed
mov dword [ebp - 4], 2
push ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
push str.runas
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 0x14], eax
or dword [ebp - 4], 0xffffffff
jmp 0x46678d
cmp eax, 0x20
jle 0x4666ed
call fcn.00459073
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret

Function at 0x468155
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x218
xor eax, eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x218]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
cmp word [ebp - 0x218], 0
je 0x4681a1
mov ecx, dword [ebp + 8]
call fcn.00428cde
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x218]
push closesocket
push eax
call fcn.0042fedc
jmp 0x4681e7
call fcn.00457e07
test al, al
lea eax, [ebp - 0xc]
push eax
je 0x4681bc
call fcn.004594c0
mov dword [esp], str.System32
jmp 0x4681c8
call fcn.004594c0
mov dword [esp], str.System
cmp dword [eax], 0
mov ecx, 0x49cb74
cmovne ecx, dword [eax]
push ecx
push dword [ebp + 8]
call fcn.004453af
add esp, 0xc
lea ecx, [ebp - 0xc]
call fcn.00426615
mov eax, dword [ebp + 8]
leave
ret

Function at 0x468954
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push esi
push dword [ebp + 8]
mov esi, ecx
call fcn.004310e3
pop ecx
test al, al
je 0x468970
call fcn.0045908a
xor al, al
jmp 0x4689b3
push ebx
mov ecx, esi
call fcn.00468a99
call fcn.00459073
push dword [ebp + 8]
mov bl, byte [ebp + 0xc]
movzx eax, bl
push eax
push 0
mov byte [esi + 4], 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esi], eax
test eax, eax
je 0x4689b0
test bl, bl
je 0x4689a9
call sub.KERNEL32.dll_GetLastError
cmp eax, 0xb7
je 0x4689b0
mov byte [esi + 4], bl
mov al, 1
jmp 0x4689b2
xor al, al
pop ebx
pop esi
pop ebp
ret 8

Function at 0x469a66
Capabilities:
Terminate thread

Disassembly:
mov eax, 0x49b2cd
call fcn.0046c73c
push ecx
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, dword [ebp + 8]
test esi, esi
jne 0x469a83
xor al, al
jmp 0x469ab7
and dword [ebp - 4], 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_TerminateThread]
test eax, eax
setne bl
mov byte [ebp - 0x11], bl
or dword [ebp - 4], 0xffffffff
jmp 0x469aae
push esi
call fcn.004699d7
pop ecx
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x469b17
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 8], 0
je 0x469b29
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
pop ebp
ret

Function at 0x469b2b
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
lea eax, [ebp - 4]
xor edi, edi
push eax
mov eax, dword [ebp + 0x14]
and eax, 1
mov dword [ebp - 4], edi
shl eax, 2
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
push edi
push edi
call fcn.0048e61f
mov esi, eax
add esp, 0x18
test esi, esi
je 0x469b78
cmp dword [ebp + 0x10], 3
je 0x469b6b
push dword [ebp + 0x10]
push esi
call fcn.00469ac6
pop ecx
pop ecx
push edi
push dword [ebp - 4]
call fcn.00469967
pop ecx
pop ecx
mov eax, esi
pop edi
pop esi
leave
ret

Function at 0x46bfc5
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x46bfda
mov ecx, ebx
call fcn.00426615
cmp dword [0x4e2144], 0
je 0x46c15f
cmp dword [0x4e2154], 0
je 0x46c15f
cmp dword [0x4e2178], 0
je 0x46c15f
cmp dword [0x4e217c], 0
je 0x46c15f
cmp dword [0x4e2180], 0
je 0x46c15f
call fcn.00459073
mov eax, dword [0x4e2154]
xor ecx, ecx
push ecx
push ecx
push 3
push ecx
push ecx
push dword [ebp + 0x28]
push dword [ebp + 8]
push dword [0x4e2144]
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x46c167
push esi
push edi
push dword [ebp + 0x24]
call fcn.004310e3
mov edx, dword [ebp + 0x14]
test al, al
mov eax, dword [ebp + 0x14]
mov edi, 0x49de9c
cmove edi, dword [ebp + 0x24]
and edx, 0x10
or dword [ebp + 0x10], 0xffffffff
pop ecx
mov esi, dword [0x4e2178]
shl edx, 0x16
or edx, 0x200
push 0
mov ecx, edx
or ecx, 0x80000100
and al, 8
cmove ecx, edx
push ecx
push 0x4dde28
push 0
push str.HTTP_1.0
push dword [ebp + 0xc]
push edi
push dword [ebp - 4]
call esi
mov edi, eax
test edi, edi
je 0x46c13a
push dword [ebp + 0x20]
mov esi, dword [0x4e217c]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
call fcn.004315de
pop ecx
push eax
push dword [ebp + 0x18]
push edi
call esi
test eax, eax
je 0x46c13a
mov eax, dword [0x4e2180]
lea ecx, [ebp - 8]
push 0
push ecx
lea ecx, [ebp + 0x10]
mov dword [ebp - 8], 4
push ecx
push 0x20000013
push edi
call eax
test eax, eax
je 0x46c13a
cmp dword [ebp + 0x10], 0xc8
jne 0x46c13a
test byte [ebp + 0x14], 0x20
jne 0x46c13a
lea ecx, [ebp - 0x20]
call fcn.00401a6c
push dword [ebp + 0x2c]
call sub.KERNEL32.dll_GetTickCount
push eax
lea eax, [ebp - 0x20]
push eax
push edi
call fcn.0046c16d
add esp, 0x10
test al, al
jne 0x46c123
mov dword [ebp + 0x10], 0xfffffffe
jmp 0x46c132
test ebx, ebx
je 0x46c132
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.00425883
lea ecx, [ebp - 0x14]
call fcn.00426615
call sub.KERNEL32.dll_GetLastError
push edi
mov esi, eax
call fcn.0046c22b
push dword [ebp - 4]
call fcn.0046c22b
push esi
call fcn.0045907c
mov eax, dword [ebp + 0x10]
add esp, 0xc
pop edi
pop esi
jmp 0x46c16a
push 0x78
call fcn.0045907c
pop ecx
or eax, 0xffffffff
pop ebx
leave
ret
Function at 0x4700d0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov eax, dword [esp + 0xc]
push ebx
mov ebx, dword [esp + 8]
not eax
push esi
mov esi, dword [esp + 0x10]
push edi
cmp esi, 8
jbe 0x4701a6
test bl, 7
je 0x470109
nop
movzx ecx, byte [ebx]
dec esi
movzx edx, al
inc ebx
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x4b60e8]
test bl, 7
jne 0x4700f0
mov edi, esi
and esi, 7
and edi, 0xfffffff8
add edi, ebx
cmp ebx, edi
jae 0x4701a6
nop dword [eax + eax]
xor eax, dword [ebx]
add ebx, 4
mov dword [esp + 0x18], ebx
add dword [esp + 0x18], 4
mov ebx, dword [ebx]
mov ecx, ebx
shr ecx, 0x10
movzx edx, cl
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
mov edx, dword [edx*4 + 0x4b64e8]
xor edx, dword [ecx*4 + 0x4b68e8]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
xor edx, dword [ecx*4 + 0x4b74e8]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + 0x4b78e8]
mov ecx, ebx
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x4b60e8]
mov ecx, eax
shr ecx, 0x18
movzx eax, al
xor edx, dword [ecx*4 + 0x4b70e8]
movzx ecx, bl
mov ebx, dword [esp + 0x18]
xor edx, dword [ecx*4 + 0x4b6ce8]
xor edx, dword [eax*4 + 0x4b7ce8]
mov eax, edx
cmp ebx, edi
jb 0x470120
test esi, esi
je 0x4701ca
nop word [eax + eax]
movzx ecx, byte [ebx]
lea ebx, [ebx + 1]
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x4b60e8]
sub esi, 1
jne 0x4701b0
pop edi
pop esi
not eax
pop ebx
ret

Function at 0x4701d0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 0xc]
push ebx
mov ebx, dword [esp + 8]
not eax
push ebp
push esi
mov esi, dword [esp + 0x1c]
push edi
mov edi, dword [esp + 0x18]
not esi
cmp edi, 4
jbe 0x4702b6
mov dword [esp + 0x1c], ebx
test bl, 3
je 0x470228
nop word [eax + eax]
movzx ecx, byte [ebx]
dec edi
movzx edx, al
inc ebx
shrd eax, esi, 8
xor edx, ecx
shr esi, 8
xor eax, dword [edx*8 + 0x4b80e8]
xor esi, dword [edx*8 + 0x4b80ec]
test bl, 3
jne 0x470200
mov dword [esp + 0x1c], ebx
mov ebp, edi
xor edx, edx
and ebp, 0xfffffffc
and edi, 3
mov dword [esp + 0x18], edi
lea ecx, [ebx + ebp]
shr ebp, 2
cmp ebx, ecx
cmova ebp, edx
test ebp, ebp
je 0x4702b6
xor edi, edi
mov ebx, dword [ebx]
inc edi
xor ebx, eax
mov eax, ebx
shr eax, 0x10
movzx edx, al
mov eax, ebx
shr eax, 8
movzx ecx, al
mov eax, dword [edx*8 + 0x4b88e8]
mov edx, dword [edx*8 + 0x4b88ec]
xor eax, dword [ecx*8 + 0x4b90e8]
xor edx, dword [ecx*8 + 0x4b90ec]
mov ecx, ebx
shr ecx, 0x18
xor eax, dword [ecx*8 + 0x4b80e8]
xor edx, dword [ecx*8 + 0x4b80ec]
movzx ecx, bl
mov ebx, dword [esp + 0x1c]
add ebx, 4
mov dword [esp + 0x1c], ebx
xor eax, dword [ecx*8 + 0x4b98e8]
xor edx, dword [ecx*8 + 0x4b98ec]
xor eax, esi
xor edx, 0
mov esi, edx
cmp edi, ebp
jb 0x470247
mov edi, dword [esp + 0x18]
test edi, edi
je 0x4702e5
nop word [eax + eax]
movzx ecx, byte [ebx]
lea ebx, [ebx + 1]
movzx edx, al
shrd eax, esi, 8
xor edx, ecx
shr esi, 8
xor eax, dword [edx*8 + 0x4b80e8]
xor esi, dword [edx*8 + 0x4b80ec]
sub edi, 1
jne 0x4702c0
not esi
not eax
pop edi
mov edx, esi
pop esi
pop ebp
pop ebx
ret
Function at 0x477820
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 8]
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x1c]
push edi
mov dword [ebx], 0x4000400
test edx, edx
je 0x477861
lea eax, [ebx + 0x104]
mov ecx, edx
nop
movaps xmm0, xmmword [0x4b5f10]
lea eax, [eax + 0x10]
movups xmmword [eax - 0x110], xmm0
movaps xmm0, xmmword [0x4b5f10]
movups xmmword [eax - 0x10], xmm0
sub ecx, 1
jne 0x477840
cmp byte [esp + 0x28], 0
lea edi, [ebx + 0x204]
mov ecx, 0x80
mov eax, 0x4000400
rep stosd dword es:[edi], eax
jne 0x477a2c
push ebp
xor ebp, ebp
mov dword [esp + 0xc], ebp
test edx, edx
je 0x477a2b
lea eax, [ebx + 0x404]
mov dword [esp + 0x2c], eax
lea eax, [ebx + 0x4808]
mov dword [esp + 0x10], eax
push esi
mov edi, dword [ebx + 0x4804]
xor esi, esi
mov dword [eax], edi
movzx ecx, word [ebx]
mov eax, ecx
mov dword [esp + 0x28], edi
shr eax, 4
xor ecx, 0x7f0
shr ecx, 4
movzx eax, byte [eax + 0x4ba0e8]
movzx edx, byte [ecx + 0x4ba0e8]
movzx ecx, word [ebx + 2]
mov dword [esp + 0x18], eax
mov eax, ecx
shr eax, 4
xor ecx, 0x7f0
shr ecx, 4
movzx eax, byte [eax + 0x4ba0e8]
add eax, edx
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx + 0x4ba0e8]
add eax, edx
mov dword [esp + 0x20], eax
test edi, edi
je 0x477a08
cmp esi, 8
jae 0x477956
xor edi, edi
lea edx, [esi + 8]
mov ecx, edx
shr edx, 1
and ecx, 1
neg ecx
shr ecx, 4
lea eax, [edx + ebp*8]
and ecx, 0x7f
movzx eax, word [ebx + eax*2 + 4]
shr eax, 4
xor eax, ecx
movzx eax, byte [eax + 0x4ba0e8]
add edi, eax
cmp edx, 1
jne 0x477911
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
add eax, edi
mov edi, dword [esp + 0x28]
mov dword [ecx + esi*4], eax
inc esi
cmp esi, edi
jb 0x477907
jmp 0x477a08
cmp esi, edi
jae 0x477a08
nop
cmp esi, 0x10
jae 0x4779b5
xor edi, edi
mov edx, esi
nop dword [eax]
mov ecx, edx
shr edx, 1
and ecx, 1
neg ecx
shr ecx, 4
lea eax, [edx + ebp*8]
and ecx, 0x7f
movzx eax, word [ebx + eax*2 + 0x104]
shr eax, 4
xor eax, ecx
movzx eax, byte [eax + 0x4ba0e8]
add edi, eax
cmp edx, 1
jne 0x477970
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
add eax, edi
mov edi, dword [esp + 0x28]
mov dword [ecx + esi*4], eax
inc esi
cmp esi, edi
jb 0x477960
jmp 0x477a08
cmp esi, edi
jae 0x477a08
mov ebp, dword [esp + 0x28]
nop dword [eax]
xor edi, edi
lea eax, [esi + 0xf0]
mov edx, eax
shr eax, 1
and edx, 1
neg edx
shr edx, 4
movzx ecx, word [ebx + eax*2 + 0x204]
and edx, 0x7f
shr ecx, 4
xor ecx, edx
movzx ecx, byte [ecx + 0x4ba0e8]
add edi, ecx
cmp eax, 1
jne 0x4779c8
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
add eax, edi
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebp
jb 0x4779c0
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
inc ebp
add dword [esp + 0x30], 0x440
add eax, 4
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], eax
cmp ebp, dword [esp + 0x2c]
jb 0x4778a2
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x14
ret
Function at 0x477a40
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x18]
push ebp
push esi
mov esi, dword [esp + 0x24]
mov ebp, dword [ebx + 0x4804]
mov dword [esp + 0xc], ebp
mov dword [ebx + esi*4 + 0x4808], ebp
movzx ecx, word [ebx]
mov eax, ecx
xor ecx, 0x7f0
shr eax, 4
shr ecx, 4
movzx eax, byte [eax + 0x4ba0e8]
movzx edx, byte [ecx + 0x4ba0e8]
movzx ecx, word [ebx + 2]
mov dword [esp + 0x10], eax
mov eax, ecx
shr eax, 4
xor ecx, 0x7f0
shr ecx, 4
movzx eax, byte [eax + 0x4ba0e8]
add eax, edx
mov dword [esp + 0x14], eax
movzx eax, byte [ecx + 0x4ba0e8]
add eax, edx
mov dword [esp + 0x18], eax
imul eax, esi, 0x440
xor esi, esi
add eax, 0x404
add eax, ebx
mov dword [esp + 0x20], eax
test ebp, ebp
je 0x477bd5
push edi
nop word [eax + eax]
cmp esi, 8
jae 0x477b28
mov ebp, dword [esp + 0x28]
lea edx, [esi + 8]
xor edi, edi
nop
mov ecx, edx
shr edx, 1
and ecx, 1
neg ecx
shr ecx, 4
lea eax, [edx + ebp*8]
and ecx, 0x7f
movzx eax, word [ebx + eax*2 + 4]
shr eax, 4
xor eax, ecx
movzx eax, byte [eax + 0x4ba0e8]
add edi, eax
cmp edx, 1
jne 0x477ae0
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
add eax, edi
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebp
jb 0x477ad0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
cmp esi, ebp
jae 0x477bd4
cmp esi, 0x10
jae 0x477b8b
mov ebp, dword [esp + 0x28]
xor edi, edi
mov edx, esi
nop dword [eax]
mov ecx, edx
shr edx, 1
and ecx, 1
neg ecx
shr ecx, 4
lea eax, [edx + ebp*8]
and ecx, 0x7f
movzx eax, word [ebx + eax*2 + 0x104]
shr eax, 4
xor eax, ecx
movzx eax, byte [eax + 0x4ba0e8]
add edi, eax
cmp edx, 1
jne 0x477b40
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
add eax, edi
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebp
jb 0x477b30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
cmp esi, ebp
jae 0x477bd4
nop
xor edi, edi
lea eax, [esi + 0xf0]
mov edx, eax
shr eax, 1
and edx, 1
neg edx
shr edx, 4
movzx ecx, word [ebx + eax*2 + 0x204]
and edx, 0x7f
shr ecx, 4
xor ecx, edx
movzx ecx, byte [ecx + 0x4ba0e8]
add edi, ecx
cmp eax, 1
jne 0x477b98
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
add eax, edi
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebp
jb 0x477b90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
Function at 0x479b30
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x24]
mov edx, 0x3706
mov dword [esp + 0x24], edx
lea esi, [edi + 0x105a4]
lea ebp, [edi + 0x101a0]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebp
nop dword [eax + eax]
mov eax, dword [edi + 0x10da0]
xor ebx, ebx
test eax, eax
je 0x479bc4
nop dword [eax]
mov ebp, dword [esp + 0x24]
lea eax, [ebx + 0x40]
xor esi, esi
nop dword [eax]
mov edx, eax
shr eax, 1
and edx, 1
neg edx
shr edx, 4
lea ecx, [eax + ebp]
and edx, 0x7f
movzx ecx, word [edi + ecx*2]
shr ecx, 4
xor ecx, edx
movzx ecx, byte [ecx + 0x4ba0e8]
add esi, ecx
cmp eax, 1
jne 0x479b80
mov ebp, dword [esp + 0x10]
mov dword [ebp + ebx*4], esi
inc ebx
mov eax, dword [edi + 0x10da0]
cmp ebx, eax
jb 0x479b70
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov ecx, 0xe
cmp eax, ecx
jbe 0x479be7
nop dword [eax]
mov eax, ecx
shr eax, 1
shl eax, 4
sub eax, 0x50
add dword [ebp + ecx*4], eax
inc ecx
cmp ecx, dword [edi + 0x10da0]
jb 0x479bd0
mov eax, dword [ebp]
add edx, 0x40
mov dword [esi - 4], eax
mov eax, dword [ebp + 4]
mov dword [esi], eax
mov eax, dword [ebp + 8]
mov dword [esi + 4], eax
mov eax, dword [ebp + 0xc]
add ebp, 0x100
mov dword [esi + 8], eax
add esi, 0x200
mov dword [esp + 0x10], ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], esi
cmp edx, 0x3806
jb 0x479b60
mov ebx, 4
lea eax, [edi + 0x107b0]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
cmp ebx, 0x2000
jae 0x479c49
movzx esi, byte [ebx + 0x4ba168]
jmp 0x479c6f
mov eax, ebx
cmp ebx, 0x2000000
jae 0x479c62
shr eax, 0xc
movzx esi, byte [eax + 0x4ba168]
add esi, 0x18
jmp 0x479c6f
shr eax, 0x18
movzx esi, byte [eax + 0x4ba168]
add esi, 0x30
mov eax, esi
mov edx, esi
shr eax, 1
and edx, 1
dec eax
or edx, 2
mov ecx, eax
mov dword [esp + 0x18], eax
shl edx, cl
mov eax, ebx
mov ebx, dword [esp + 0x18]
mov ecx, 1
sub eax, edx
mov dword [esp + 0x1c], edx
xor ebp, ebp
mov dword [esp + 0x24], ecx
nop dword [eax + eax]
mov edx, eax
sub ecx, esi
add ecx, dword [esp + 0x1c]
and edx, 1
shr eax, 1
mov dword [esp + 0x18], eax
mov eax, edx
neg eax
movzx ecx, word [edi + ecx*2 + 0x700a]
shr eax, 4
shr ecx, 4
and eax, 0x7f
xor ecx, eax
movzx eax, byte [ecx + 0x4ba0e8]
mov ecx, dword [esp + 0x24]
add ebp, eax
mov eax, dword [esp + 0x18]
lea ecx, [edx + ecx*2]
mov dword [esp + 0x24], ecx
sub ebx, 1
jne 0x479ca0
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + esi*4 + 0x101a0]
mov ebx, dword [esp + 0x14]
add eax, ebp
inc ebx
mov dword [ecx - 0x200], eax
mov eax, dword [edi + esi*4 + 0x102a0]
add eax, ebp
mov dword [esp + 0x14], ebx
mov dword [ecx], eax
mov eax, dword [edi + esi*4 + 0x103a0]
add eax, ebp
mov dword [ecx + 0x200], eax
mov eax, dword [edi + esi*4 + 0x104a0]
add eax, ebp
mov dword [ecx + 0x400], eax
add ecx, 4
mov dword [esp + 0x10], ecx
cmp ebx, 0x80
jb 0x479c38
mov dword [edi + 0x10da4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
Function at 0x479d50
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x18]
mov ecx, 8
push edi
mov edi, dword [esp + 0x14]
xor ebx, ebx
mov edx, dword [edi + 0xaa4]
lea ebp, [edi + 0xaac]
mov eax, dword [edi + 0xaa8]
sub ecx, edx
and eax, dword [esp + 0x18]
shr esi, cl
mov ecx, edx
shl eax, cl
add esi, eax
imul eax, esi, 0x600
add ebp, eax
cmp byte [esp + 0x20], bl
jne 0x479da5
push dword [esp + 0x28]
push 8
push ebp
call fcn.0047b460
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
ret
mov edx, dword [esp + 0x28]
mov esi, 0x100
mov edi, dword [esp + 0x24]
add edx, esi
add edi, edi
mov ecx, esi
and ecx, edi
mov eax, edx
shr eax, 8
add ecx, esi
add eax, ecx
movzx ecx, word [ebp + eax*2]
mov eax, edx
shr eax, 7
add edx, edx
and eax, 1
shr ecx, 4
neg eax
shr eax, 4
and eax, 0x7f
xor ecx, eax
movzx eax, byte [ecx + 0x4ba0e8]
mov ecx, edi
xor ecx, edx
add ebx, eax
not ecx
and esi, ecx
cmp edx, 0x10000
jb 0x479db4
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
ret