joyce8/EMBER2024-capa huggingface dataset:
Function at 0x52ceb0
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
test dl, dl
je 0x52cecd
add esp, 0xfffffff0
call fcn.00405c98
mov esi, ecx
mov ebx, edx
mov edi, eax
xor eax, eax
push ebp
push 0x52cfa8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [esi + 0x34]
mov dword [edi + 4], eax
lea eax, [edi + 8]
mov edx, dword [esi + 8]
call fcn.004077d0
lea eax, [edi + 0xc]
mov edx, dword [esi + 0x20]
call fcn.004077d0
mov eax, dword [esi + 0x24]
mov dword [edi + 0x10], eax
lea eax, [edi + 0x14]
mov edx, dword [esi + 0x1c]
call fcn.004077d0
mov eax, dword [esi + 0x3c]
mov dword [edi + 0x20], eax
mov eax, dword [esi + 0x28]
mov dword [edi + 0x24], eax
call fcn.004179a0
fstp qword [ebp - 0x10]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
mov edx, dword [0x5431a8]
mov edx, dword [edx]
lea eax, [ebp - 4]
call fcn.00418694
call fcn.00417974
fstp qword [ebp - 0x18]
wait
push dword [ebp - 0x14]
push dword [ebp - 0x18]
mov edx, dword [0x542f04]
mov edx, dword [edx]
lea eax, [ebp - 8]
call fcn.00418694
push dword [ebp - 4]
push 0x52cfdc
push dword [ebp - 8]
lea eax, [edi + 0x18]
mov edx, 3
call fcn.00407d98
lea eax, [edi + 0x2c]
mov edx, dword [esi + 0x18]
call fcn.004077d0
lea eax, [edi + 0x28]
mov edx, dword [esi + 0x10]
call fcn.004077d0
movzx eax, byte [esi + 0x40]
mov byte [edi + 0x30], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52cfaf
lea eax, [ebp - 8]
mov edx, 2
call fcn.004077c8
ret
Function at 0x5302b4
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffde4
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x21c], edx
mov dword [ebp - 0x214], edx
mov dword [ebp - 0x218], edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x5304a8
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 1
xor edx, edx
push ebp
push 0x53043d
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x5caebc]
call fcn.004090bc
mov esi, eax
test esi, esi
jl 0x530419
inc esi
xor ebx, ebx
lea edi, [ebx + ebx*2]
mov eax, dword [0x5caebc]
cmp dword [eax + edi*4 + 8], 1
jne 0x530411
lea eax, [ebp - 0x210]
xor ecx, ecx
mov edx, 0x202
call fcn.00404d7c
push 0x202
lea eax, [ebp - 0x210]
push eax
call sub.user32.dll_GetForegroundWindow
push eax
call sub.user32.dll_GetWindowTextW
call sub.user32.dll_GetForegroundWindow
lea edx, [ebp - 4]
call fcn.004f5b74
lea edx, [ebp - 0x214]
mov eax, dword [ebp - 4]
call fcn.004145fc
mov eax, dword [ebp - 0x214]
push eax
mov eax, dword [0x5caebc]
mov eax, dword [eax + edi*4 + 4]
lea edx, [ebp - 0x218]
call fcn.004145fc
mov eax, dword [ebp - 0x218]
pop edx
call fcn.00408288
test eax, eax
je 0x530411
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x3b4]
cmp byte [eax + 4], 0
jne 0x530411
mov eax, dword [0x5caecc]
call fcn.0051e4d0
mov eax, dword [0x542d44]
mov eax, dword [eax]
movzx eax, byte [eax + 0x48e]
sub al, 1
jb 0x5303ca
je 0x5303d3
dec al
je 0x5303dc
jmp 0x5303e3
mov dword [ebp - 0xc], 0x3e8
jmp 0x5303e3
mov dword [ebp - 0xc], 0xea60
jmp 0x5303e3
mov dword [ebp - 0xc], 0x36ee80
mov eax, dword [0x542d44]
mov eax, dword [eax]
movzx edx, word [eax + 0x48c]
imul edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x3b4]
call fcn.00508750
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x3b4]
call fcn.00508778
inc ebx
dec esi
jne 0x530311
cmp byte [ebp - 0xd], 0
je 0x530433
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x3b4]
cmp byte [eax + 4], 0
je 0x530433
call fcn.00508784
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x530482
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5304af
lea eax, [ebp - 0x21c]
mov edx, 3
call fcn.004077c8
lea eax, [ebp - 4]
call fcn.004077c0
ret
Function at 0x530e54
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd80
xor edx, edx
mov dword [ebp - 0x280], edx
mov dword [ebp - 0x27c], edx
mov dword [ebp - 4], edx
lea eax, [ebp - 0x278]
mov edx, dword [0x40f590]
call fcn.004084c0
xor eax, eax
push ebp
push 0x530f7e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5cae60]
mov edx, dword [eax + 0x390]
lea eax, [ebp - 4]
mov ecx, 0x530f98
call fcn.00407cb4
lea eax, [ebp - 0x27c]
mov ecx, 0x530fb0
mov edx, dword [ebp - 4]
call fcn.00407cb4
mov eax, dword [ebp - 0x27c]
lea ecx, [ebp - 0x278]
mov edx, 0x1ff
call fcn.004158d4
test eax, eax
jne 0x530f47
mov eax, dword [ebp - 0x264]
mov edx, 0x530fc0
call fcn.00407eb8
je 0x530f2d
mov eax, dword [ebp - 0x264]
mov edx, 0x530fd0
call fcn.00407eb8
je 0x530f2d
cmp dword [ebp - 0x26c], 0
jne 0x530f2d
cmp dword [ebp - 0x270], 0
jne 0x530f2d
lea eax, [ebp - 0x280]
mov ecx, dword [ebp - 0x264]
mov edx, dword [ebp - 4]
call fcn.00407cb4
mov eax, dword [ebp - 0x280]
call fcn.0040785c
push eax
call sub.kernel32.dll_DeleteFileW
lea eax, [ebp - 0x278]
call fcn.00415924
test eax, eax
je 0x530ed2
lea eax, [ebp - 0x278]
call fcn.00415948
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x530f85
lea eax, [ebp - 0x280]
mov edx, 2
call fcn.004077c8
lea eax, [ebp - 0x278]
mov edx, dword [0x40f590]
call fcn.00408598
lea eax, [ebp - 4]
call fcn.004077c0
ret
Function at 0x531d58
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
mov ecx, 7
push 0
push 0
dec ecx
jne 0x531d60
push ecx
push ebx
push esi
push edi
mov esi, edx
lea edi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x531f41
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x542d44]
mov eax, dword [eax]
cmp byte [eax + 0x490], 0
je 0x531efc
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x531da9
call sub.user32.dll_GetForegroundWindow
mov ebx, eax
jmp 0x531dab
mov ebx, eax
mov eax, 0x101
call fcn.0041643c
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
xor ecx, ecx
mov edx, 0x101
call fcn.00404d7c
push pe_nt_image_headers32
mov eax, dword [ebp - 8]
push eax
push ebx
call sub.user32.dll_GetWindowTextW
xor edx, edx
push ebp
push 0x531ef5
push dword fs:[edx]
mov dword fs:[edx], esp
push 0xffffffffffffffff
lea edx, [ebp - 0x20]
mov eax, dword [0x5caeac]
call fcn.00415cac
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c0]
call fcn.00508c30
push eax
call sub.kernel32.dll_WaitForSingleObject
sub eax, 1
jae 0x531ebb
lea edx, [ebp - 0x24]
mov eax, dword [0x5caeac]
call fcn.00415cac
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c0]
call fcn.00508c30
push eax
call sub.kernel32.dll_ResetEvent
push 1
mov ecx, dword [0x5caeac]
mov dl, 1
mov eax, dword [0x507730]
call fcn.00507afc
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.00507cac
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xc]
call fcn.00507df4
lea edx, [ebp - 0x30]
mov eax, ebx
call fcn.004f5b74
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov ecx, 0
call fcn.00407a24
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
call fcn.00507df4
lea eax, [ebp - 0x38]
call fcn.004f5a88
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 0x34]
mov ecx, 0
call fcn.00407a24
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0xc]
call fcn.00507df4
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [ebp - 0xc], edx
call fcn.00405764
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x531efc
lea edx, [ebp - 0x3c]
mov eax, dword [0x5caeac]
call fcn.00415cac
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c0]
call fcn.00508c30
push eax
call sub.kernel32.dll_SetEvent
mov eax, dword [ebp - 8]
call fcn.0041648c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x531f48
lea eax, [ebp - 0x3c]
mov edx, 2
call fcn.004077c8
lea eax, [ebp - 0x34]
call fcn.00406a40
lea eax, [ebp - 0x30]
call fcn.004077c0
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.00406a64
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.004077c8
ret
Function at 0x532160
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdd8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x218], ebx
mov dword [ebp - 0x21c], ebx
mov dword [ebp - 0x220], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov edi, ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x5322da
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004179d4
fstp qword [ebp - 0x10]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
lea eax, [ebp - 8]
xor edx, edx
call fcn.00418694
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.004077d0
lea eax, [ebp - 0x212]
xor ecx, ecx
mov edx, 0x202
call fcn.00404d7c
push 0x202
lea eax, [ebp - 0x212]
push eax
call sub.user32.dll_GetForegroundWindow
push eax
call sub.user32.dll_GetWindowTextW
call sub.user32.dll_GetForegroundWindow
lea edx, [ebp - 4]
call fcn.004f5b74
lea edx, [ebp - 0x218]
mov eax, dword [ebp - 4]
call fcn.0041468c
mov eax, dword [ebp - 0x218]
push eax
lea eax, [ebp - 0x220]
call fcn.004f5c80
lea eax, [ebp - 0x220]
mov edx, 0x5322f4
call fcn.00407bf4
mov eax, dword [ebp - 0x220]
lea edx, [ebp - 0x21c]
call fcn.0041468c
mov edx, dword [ebp - 0x21c]
pop eax
call fcn.00407eb8
jne 0x532285
lea eax, [ebp - 0x224]
lea edx, [ebp - 0x212]
mov ecx, 0x101
call fcn.004079e0
cmp dword [ebp - 0x224], 0
jne 0x532285
push esi
push edi
mov esi, 0x532310
lea edi, [ebp - 0x212]
mov ecx, 0x80
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
mov eax, esi
lea edx, [ebp - 0x212]
mov ecx, 0x101
call fcn.004079e0
lea eax, [ebp - 0x228]
call fcn.004f5a88
mov edx, dword [ebp - 0x228]
mov eax, edi
call fcn.004077d0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5322e1
lea eax, [ebp - 0x228]
mov edx, 5
call fcn.004077c8
lea eax, [ebp - 8]
mov edx, 2
call fcn.004077c8
ret
Function at 0x5328d8
Capabilities:
Copy file
Delete file

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x5329c6
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xc]
mov ecx, 0x5329e0
mov edx, dword [ebx + 0x390]
call fcn.00407cb4
mov eax, dword [ebp - 0xc]
call fcn.004156bc
test al, al
je 0x532991
lea eax, [ebp - 0x10]
call fcn.004f614c
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 4]
call fcn.004f585c
push 0
mov eax, dword [ebp - 4]
call fcn.0040785c
mov esi, eax
push esi
lea eax, [ebp - 0x14]
mov ecx, 0x5329e0
mov edx, dword [ebx + 0x390]
call fcn.00407cb4
mov eax, dword [ebp - 0x14]
call fcn.0040785c
push eax
call sub.kernel32.dll_CopyFileW
test eax, eax
je 0x532963
mov eax, dword [ebp - 4]
call fcn.004f68b0
jmp 0x532974
call sub.kernel32.dll_GetLastError_1
mov edi, eax
lea edx, [ebp - 8]
mov eax, edi
call fcn.0041a224
cmp dword [ebp - 8], 0
jne 0x532989
mov edx, 0x5caebc
mov ecx, dword [ebp - 4]
mov eax, ebx
call fcn.005329f8
push esi
call sub.kernel32.dll_DeleteFileW
jmp 0x5329ab
push 0
mov eax, 0x5caebc
mov ecx, 1
mov edx, dword [0x4f54dc]
call fcn.00409284
add esp, 4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5329cd
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.004077c8
ret

Function at 0x433001
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
push 4
nop
nop
nop
nop
nop
nop
pop edi
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
je 0x433072
nop
nop
nop
mov ebx, 0x40de38
nop
nop
nop
mov ecx, ebx
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
div edi
nop
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
mov esi, 0x443753a0
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x433060
nop
mov eax, section..data
nop
cmp eax, 0
nop
nop
nop
nop
nop
je 0x4330d2
nop
nop
nop
mov ebx, 0x4304d8
nop
nop
mov ecx, ebx
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
push eax
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x1b8e5d39
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
loop 0x4330c0
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219
Function at 0x4055b3
Capabilities:
Hash data using sha256

Disassembly:
cmp dword [0x441e68], 2
jl 0x4055d8
movaps xmm0, xmmword [0x430460]
movaps xmmword [0x43ab80], xmm0
movaps xmm0, xmmword [0x430450]
movaps xmmword [0x43ab90], xmm0
push esi
mov esi, dword [esp + 8]
mov ecx, esi
call fcn.00405984
xor edx, edx
mov ecx, dword [esi + 0xf4]
mov eax, dword [edx + 0x430428]
mov dword [edx + ecx], eax
add edx, 4
cmp edx, 0x20
jl 0x4055e6
mov eax, dword [esi + 0xf4]
xor dword [eax], 0x2080020
mov ecx, dword [esi + 0xf4]
mov eax, dword [esp + 0xc]
xor dword [ecx + 8], eax
mov ecx, dword [esi + 0xf4]
mov eax, dword [esp + 0x10]
or eax, 0x2000
shl eax, 0x10
xor dword [ecx + 0xc], eax
pop esi
ret 0xc

Function at 0x405d04
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x405d36
test dl, 7
je 0x405d36
movzx ecx, byte [edx]
movzx eax, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x43aba0]
inc edx
mov dword [ebp + 0xc], edx
sub esi, 1
jne 0x405d16
cmp esi, 8
jb 0x405dc6
push edi
mov edi, esi
shr edi, 3
xor ebx, dword [edx]
sub esi, 8
mov edx, dword [edx + 4]
mov ecx, edx
shr ecx, 0x18
mov eax, edx
shr eax, 0x10
movzx eax, al
mov ecx, dword [ecx*4 + 0x43aba0]
xor ecx, dword [eax*4 + 0x43afa0]
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x43b3a0]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x43bba0]
mov eax, ebx
shr eax, 0x10
movzx eax, al
xor ecx, dword [eax*4 + 0x43bfa0]
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x43c3a0]
movzx eax, dl
mov edx, dword [ebp + 0xc]
add edx, 8
mov dword [ebp + 0xc], edx
xor ecx, dword [eax*4 + 0x43b7a0]
movzx eax, bl
xor ecx, dword [eax*4 + 0x43c7a0]
mov ebx, ecx
sub edi, 1
jne 0x405d45
pop edi
test esi, esi
je 0x405de2
movzx ecx, byte [edx]
movzx eax, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x43aba0]
inc edx
sub esi, 1
jne 0x405dca
pop esi
mov eax, ebx
pop ebx
pop ebp
ret 0xc

Function at 0x405f4f
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, dword [esp + 0x30]
xor ebx, ebx
push 0x20
pop ebp
cmp dword [esi], 2
jne 0x405fa6
mov eax, dword [esi + 4]
push edi
push ebx
push ebx
push ebx
push ebx
mov dword [esp + 0x44], eax
lea eax, [esp + 0x20]
push eax
push 4
lea eax, [esp + 0x4c]
push eax
push ebp
push dword [esp + 0x58]
call fcn.00406641
mov dword [esi + 4], ebx
mov edx, ebx
mov edi, ebx
movzx eax, byte [esp + edx + 0x10]
mov ecx, edx
and ecx, 3
shl ecx, 3
shl eax, cl
xor edi, eax
inc edx
cmp edx, ebp
jb 0x405f8c
mov dword [esi + 4], edi
pop edi
cmp dword [esi], 3
jne 0x405fd2
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x1c]
add esi, 4
push eax
push ebp
push esi
push ebp
push dword [esp + 0x54]
call fcn.00406641
push ebp
lea eax, [esp + 0x10]
push eax
push esi
call fcn.0041dd20
add esp, 0xc
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 8
Function at 0x4063ea
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x264
push ebx
mov ebx, dword [esp + 0x280]
mov eax, ecx
mov dword [esp + 4], eax
cmp ebx, 0x18
ja 0x4065e6
push ebp
push esi
xor ebp, ebp
lea esi, [eax + 0x4b4]
push edi
mov edi, ebp
cmp dword [esi + 0x134], ebx
jne 0x40644e
push dword [esp + 0x27c]
mov ecx, esi
call fcn.0040db99
test al, al
je 0x40644e
push 0x10
push dword [esp + 0x288]
lea eax, [esi + 0x102]
push eax
call fcn.0041e66a
add esp, 0xc
test eax, eax
je 0x4065f0
inc edi
add esi, 0x178
cmp edi, 4
jb 0x406414
mov esi, 0x200
lea eax, [esp + 0x74]
push esi
push eax
push dword [esp + 0x288]
call fcn.004106b2
xor eax, eax
mov ecx, ebx
inc eax
shl eax, cl
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x20]
push eax
push 0x10
push dword [esp + 0x298]
lea eax, [esp + 0x8c]
push eax
call fcn.00421eb0
pop ecx
push eax
lea eax, [esp + 0x90]
push eax
call fcn.0040684c
push esi
lea eax, [esp + 0x78]
push eax
call fcn.0040ddc7
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x27c]
push 0x40
mov ecx, dword [edx + 0xa94]
lea ebx, [edx + 0x4b4]
mov eax, ecx
and eax, 3
imul eax, eax, 0x178
add ebx, eax
lea eax, [ecx + 1]
mov dword [edx + 0xa94], eax
mov edi, ebx
mov eax, dword [esp + 0x290]
pop ecx
mov dword [ebx + 0x134], eax
lea eax, [ebx + 0x102]
rep movsd dword es:[edi], dword [esi]
push 0x10
push dword [esp + 0x288]
push eax
movsw word es:[edi], word [esi]
call fcn.0041dd20
push 0x20
pop edi
push edi
lea eax, [esp + 0x24]
push eax
lea esi, [ebx + 0x112]
push esi
call fcn.0041dd20
push edi
lea eax, [esp + 0x50]
push eax
lea eax, [ebx + 0x138]
push eax
call fcn.0041dd20
push edi
lea eax, [esp + 0x7c]
push eax
lea eax, [ebx + 0x158]
push eax
call fcn.0041dd20
add esp, 0x30
push ebp
push 1
push edi
push esi
call fcn.0040dcd2
cmp dword [esp + 0x290], ebp
je 0x406574
push edi
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x298]
call fcn.0041dd20
add esp, 0xc
mov esi, dword [esp + 0x294]
test esi, esi
je 0x4065a7
push 8
push ebp
push esi
call fcn.0041dbc0
add esp, 0xc
mov al, byte [esp + ebp + 0x34]
mov ecx, ebp
and ecx, 7
xor byte [ecx + esi], al
inc ebp
cmp ebp, edi
jb 0x40658b
push edi
lea eax, [esp + 0x38]
push eax
call fcn.0040ddc7
cmp dword [esp + 0x288], 0
je 0x4065d8
push dword [esp + 0x288]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push 0x100
push eax
push dword [esp + 0x284]
add ecx, 0xa9c
call fcn.0040d26d
push edi
lea eax, [esp + 0x18]
push eax
call fcn.0040ddc7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x264
ret 0x20
push 0x20
pop edi
push edi
lea eax, [esi + 0x112]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.0041dd20
add esp, 0xc
lea eax, [esp + 0x14]
push ebp
push ebp
push edi
push eax
call fcn.0040dcd2
push edi
lea eax, [esi + 0x138]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.0041dd20
push edi
lea eax, [esi + 0x158]
push eax
lea eax, [esp + 0x68]
push eax
call fcn.0041dd20
add esp, 0x18
jmp 0x406556
Function at 0x406641
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
sub esp, 0x1bc
push ebx
mov ebx, dword [esp + 0x1c8]
push ebp
push esi
push edi
push 0x40
pop edi
cmp ebx, edi
jbe 0x406696
lea eax, [esp + 0x164]
push eax
call fcn.0040e994
push ebx
push dword [esp + 0x1d4]
lea eax, [esp + 0x16c]
push eax
call fcn.0040e9da
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x168]
push eax
call fcn.0040e8a5
push 0x20
lea eax, [esp + 0x58]
pop ebx
jmp 0x40669d
mov eax, dword [esp + 0x1d0]
mov ebp, dword [esp + 0x1e4]
mov dword [esp + 0x10], eax
test ebp, ebp
je 0x4066c8
mov edx, dword [esp + 0x1e8]
cmp byte [edx], 0
je 0x4066c8
push 0x1a
pop ecx
mov esi, ebp
lea edi, [esp + 0x94]
rep movsd dword es:[edi], dword [esi]
jmp 0x406729
xor edx, edx
test ebx, ebx
je 0x4066e8
mov esi, eax
lea eax, [esp + 0x14]
sub esi, eax
lea ecx, [esp + 0x14]
add ecx, edx
mov al, byte [esi + ecx]
xor al, 0x36
inc edx
mov byte [ecx], al
cmp edx, ebx
jb 0x4066d6
cmp ebx, edi
jae 0x406702
mov eax, edi
lea ecx, [esp + 0x14]
sub eax, ebx
add ecx, ebx
push eax
push 0x36
push ecx
call fcn.0041dbc0
add esp, 0xc
lea eax, [esp + 0x94]
push eax
call fcn.0040e994
push edi
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.0040e9da
mov edx, dword [esp + 0x1e8]
test ebp, ebp
je 0x406743
cmp byte [edx], 0
jne 0x406743
push 0x1a
pop ecx
lea esi, [esp + 0x94]
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov byte [edx], 1
push dword [esp + 0x1dc]
lea eax, [esp + 0x98]
push dword [esp + 0x1dc]
push eax
call fcn.0040e9da
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.0040e8a5
mov ebp, dword [esp + 0x1ec]
test ebp, ebp
je 0x406797
mov eax, dword [esp + 0x1f0]
cmp byte [eax], 0
je 0x406797
push 0x1a
pop ecx
mov esi, ebp
lea edi, [esp + 0xfc]
rep movsd dword es:[edi], dword [esi]
jmp 0x4067fd
test ebx, ebx
je 0x4067b9
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
sub edx, eax
xor esi, esi
lea ecx, [esp + 0x14]
add ecx, esi
mov al, byte [edx + ecx]
xor al, 0x5c
inc esi
mov byte [ecx], al
cmp esi, ebx
jb 0x4067a7
cmp ebx, 0x40
jae 0x4067d5
push 0x40
pop eax
sub eax, ebx
lea ecx, [esp + 0x14]
push eax
add ecx, ebx
push 0x5c
push ecx
call fcn.0041dbc0
add esp, 0xc
lea eax, [esp + 0xfc]
push eax
call fcn.0040e994
push 0x40
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x104]
push eax
call fcn.0040e9da
mov eax, dword [esp + 0x1f0]
test ebp, ebp
je 0x406817
cmp byte [eax], 0
jne 0x406817
push 0x1a
pop ecx
lea esi, [esp + 0xfc]
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov byte [eax], 1
push 0x20
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x104]
push eax
call fcn.0040e9da
push dword [esp + 0x1e0]
lea eax, [esp + 0x100]
push eax
call fcn.0040e8a5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1bc
ret 0x24
Function at 0x40684c
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x58]
sub esp, 0x18c
push ebx
push esi
mov esi, dword [ebp + 0x6c]
push edi
push 0x40
pop eax
cmp esi, eax
jae 0x406866
mov eax, esi
push eax
push dword [ebp + 0x68]
lea eax, [ebp - 0x44]
push eax
call fcn.0041dd20
add esp, 0xc
mov dword [ebp + esi - 0x44], 0x1000000
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [ebp + 0x20]
push eax
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0x44]
push eax
push dword [ebp + 0x64]
push dword [ebp + 0x60]
call fcn.00406641
push 0x20
pop ebx
push ebx
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp]
push eax
call fcn.0041dd20
mov eax, dword [ebp + 0x7c]
add esp, 0xc
dec eax
mov byte [ebp + 0x6b], 0
mov dword [ebp + 0x4c], eax
xor esi, esi
mov byte [ebp + 0x6f], 0
push 0x10
pop eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x48], eax
mov edi, dword [ebp + esi + 0x4c]
test edi, edi
je 0x406932
lea eax, [ebp + 0x6f]
push eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp + 0x6b]
push eax
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0x64]
push eax
push ebx
lea eax, [ebp + 0x20]
push eax
push dword [ebp + 0x64]
push dword [ebp + 0x60]
call fcn.00406641
push ebx
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp + 0x20]
push eax
call fcn.0041dd20
add esp, 0xc
xor ecx, ecx
mov al, byte [ebp + ecx + 0x20]
xor byte [ebp + ecx], al
inc ecx
cmp ecx, ebx
jb 0x406920
sub edi, 1
jne 0x4068e3
push ebx
lea eax, [ebp]
push eax
push dword [ebp + esi + 0x40]
call fcn.0041dd20
add esi, 4
add esp, 0xc
cmp esi, 0xc
jb 0x4068db
push 0x44
lea eax, [ebp - 0x44]
push eax
call fcn.0040ddc7
push ebx
lea eax, [ebp]
push eax
call fcn.0040ddc7
push ebx
lea eax, [ebp + 0x20]
push eax
call fcn.0040ddc7
push ebx
lea eax, [ebp - 0x64]
push eax
call fcn.0040ddc7
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x58]
pop ebp
ret 0x20