joyce8/EMBER2024-capa huggingface dataset:
Function at 0x417850
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ecx]
mov dword [ebp - 8], eax
mov eax, dword [edx]
movaps xmm6, xmmword [0x51a840]
mov dword [ebp - 4], eax
mov eax, dword [ecx + 4]
sar eax, 2
mov dword [ebp - 0x10], eax
mov eax, dword [edx + 4]
sar eax, 2
push esi
push edi
mov edi, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
cmp ecx, dword [edx + 8]
mov dword [ebp - 0x14], eax
cmova ecx, dword [edx + 8]
mov eax, dword [ebx + 8]
shl eax, 4
cmp edi, dword [edx + 0xc]
cwde
cmova edi, dword [edx + 0xc]
movd xmm0, eax
punpcklwd xmm0, xmm0
pshufd xmm7, xmm0, 0
test edi, edi
je 0x4179ea
mov eax, dword [ebp - 0x10]
mov esi, ecx
shl eax, 2
and ecx, 1
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
shr esi, 1
shl eax, 2
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], esi
dec edi
mov edx, ecx
cmp dword [ebp - 0xc], 0
je 0x417963
xorps xmm5, xmm5
nop
movq xmm4, qword [eax]
mov ecx, edx
punpcklbw xmm4, xmm5
add edx, 8
movq xmm3, qword [ecx]
mov ecx, eax
punpcklbw xmm3, xmm5
add eax, 8
movaps xmm1, xmm3
movaps xmm2, xmm3
pmullw xmm3, xmm4
paddw xmm2, xmm4
psllw xmm2, 1
pcmpgtw xmm1, xmm6
movaps xmm0, xmm1
psrlw xmm0, 8
pand xmm2, xmm1
psrlw xmm3, 7
psubw xmm2, xmm0
pxor xmm3, xmm1
psubw xmm3, xmm1
paddw xmm2, xmm3
psubw xmm2, xmm4
psllw xmm2, 4
pmulhw xmm2, xmm7
paddw xmm2, xmm4
packuswb xmm2, xmm5
movq qword [ecx], xmm2
sub esi, 1
jne 0x4178f0
mov ecx, dword [ebp - 4]
cmp dword [ebp - 0x18], 0
je 0x4179d0
movd xmm2, dword [edx]
xorps xmm5, xmm5
movd xmm4, dword [eax]
punpcklbw xmm2, xmm5
punpcklbw xmm4, xmm5
movaps xmm1, xmm2
movaps xmm3, xmm2
mov ecx, dword [ebp - 4]
paddw xmm3, xmm4
pmullw xmm2, xmm4
psllw xmm3, 1
pcmpgtw xmm1, xmm6
movaps xmm0, xmm1
pand xmm3, xmm1
psrlw xmm0, 8
psrlw xmm2, 7
psubw xmm3, xmm0
pxor xmm2, xmm1
psubw xmm2, xmm1
paddw xmm3, xmm2
psubw xmm3, xmm4
psllw xmm3, 4
pmulhw xmm3, xmm7
paddw xmm3, xmm4
packuswb xmm3, xmm5
movd dword [eax], xmm3
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x10]
add ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov dword [ebp - 4], ecx
test edi, edi
jne 0x4178e3
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
Function at 0x41fd00
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f019f
mov eax, dword fs:[0]
push eax
push ebx
push ecx
push esi
mov eax, dword [0x52b2f8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [ebx + 8]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0xc]
push 0
mov dword [esi], vtable.CDspObj.0
mov dword [esi + 0x20], eax
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
call fcn.00420700
push 0
call fcn.00420780
push 1
push 0
mov dword [esi + 0x130], 0
mov dword [esi + 0x13c], 0
call fcn.00421d60
push 1
call fcn.004207a0
push 0
mov ecx, esi
call fcn.004207f0
push 0
call fcn.00420800
push 0
mov ecx, esi
call fcn.00420840
push 1
call fcn.00420850
push 1
call fcn.00420870
push 0
call fcn.00420890
push 1
mov ecx, esi
call fcn.00421980
push 0
push 0
call fcn.00421990
push 0
call fcn.004219d0
push 0
push 0
push 0
call fcn.00420e50
push 0
push 0
push 0
mov ecx, esi
call fcn.00420fe0
push 0
push 0
push 0
mov ecx, esi
call fcn.00421040
push 0
push 0
mov ecx, esi
call fcn.00420d90
push 0
push 0
mov ecx, esi
call fcn.00420df0
push 0x80
mov ecx, esi
call fcn.004210c0
push 0
call fcn.004210e0
push 0
mov ecx, esi
call fcn.00421120
push 0x100
mov ecx, esi
call fcn.00421170
push 0
mov ecx, esi
call fcn.004211b0
push 0
mov ecx, esi
call fcn.00421380
push 0
mov ecx, esi
call fcn.004219f0
push 0
call fcn.00421a00
push 0
call fcn.00421ce0
push 0x40
lea eax, [esi + 0xc8]
push 0
push eax
call fcn.004d8dc0
push 0x10
call fcn.004cdc6d
add esp, 0x10
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0
mov ecx, eax
call fcn.00435e90
mov dword [ebp - 4], 0xffffffff
xorps xmm0, xmm0
push dword [ebx + 0x10]
mov dword [esi + 0x94], eax
mov ecx, esi
movups xmmword [esi + 0x98], xmm0
movq qword [esi + 0xa8], xmm0
mov dword [esi + 0x11c], 0
mov dword [esi + 0x120], 0
mov dword [esi + 0x124], 0
mov dword [esi + 0x128], 0
mov dword [esi + 0x118], 1
call fcn.00421bb0
push 0
call fcn.00421920
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
Function at 0x44aec0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ecx + 0x14]
pop ebp
jmp fcn.004365e0

Function at 0x44ea50
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 8]
mov edx, 0x7c
push esi
mov esi, ecx
mov eax, ebx
xor ecx, ecx
mul edx
push edi
mov dword [esi], vtable.DCDstrbtdPrcssng.0
seto cl
mov dword [esi + 4], ebx
neg ecx
mov dword [esi + 8], ebx
or ecx, eax
mov dword [esi + 0xc], 2
push ecx
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 1
mov dword [esi + 0x20], 0
call fcn.004cdcab
imul ecx, ebx, 0x7c
mov dword [esi + 0x24], eax
push ecx
push 0
push eax
call fcn.004d8dc0
add esp, 0x10
lea eax, [esi + 0x28]
push 0xfa0
push eax
call dword [0x4f5250]
mov eax, dword [esi + 0x24]
push 0
push 0
push 1
mov dword [eax], 1
mov eax, dword [esi + 0x24]
push 0
mov dword [eax + 8], 0
mov eax, dword [esi + 0x24]
mov dword [eax + 0xc], 0
call dword [0x4f52d8]
mov ecx, dword [esi + 0x24]
mov edi, 1
mov dword [ebp - 4], edi
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x24]
mov dword [eax + 0x14], 0
mov eax, dword [esi + 0x24]
mov dword [eax + 0x18], esi
cmp ebx, edi
jbe 0x44ec2b
mov ebx, 0x7c
mov dword [ebp - 8], ebx
mov eax, dword [esi + 0x24]
push 0
push 1
push 1
mov dword [ebx + eax], 0
mov eax, dword [esi + 0x24]
push 0
mov dword [ebx + eax + 8], edi
mov edi, dword [0x4f52d8]
call edi
mov ecx, dword [esi + 0x24]
push 0
push 0
push 1
push 0
mov dword [ebx + ecx + 0xc], eax
call edi
mov ecx, dword [esi + 0x24]
mov edi, ebx
mov dword [ebx + ecx + 0x10], eax
mov eax, dword [esi + 0x24]
mov dword [ebx + eax + 0x14], 0
mov eax, dword [esi + 0x24]
mov dword [ebx + eax + 0x18], esi
mov ebx, 4
nop dword [eax + eax]
mov eax, dword [esi + 0x24]
add eax, 0x1c
push 0xfa0
add eax, edi
push eax
call dword [0x4f5250]
add edi, 0x18
sub ebx, 1
jne 0x44eb80
mov edi, dword [ebp - 4]
mov ecx, esi
push 2
push edi
call fcn.0044f110
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x24]
push ebx
mov ebx, dword [ebp - 8]
add eax, ebx
push eax
push 0x44f2a0
push 0
push 0
call fcn.004dd933
mov ecx, dword [esi + 0x24]
add esp, 0x18
push 0
push eax
mov dword [ebx + ecx + 4], eax
call dword [0x4f52e8]
mov eax, dword [ebp + 8]
inc edi
add ebx, 0x7c
mov dword [ebp - 4], edi
mov dword [ebp - 8], ebx
cmp edi, eax
jb 0x44eb26
mov ebx, dword [0x4f52f0]
lea ecx, [eax - 1]
mov edi, 0x7c
mov dword [ebp + 8], ecx
nop
mov eax, dword [esi + 0x24]
cmp dword [edi + eax], 0
jne 0x44ec20
nop dword [eax]
push 1
call ebx
mov eax, dword [esi + 0x24]
cmp dword [edi + eax], 0
je 0x44ec10
mov ecx, dword [ebp + 8]
add edi, 0x7c
sub ecx, 1
mov dword [ebp + 8], ecx
jne 0x44ec00
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x472eb0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
mov esi, ecx
call fcn.00478d90
movzx ecx, word [esi + 0xe]
call fcn.004a0620
mov ebx, dword [0x5452cc]
xor edi, edi
mov word [esi + 0x38], 0
test ebx, ebx
jle 0x472ef3
call fcn.004a0630
add byte [edi + esi + 0x40], al
movzx eax, byte [edi + esi + 0x40]
add byte [esi + 0x38], al
movzx eax, byte [edi + esi + 0x40]
inc edi
xor byte [esi + 0x39], al
cmp edi, ebx
jl 0x472ed5
call fcn.004a0630
mov byte [esi + 0x3a], al
call fcn.004a0630
pop edi
mov byte [esi + 0x3b], al
mov byte [esi + 0x3c], 1
pop esi
pop ebx
jmp fcn.00478da0

Function at 0x473010
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
call fcn.00478d90
movzx ecx, word [edi + 0xe]
call fcn.004a0620
xor esi, esi
xor bh, bh
xor bl, bl
cmp dword [0x5452cc], esi
jle 0x47304b
add bh, byte [esi + edi + 0x40]
xor bl, byte [esi + edi + 0x40]
call fcn.004a0630
sub byte [esi + edi + 0x40], al
inc esi
cmp esi, dword [0x5452cc]
jl 0x473031
call fcn.00478da0
cmp byte [edi + 0x38], bh
jne 0x473063
cmp byte [edi + 0x39], bl
jne 0x473063
pop edi
pop esi
mov eax, 1
pop ebx
ret
pop edi
pop esi
xor eax, eax
pop ebx
ret
Function at 0x473990
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x474
mov eax, dword [0x52b2f8]
xor eax, esp
mov dword [esp + 0x470], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, ecx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x10]
push edi
mov edi, edx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
cmp edi, 1
jb 0x473b65
mov ecx, 1
call fcn.0046c2f0
mov ecx, 1
call fcn.004a86e0
push 0x30c
push 0
push ebx
call fcn.004d8dc0
add esp, 0xc
mov byte [esp + 0x78], 0
lea ebx, [esp + 0x78]
test edi, edi
je 0x473a6e
mov edi, dword [esp + 0xc]
sub edi, esi
mov dword [esp + 0xc], edi
push dword [edi + esi]
push dword [esi]
push str._s__s
push ebx
call fcn.00402010
mov ecx, dword [esi]
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x473a30
sub ecx, edx
mov byte [ecx + ebx], al
mov edx, dword [esi]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x473a41
mov eax, dword [edi + esi]
sub edx, ecx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x473a50
sub eax, edi
add ebx, 2
mov edi, dword [esp + 0xc]
add eax, edx
add ebx, eax
add esi, 4
sub dword [esp + 0x10], 1
jne 0x473a15
push 0x58
lea eax, [esp + 0x24]
mov byte [ebx], 0
push 0
push eax
call fcn.004d8dc0
mov eax, dword [0x54563c]
xor ecx, ecx
mov edx, dword [ebp + 0x18]
add esp, 0xc
mov dword [esp + 0x24], eax
cmp edx, 1
lea eax, [esp + 0x78]
mov dword [esp + 0x20], 0x58
mov dword [esp + 0x2c], eax
sete cl
mov eax, dword [esp + 0x14]
mov esi, 0x1000
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], eax
lea ecx, [ecx*2 + 0x804]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
xor eax, eax
test edx, edx
mov dword [esp + 0x38], 1
mov dword [esp + 0x40], 0x30c
cmove eax, esi
mov dword [esp + 0x5c], 0x5123a8
or ecx, eax
mov dword [esp + 0x54], ecx
sub edx, 0
je 0x473b2e
sub edx, 1
je 0x473b21
mov esi, 4
call fcn.004a8730
xor ecx, ecx
call fcn.0046c2f0
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x470]
xor ecx, esp
call fcn.004cdc57
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x20]
push eax
call dword [0x4f5048]
jmp 0x473b39
lea eax, [esp + 0x20]
push eax
call dword [0x4f5044]
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
call fcn.004a8730
xor ecx, ecx
call fcn.0046c2f0
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x470]
xor ecx, esp
call fcn.004cdc57
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x47c]
mov eax, 7
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004cdc57
mov esp, ebp
pop ebp
ret
Function at 0x476930
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor bl, bl
push edi
mov dword [ebp - 0xc], ecx
mov edi, edx
xor cl, cl
mov dword [ebp - 0x10], edi
xor eax, eax
mov dword [ebp - 8], ecx
test esi, esi
je 0x476a0b
cmp esi, 0x20
jb 0x476a0b
mov edx, dword [ebp + 8]
mov ecx, esi
and ecx, 0xffffffe0
xorps xmm2, xmm2
xorps xmm4, xmm4
xorps xmm3, xmm3
xorps xmm5, xmm5
movups xmm1, xmmword [edx + eax]
movaps xmm0, xmm1
pxor xmm5, xmm1
movups xmm1, xmmword [edx + eax + 0x10]
add eax, 0x20
paddb xmm2, xmm0
movaps xmm0, xmm1
pxor xmm3, xmm1
paddb xmm4, xmm0
cmp eax, ecx
jb 0x476972
pxor xmm3, xmm5
paddb xmm4, xmm2
movaps xmm0, xmm3
psrldq xmm0, 8
pxor xmm3, xmm0
movups xmm0, xmm3
psrldq xmm0, 4
pxor xmm3, xmm0
movups xmm0, xmm3
psrldq xmm0, 2
pxor xmm3, xmm0
movups xmm0, xmm3
psrldq xmm0, 1
pxor xmm3, xmm0
movaps xmm0, xmm4
psrldq xmm0, 8
paddb xmm4, xmm0
movd ebx, xmm3
movups xmm0, xmm4
psrldq xmm0, 4
paddb xmm4, xmm0
movups xmm0, xmm4
psrldq xmm0, 2
paddb xmm4, xmm0
movups xmm0, xmm4
psrldq xmm0, 1
paddb xmm4, xmm0
movd ecx, xmm4
mov dword [ebp - 8], ecx
xor dh, dh
mov byte [ebp - 1], 0
cmp eax, esi
jae 0x476a67
mov ecx, esi
sub ecx, eax
cmp ecx, 2
mov ch, byte [ebp - 1]
jb 0x476a43
lea edi, [esi - 1]
mov esi, dword [ebp + 8]
mov dl, byte [esi + eax]
mov cl, byte [esi + eax + 1]
add ch, dl
xor dl, cl
add eax, 2
add dh, cl
xor bl, dl
cmp eax, edi
jb 0x476a27
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x10]
cmp eax, esi
jae 0x476a52
mov esi, dword [ebp + 8]
mov al, byte [eax + esi]
add byte [ebp - 8], al
xor bl, al
mov eax, dword [ebp - 8]
add dh, ch
add al, dh
mov edx, dword [ebp - 0xc]
mov byte [edx], al
mov byte [edi], bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0xc]
mov byte [edx], cl
mov byte [edi], bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x476a80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov esi, edx
mov edi, ecx
xor cl, cl
mov dword [ebp - 0x10], esi
xor bl, bl
mov dword [ebp - 0xc], edi
xor eax, eax
mov dword [ebp - 8], ecx
test esi, esi
je 0x476b59
cmp esi, 0x20
jb 0x476b59
mov ecx, esi
xorps xmm2, xmm2
and ecx, 0xffffffe0
xorps xmm4, xmm4
xorps xmm3, xmm3
xorps xmm5, xmm5
nop
movups xmm1, xmmword [edi + eax]
movaps xmm0, xmm1
pxor xmm5, xmm1
movups xmm1, xmmword [edi + eax + 0x10]
add eax, 0x20
paddb xmm2, xmm0
movaps xmm0, xmm1
pxor xmm3, xmm1
paddb xmm4, xmm0
cmp eax, ecx
jb 0x476ac0
pxor xmm3, xmm5
paddb xmm4, xmm2
movaps xmm0, xmm3
psrldq xmm0, 8
pxor xmm3, xmm0
movups xmm0, xmm3
psrldq xmm0, 4
pxor xmm3, xmm0
movups xmm0, xmm3
psrldq xmm0, 2
pxor xmm3, xmm0
movups xmm0, xmm3
psrldq xmm0, 1
pxor xmm3, xmm0
movaps xmm0, xmm4
psrldq xmm0, 8
paddb xmm4, xmm0
movd ebx, xmm3
movups xmm0, xmm4
psrldq xmm0, 4
paddb xmm4, xmm0
movups xmm0, xmm4
psrldq xmm0, 2
paddb xmm4, xmm0
movups xmm0, xmm4
psrldq xmm0, 1
paddb xmm4, xmm0
movd ecx, xmm4
mov dword [ebp - 8], ecx
xor dh, dh
mov byte [ebp - 1], 0
cmp eax, esi
jae 0x476ba4
mov ecx, esi
sub ecx, eax
cmp ecx, 2
mov ch, byte [ebp - 1]
jb 0x476b91
lea edi, [esi - 1]
mov esi, dword [ebp - 0xc]
mov dl, byte [esi + eax]
mov cl, byte [esi + eax + 1]
add ch, dl
xor dl, cl
add eax, 2
add dh, cl
xor bl, dl
cmp eax, edi
jb 0x476b75
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
cmp eax, esi
jae 0x476b9d
mov al, byte [eax + edi]
add byte [ebp - 8], al
xor bl, al
add dh, ch
mov ecx, dword [ebp - 8]
add cl, dh
cmp byte [ebp + 8], cl
jne 0x476bba
cmp byte [ebp + 0xc], bl
jne 0x476bba
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x49de90
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f2d18
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x52b2f8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
call fcn.0049e810
mov dword [ebp - 4], 0
xorps xmm0, xmm0
mov dword [edi + 0x1c], 0xffffff9c
mov dword [edi + 0x20], 0x64
mov dword [edi + 0x24], 0xffffff9c
mov dword [edi + 0x28], 0x64
mov dword [edi + 0x2c], 0xffffff9c
mov dword [edi + 0x30], 0x64
mov dword [edi + 0x34], 0
mov dword [edi + 0x38], 0xffffffff
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0x3c00
mov dword [edi + 0x44], 0x15e00
mov dword [edi + 0x5c], 0
mov dword [edi + 0x60], 0xffffffc4
mov dword [edi + 0x64], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x6c], 0xfffffea2
mov dword [edi + 0x70], 0
mov dword [edi + 0x48], 0xffffffff
mov dword [edi + 0x4c], 0
mov dword [edi + 0x50], 0x64
mov dword [edi + 0x54], 0x14
mov dword [edi + 0x58], 1
mov dword [edi + 0x74], 0
mov dword [edi + 0x78], 0
mov dword [edi + 0x7c], 0
mov dword [edi + 0x80], 0
mov dword [edi + 0x84], 0
mov dword [edi + 0x88], 0
mov dword [edi + 0x8c], 0xa
call fcn.004ee590
mulsd xmm0, qword [0x51a410]
cvttsd2si esi, xmm0
xorps xmm0, xmm0
mov dword [edi + 0x90], esi
call fcn.004ede60
mulsd xmm0, qword [0x51a410]
mov dword [edi + 0x98], esi
mov dword [edi + 0xa0], esi
mov dword [edi + 0x14], 0
cvttsd2si eax, xmm0
mov dword [edi + 0x94], eax
mov dword [edi + 0x9c], eax
mov dword [edi + 0xa4], eax
mov dword [ebp - 4], 0xffffffff
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x49e3a0
Capabilities:
Get number of processors

Disassembly:
push esi
mov esi, ecx
call fcn.0049e3b0
mov ecx, esi
pop esi
jmp fcn.0049e440
Function at 0x49e440
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f2d7f
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x52b2f8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov ebx, dword [esi + 0x28]
mov eax, dword [esi + 0x30]
sub eax, dword [esi + 0x24]
sub ebx, dword [esi + 0x1c]
cmp dword [esi + 0x50], 0
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0
jle 0x49e522
nop word [eax + eax]
push 0x1c
call fcn.004cdc6d
mov edi, eax
add esp, 4
mov dword [ebp - 0x18], edi
mov dword [ebp - 4], 0
mov dword [edi], 1
mov dword [ebp - 4], 0xffffffff
call fcn.004db2ce
xor edx, edx
div ebx
mov eax, dword [esi + 0x1c]
add eax, edx
mov dword [edi + 0x10], eax
call fcn.004db2ce
cdq
mov ecx, 0x64
idiv ecx
mov eax, dword [esi + 0x20]
sub eax, edx
mov dword [edi + 0x14], eax
call fcn.004db2ce
xor edx, edx
mov ecx, esi
div dword [ebp - 0x14]
mov eax, dword [esi + 0x24]
add eax, edx
mov dword [edi + 0x18], eax
movq xmm0, qword [edi + 0x10]
movq qword [edi + 4], xmm0
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x68]
sub dword [edi + 4], eax
mov eax, dword [esi + 0x6c]
sub dword [edi + 8], eax
mov eax, dword [esi + 0x70]
sub dword [edi + 0xc], eax
push edi
call fcn.0049e850
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [esi + 0x50]
jl 0x49e490
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4a00a0
Capabilities:
Acquire debug privileges

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x52b2f8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
lea eax, [ebp - 0x18]
mov edi, edx
push eax
push 0x20
xor esi, esi
call dword [0x4f5334]
push eax
call dword [0x4f5028]
test eax, eax
je 0x4a012e
lea eax, [ebp - 0x20]
push eax
push str.SeDebugPrivilege
push esi
call dword [0x4f5018]
test eax, eax
je 0x4a0125
mov eax, dword [ebp - 0x20]
neg edi
push esi
push esi
mov dword [ebp - 0x10], eax
sbb edi, edi
mov eax, dword [ebp - 0x1c]
and edi, 2
push 0x10
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x14]
push eax
push esi
push dword [ebp - 0x18]
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], edi
call dword [0x4f5014]
test eax, eax
je 0x4a0123
call dword [0x4f52c0]
test eax, eax
jne 0x4a0123
lea esi, [eax + 1]
jmp 0x4a0125
xor esi, esi
push dword [ebp - 0x18]
call dword [0x4f52dc]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
xor ecx, ebp
pop esi
call fcn.004cdc57
mov esp, ebp
pop ebp
ret
Function at 0x4a0df0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x52b2f8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x1c], ecx
call fcn.00478d90
lea eax, [ebp - 0x14]
push eax
call dword [0x4f5304]
movzx ecx, word [ebp - 6]
call fcn.004a0620
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x18], ecx
mov edi, dword [eax + 0x14]
lea esi, [eax + 0x20]
test edi, edi
je 0x4a0e54
call fcn.004a0630
add byte [esi], al
lea esi, [esi + 1]
mov al, byte [esi - 1]
mov ecx, dword [ebp - 0x18]
movzx eax, al
xor ecx, eax
add ebx, eax
mov dword [ebp - 0x18], ecx
sub edi, 1
jne 0x4a0e32
mov eax, dword [ebp - 0x1c]
movzx edx, word [ebp - 6]
mov dword [eax + 0x10], edx
mov word [eax + 0x1c], bx
mov word [eax + 0x1e], cx
call fcn.00478da0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004cdc57
mov esp, ebp
pop ebp
ret

Function at 0x4a0e80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], edi
call fcn.00478d90
mov ecx, dword [edi + 0x10]
call fcn.004a0620
push dword [edi + 0x14]
call fcn.004cdcab
lea esi, [edi + 0x20]
mov dword [ebp - 8], eax
mov edi, dword [edi + 0x14]
xor ecx, ecx
add esp, 4
mov dword [ebp - 4], ecx
xor ebx, ebx
test edi, edi
je 0x4a0ee9
sub eax, esi
mov dword [ebp - 0xc], eax
nop
call fcn.004a0630
mov cl, byte [esi]
lea esi, [esi + 1]
sub cl, al
mov eax, dword [ebp - 0xc]
mov byte [eax + esi - 1], cl
movzx eax, byte [esi - 1]
mov ecx, dword [ebp - 4]
xor ebx, eax
add ecx, eax
mov dword [ebp - 4], ecx
sub edi, 1
jne 0x4a0ec0
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
cmp word [edx + 0x1c], cx
jne 0x4a0ef8
cmp word [edx + 0x1e], bx
je 0x4a0f11
push eax
call fcn.004cdc68
add esp, 4
xor esi, esi
call fcn.00478da0
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 8]
call fcn.00478da0
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4a4b80
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
push 0x1c
mov edi, edx
mov esi, ecx
call fcn.004cdc6d
mov ebx, eax
mov eax, dword [ebp + 8]
push ebx
push 0
push 0x4a4a60
mov dword [ebx + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 4], 0
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x18], eax
call fcn.004dd8a3
add esp, 0x10
cmp eax, 0xffffffff
je 0x4a4bda
push 2
push eax
mov dword [ebx], eax
call dword [0x4f52e8]
pop edi
pop esi
mov eax, ebx
pop ebx
pop ebp
ret
push 0x1c
push ebx
call fcn.004cdc9d
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret