joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40aba0
Capabilities:
Decompress data using quicklz

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x40ad3b
sub esp, 0x3c
mov eax, dword [esp + 0x40]
cmp eax, 0x7000000
jle 0x40abcb
mov eax, 0x7000000
jmp 0x40abd3
test eax, eax
je 0x40ad2f
mov dword [esp + 0x18], eax
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x18]
mov edx, dword [ecx + 0x94]
mov ebx, dword [ecx + 0x98]
mov dword [ecx + 0x94], ebx
mov ebp, edx
shl edx, 0x11
xor edx, ebp
mov ebp, ebx
xor ebx, edx
shr edx, 7
xor edx, ebx
mov ebx, ebp
shr ebp, 0x10
xor ebp, edx
mov dword [ecx + 0x98], ebp
lea ecx, [ebp + ebx]
shr ecx, 6
inc ecx
mov dword [esp], ecx
call fcn.0045d3c0
movsd xmm0, qword [esp + 4]
movsd qword [esp + 0x2c], xmm0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov ecx, eax
shr eax, 0x14
and eax, 0x7ff
add eax, 0xfffffc01
mov edx, 0xffffffff
adc edx, 0
shr ecx, 0xf
and ecx, 0x1f
mov ebp, ecx
add ecx, 1
lea esi, [0x5cc200]
movsd xmm0, qword [esi + ebp*8]
movsd qword [esp + 0x1c], xmm0
movsd xmm1, qword [esi + ecx*8]
movsd qword [esp + 0x24], xmm1
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004570c0
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0x34], xmm0
mov dword [esp + 4], 0
mov eax, dword [esp + 0x14]
shl eax, 5
mov ecx, dword [esp + 0x10]
shr ecx, 0x1b
or ecx, eax
and ecx, 0xfffff
mov dword [esp], ecx
call fcn.00457190
movsd xmm0, qword [esp + 0x34]
movsd xmm1, qword [esp + 0x1c]
addsd xmm0, xmm1
movsd xmm2, qword [esp + 0x24]
subsd xmm2, xmm1
movsd xmm1, qword [esp + 8]
mulsd xmm1, xmm2
movsd xmm2, qword [0x538150]
mulsd xmm2, xmm1
addsd xmm0, xmm2
movsd xmm1, qword [0x5381b8]
subsd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jbe 0x40ad0a
xorps xmm0, xmm0
mov eax, dword [esp + 0x18]
cvtsi2sd xmm1, eax
movsd xmm2, qword [0x538200]
mulsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
inc eax
mov dword [esp + 0x44], eax
add esp, 0x3c
ret
mov dword [esp + 0x44], 0
add esp, 0x3c
ret
call fcn.0045c000
jmp fcn.0040aba0
Function at 0x412ca0
Capabilities:
Check for software breakpoints

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x412e8c
sub esp, 0x18
mov eax, dword [0x62b004]
test eax, eax
jne 0x412e75
nop
lea eax, [0x62aff0]
mov dword [esp], eax
call fcn.00408a30
mov eax, dword [0x62aff4]
test eax, eax
je 0x412ce9
cmp dword [eax + 8], 0xcc
jne 0x412d5f
mov eax, dword [0x62afe8]
test eax, eax
jne 0x412d41
mov dword [esp], 0x1000
mov dword [esp + 4], 0
lea eax, [0x62d8d0]
mov dword [esp + 8], eax
call fcn.0040ad50
mov eax, dword [esp + 0xc]
mov dword [0x62afe8], eax
mov ecx, dword [0x62afac]
mov dword [eax], ecx
mov eax, dword [0x62afe8]
mov dword [0x62afac], eax
movzx eax, byte [0x62b540]
test al, al
jne 0x412d41
xor eax, eax
jmp 0x412e69
mov eax, dword [0x62afe8]
mov ecx, dword [eax + 4]
mov dword [0x62afe8], ecx
mov ecx, dword [0x62aff4]
mov dword [eax + 4], ecx
mov dword [0x62aff4], eax
mov eax, dword [0x62aff4]
mov dword [esp + 0x14], eax
mov ecx, dword [eax + 8]
mov dword [esp + 0x10], ecx
lea edx, [eax + 8]
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00402040
mov eax, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x14]
lea edi, [ecx + eax*4 + 0x10]
mov edx, dword [0x62b220]
lea ebx, [ecx + eax*4 + 0x1c]
lea ebp, [ecx + eax*4 + 0x20]
lea esi, [ecx + eax*4 + 0x14]
test edx, edx
jne 0x412db2
mov edx, dword [esp + 0x20]
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x412dbf
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.0045d410
mov eax, edx
mov edx, dword [esp + 0x24]
mov dword [ecx + eax*4 + 0x18], edx
mov edx, dword [0x62b220]
test edx, edx
jne 0x412deb
mov edx, dword [esp + 0x28]
mov dword [ecx + eax*4 + 0x1c], edx
mov edx, dword [esp + 0x2c]
mov dword [ecx + eax*4 + 0x20], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx + eax*4 + 0x14], edx
jmp 0x412e0c
mov edi, ebx
mov eax, dword [esp + 0x28]
call fcn.0045d410
mov edi, ebp
mov eax, dword [esp + 0x2c]
call fcn.0045d410
mov edi, esi
mov eax, dword [esp + 0x1c]
call fcn.0045d410
nop
lea eax, [0x62aff0]
mov dword [esp], eax
call fcn.00408c30
nop
lea eax, [0x62afec]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.004021c0
add esp, 0x18
ret
mov ecx, eax
mov eax, 0xcccccccd
imul ecx
add edx, ecx
sar edx, 2
mov ebx, ecx
sar ecx, 0x1f
sub edx, ecx
lea ecx, [edx + edx*4]
mov edx, ebx
sub ebx, ecx
lea ecx, [0x5c825c]
movzx ebx, byte [ecx + ebx]
lea ebp, [0x62b540]
mov byte [ebp + edx], bl
lea eax, [edx + 1]
cmp eax, 0x80
jl 0x412e36
jmp 0x412d41
lea eax, [0x50aabe]
mov dword [esp], eax
mov dword [esp + 4], 0x18
call fcn.004328e0
nop
call fcn.0045c000
jmp fcn.00412ca0
Function at 0x424cd0
Capabilities:
Hash data using murmur3

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x424ed6
sub esp, 0x10
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 8], edx
call fcn.00425790
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 8], ecx
call fcn.004243c0
movzx eax, byte [esp + 0xc]
test al, al
je 0x424d34
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x3c], 1
jmp 0x424d38
mov ecx, dword [esp + 0x18]
movzx edx, byte [esp + 0x1c]
test dl, dl
jne 0x424e10
movzx ebx, byte [esp + 0x1d]
mov byte [ecx + 0x3a], bl
mov eax, dword [esp + 0x24]
shl eax, 0xd
shr bl, 1
test bl, bl
jne 0x424d6d
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x1c], 1
mov dword [ecx + 0x34], 0
jmp 0x424d98
movsx ebx, bl
lea esi, [0x5cb280]
movzx esi, word [esi + ebx*2]
mov dword [ecx + 0x40], esi
test esi, esi
je 0x424ed0
xor edx, edx
div esi
mov dword [ecx + 0x1c], eax
lea edx, [0x5cc440]
mov edx, dword [edx + ebx*4]
mov dword [ecx + 0x34], edx
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x58], 0
mov dword [ecx + 0x20], 0xffffffff
mov dword [ecx + 0x24], 0xffffffff
mov eax, dword [ecx + 0x1c]
mov dword [esp], eax
call fcn.00426310
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x2c], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp], eax
call fcn.004264a0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x28], eax
lea eax, [ecx + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [edx + 0x98]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00402110
nop
mov eax, dword [esp + 0x18]
lea ecx, [eax + 0x3b]
mov dword [esp], ecx
mov byte [esp + 4], 1
call fcn.004021b0
jmp 0x424e3c
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x1c], 0
mov eax, dword [ecx + 0x10]
shl eax, 0xd
add eax, dword [ecx + 0xc]
mov dword [ecx + 0x44], eax
nop
nop
lea eax, [ecx + 0x3b]
mov dword [esp], eax
mov byte [esp + 4], 2
call fcn.004021b0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x14]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00424320
movzx eax, byte [esp + 0x1c]
test al, al
jne 0x424ec7
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x60b09c]
mov edx, ecx
shr ecx, 0x16
mov ebx, dword [eax + ecx*4]
test byte [ebx], al
test byte [eax], al
nop
nop
mov ecx, edx
shr edx, 0x10
and edx, 0x3f
lea eax, [ebx + edx + 0x21800]
nop
mov dword [esp], eax
shr ecx, 0xd
and ecx, 7
mov eax, 1
shl eax, cl
mov byte [esp + 4], al
call fcn.00402190
mov eax, dword [esp + 0x14]
test byte [eax], al
add eax, 0xa8
mov dword [esp], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
call fcn.00401fa0
call fcn.0045d080
add esp, 0x10
ret
call fcn.00431090
nop
call fcn.0045c000
jmp fcn.00424cd0
Function at 0x425b60
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x425cd0
sub esp, 0x1c
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00423a30
mov eax, dword [esp + 4]
test eax, eax
je 0x425cb9
mov dword [esp + 0xc], eax
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x18]
nop
inc dword [edx + 0x7c]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x14], ecx
mov dword [esp], eax
call fcn.004218a0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
sub eax, dword [ecx + 0xc]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x24]
movzx ebx, byte [edx + 6]
mov byte [esp + 0xb], bl
lea ebp, [ecx + 0x48]
mov dword [esp + 0x18], ebp
nop
mov dword [esp], ebp
call fcn.00408a30
mov eax, dword [esp + 0xc]
lea ecx, [eax + 0x4c]
movzx edx, byte [esp + 0xb]
mov ebx, dword [esp + 0x10]
jmp 0x425bf7
mov ecx, ebp
mov ebp, dword [ecx]
test ebp, ebp
je 0x425c5d
movzx esi, word [ebp + 4]
cmp esi, ebx
jne 0x425c0c
cmp byte [ebp + 6], dl
je 0x425c17
cmp esi, ebx
ja 0x425c5d
jne 0x425bf5
cmp byte [ebp + 6], dl
jbe 0x425bf5
jmp 0x425c5d
nop
nop
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00408c30
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x7c]
lea ebx, [edx - 1]
mov dword [ecx + 0x7c], ebx
cmp edx, 1
jne 0x425c54
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x425c54
mov dword [eax + 8], 0xfffffade
mov byte [esp + 0x28], 0
add esp, 0x1c
ret
mov edx, dword [esp + 0x24]
mov word [edx + 4], bx
mov ebx, dword [ecx]
mov dword [edx], ebx
mov dword [ecx], edx
mov dword [esp], eax
call fcn.00425a80
nop
nop
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00408c30
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x7c]
lea ebx, [edx - 1]
mov dword [ecx + 0x7c], ebx
cmp edx, 1
jne 0x425cb0
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x425cb0
mov dword [eax + 8], 0xfffffade
mov byte [esp + 0x28], 1
add esp, 0x1c
ret
lea eax, [0x50c4ae]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
call fcn.004328e0
nop
call fcn.0045c000
jmp fcn.00425b60
Function at 0x426150
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x42626c
sub esp, 0x14
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 6]
cmp cl, 1
je 0x4261e5
cmp cl, 2
je 0x42618d
cmp cl, 3
jne 0x426255
mov byte [eax + 8], 1
jmp 0x426251
mov ecx, dword [eax + 8]
mov dword [esp], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
call fcn.0042ad90
nop
lea eax, [0x60f5b8]
mov dword [esp], eax
call fcn.00408a30
nop
mov eax, dword [0x60f584]
sub eax, dword [0x60f568]
mov dword [0x60f584], eax
mov eax, dword [0x60f574]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [0x60f574], ecx
nop
lea eax, [0x60f5b8]
mov dword [esp], eax
call fcn.00408c30
jmp 0x426251
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov ebp, dword [eax + 0x14]
mov esi, dword [esp + 0x1c]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.00412ca0
nop
lea eax, [0x60f5b8]
mov dword [esp], eax
call fcn.00408a30
nop
mov eax, dword [0x60f55c]
sub eax, dword [0x60f540]
mov dword [0x60f55c], eax
mov eax, dword [0x60f54c]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [0x60f54c], ecx
nop
nop
lea eax, [0x60f5b8]
mov dword [esp], eax
call fcn.00408c30
add esp, 0x14
ret
lea eax, [0x507893]
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.004328e0
nop
call fcn.0045c000
jmp fcn.00426150
Function at 0x42ce80
Capabilities:
Hash data using murmur3

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 0xc]
jbe 0x42d0b3
sub esp, 0x2c
mov eax, dword [esp + 0x30]
lea ecx, [eax + 0x980]
mov edx, dword [eax + 0x978]
mov dword [eax + 0x978], 0
sub edx, ecx
shr edx, 2
mov dword [esp + 0x24], edx
movzx ecx, byte [0x62af70]
test cl, cl
jne 0x42cecd
xor ecx, ecx
xor ebx, ebx
jmp 0x42cf09
xor ecx, ecx
jmp 0x42cef3
mov dword [esp + 0x28], ecx
mov edx, dword [eax + ecx*4 + 0x980]
mov dword [esp], edx
call fcn.0041b730
mov eax, dword [esp + 0x28]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
cmp ecx, edx
jl 0x42ced1
add eax, 0x978
mov dword [esp], eax
call fcn.0042cd70
add esp, 0x2c
ret
inc ecx
cmp ecx, edx
jge 0x42d07a
mov ebp, dword [eax + ecx*4 + 0x980]
cmp ebp, 0x1000
jb 0x42cf08
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp], ebp
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call fcn.0040f8a0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test ecx, ecx
jne 0x42cf62
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
jmp 0x42cf08
mov dword [esp + 0x20], ecx
mov ebx, dword [eax + 0x2c]
test byte [ebx], al
nop
mov ebp, edx
shr edx, 3
movzx esi, byte [ebx + edx]
and ebp, 7
mov ecx, ebp
mov edi, 1
shl edi, cl
add edx, ebx
xchg esi, eax
xchg edi, ebx
test bl, al
xchg edi, ebx
xchg esi, eax
je 0x42cfa2
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
jmp 0x42cf08
mov dword [esp + 0x18], eax
nop
mov dword [esp], edx
xchg edi, eax
mov byte [esp + 4], al
xchg edi, eax
call fcn.00402190
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
mov edx, dword [0x60b09c]
mov ebx, ecx
shr ecx, 0x16
mov ecx, dword [edx + ecx*4]
test byte [ecx], al
test byte [edx], al
nop
nop
mov edx, ebx
shr ebx, 0x10
and ebx, 0x3f
movzx ebp, byte [ecx + ebx + 0x21840]
lea ecx, [ecx + ebx + 0x21840]
nop
shr edx, 0xd
and edx, 7
mov ebx, ecx
mov ecx, edx
mov esi, 1
shl esi, cl
xchg ebp, eax
xchg esi, ebx
test bl, al
xchg esi, ebx
xchg ebp, eax
jne 0x42d015
mov dword [esp], ebx
xchg esi, eax
mov byte [esp + 4], al
xchg esi, eax
call fcn.00402190
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 0x3a]
test cl, 1
je 0x42d055
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x964]
mov ebp, dword [ecx + 0x968]
mov eax, dword [eax + 0x40]
add edx, eax
adc ebp, 0
mov dword [ecx + 0x964], edx
mov dword [ecx + 0x968], ebp
mov eax, ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
jmp 0x42cf08
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov dword [edx + eax*4 + 0x980], ecx
lea ebx, [eax + 1]
mov eax, edx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
jmp 0x42cf08
lea ecx, [eax + 0x95c]
mov dword [esp], ecx
lea ecx, [eax + 0x980]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x200
call fcn.00422d80
mov eax, dword [esp + 0x30]
add eax, 0x978
mov dword [esp], eax
call fcn.0042cd70
add esp, 0x2c
ret
call fcn.0045ab50
jmp fcn.0042ce80
Function at 0x44ca10
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x44cb46
sub esp, 0xc
mov eax, dword [esp + 0x10]
movzx edx, byte [eax]
test edx, edx
jne 0x44ca5e
movzx ebx, byte [esp + 0x24]
test bl, bl
jne 0x44ca5e
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov byte [esp + 0x34], 0
add esp, 0xc
ret
test edx, 0x80
je 0x44ca71
xor ecx, ecx
xor edx, edx
xor ebx, ebx
jmp 0x44cb26
mov ecx, 1
mov ebx, edx
and edx, 1
neg edx
shr ebx, 1
xor edx, ebx
mov ebx, dword [esp + 0x20]
add dword [ebx], edx
mov edx, dword [esp + 0x18]
sub edx, ecx
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, ecx
mov ebp, dword [esp + 0x14]
sub ebp, ecx
lea esi, [eax + edx]
movzx eax, byte [eax + edx]
test eax, 0x80
je 0x44cab6
mov dword [esp + 8], ebp
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x44caef
mov ecx, 1
mov edx, dword [esp + 0x1c]
add dword [edx], eax
sub ebx, ecx
mov eax, ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
lea edx, [esi + ebx]
mov dword [esp + 0x28], edx
sub ebp, ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], eax
mov byte [esp + 0x34], 1
add esp, 0xc
ret
lea edx, [ecx + 7]
mov ecx, ebp
mov ebp, dword [esp + 8]
mov dword [esp + 4], ecx
movzx edi, byte [eax + esi]
xchg edi, eax
mov byte [esp + 3], al
xchg edi, eax
inc eax
and edi, 0x7f
mov ecx, edx
shl edi, cl
mov ebp, dword [esp + 4]
or ebp, edi
movzx edi, byte [esp + 3]
xchg edi, eax
test al, 0x80
xchg edi, eax
jne 0x44cae6
mov ecx, eax
mov eax, ebp
mov ebp, dword [esp + 8]
jmp 0x44cabb
lea ebx, [ecx + 7]
mov ecx, esi
movzx ebp, byte [ecx + eax]
lea esi, [ecx + 1]
mov edi, ebp
and ebp, 0x7f
mov ecx, ebx
shl ebp, cl
or edx, ebp
xchg edi, eax
test al, 0x80
xchg edi, eax
jne 0x44cb21
mov ecx, esi
jmp 0x44ca76
call fcn.0045c000
jmp fcn.0044ca10
Function at 0x4509e0
Capabilities:
Access peb ldr_data

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x450ae0
sub esp, 0x28
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x8c], 0
mov dword [eax + 0x90], 0
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x58]
mov dword [eax + 0x94], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
call fcn.00451250
mov eax, dword [esp + 4]
mov dword [esp + 0x14], eax
lea ecx, [0x4ec0c0]
mov dword [esp], ecx
call fcn.0040aa30
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [eax], ecx
lea ecx, [0x60f650]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov dword [esp + 0xc], 1
call fcn.004502f0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x50]
mov ecx, dword [ecx + 0x54]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
mov byte [esp], 0xd
mov dword [esp + 4], 2
lea eax, [esp + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.0044f8d0
add esp, 0x28
ret
call fcn.0045c000
jmp fcn.004509e0
Function at 0x453ed0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x453f6f
sub esp, 0x30
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
lea edi, [esp + 0xc]
xor eax, eax
call fcn.0045d507
lea ecx, [0x453f80]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0xc]
mov dword [esp], ecx
call fcn.0045bef0
mov ecx, dword [esp + 4]
mov dword [esp + 0x44], ecx
add esp, 0x30
ret
call fcn.0045c000
jmp fcn.00453ed0
Function at 0x45d2c0
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
movd xmm0, dword [esp + 8]
pinsrw xmm0, ebx, 4
pshufhw xmm0, xmm0, 0
movdqa xmm1, xmm0
pxor xmm0, xmmword [0x62b320]
aesenc xmm0, xmm0
cmp ebx, 0x10
jb 0x45ba8b
je 0x45bade
cmp ebx, 0x20
jbe 0x45bae4
cmp ebx, 0x40
jbe 0x45bb2a
jmp 0x45bbcb
test ebx, ebx
je 0x45bad4
add eax, 0x10
test ax, 0xff0
je 0x45bac0
movdqu xmm1, xmmword [eax - 0x10]
add ebx, ebx
pand xmm1, xmmword [ebx*8 + 0x538d40]
pxor xmm1, xmm0
aesenc xmm1, xmm1
aesenc xmm1, xmm1
aesenc xmm1, xmm1
movd dword [edx], xmm1
ret
movdqu xmm1, xmmword [eax + ebx - 0x20]
add ebx, ebx
pshufb xmm1, xmmword [ebx*8 + 0x538f40]
jmp 0x45baa8
aesenc xmm0, xmm0
movd dword [edx], xmm0
ret
movdqu xmm1, xmmword [eax]
jmp 0x45baa8
pxor xmm1, xmmword [0x62b330]
aesenc xmm1, xmm1
movdqu xmm2, xmmword [eax]
movdqu xmm3, xmmword [eax + ebx - 0x10]
pxor xmm2, xmm0
pxor xmm3, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
pxor xmm2, xmm3
movd dword [edx], xmm2
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x62b330]
pxor xmm2, xmmword [0x62b340]
pxor xmm3, xmmword [0x62b350]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [eax]
movdqu xmm5, xmmword [eax + 0x10]
movdqu xmm6, xmmword [eax + ebx - 0x20]
movdqu xmm7, xmmword [eax + ebx - 0x10]
pxor xmm4, xmm0
pxor xmm5, xmm1
pxor xmm6, xmm2
pxor xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movd dword [edx], xmm4
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x62b330]
pxor xmm2, xmmword [0x62b340]
pxor xmm3, xmmword [0x62b350]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [eax + ebx - 0x40]
movdqu xmm5, xmmword [eax + ebx - 0x30]
movdqu xmm6, xmmword [eax + ebx - 0x20]
movdqu xmm7, xmmword [eax + ebx - 0x10]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
dec ebx
shr ebx, 6
movdqu xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 0x10]
movdqu xmm2, xmmword [eax + 0x20]
movdqu xmm3, xmmword [eax + 0x30]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
add eax, 0x40
dec ebx
jne 0x45bc2a
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movd dword [edx], xmm4
ret
cmp byte [0x62af6f], 0
je 0x45d2da
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0xc]
lea edx, [esp + 0x10]
jmp 0x45ba50
jmp fcn.004075e0
Function at 0x45d2e0
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4027be
sub esp, 0x10
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004075e0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
add esp, 0x10
ret
call fcn.0045c000
jmp 0x402780
cmp byte [0x62af6f], 0
je 0x45d2fb
mov eax, dword [esp + 4]
mov ebx, dword [eax + 4]
mov eax, dword [eax]
lea edx, [esp + 0xc]
jmp 0x45ba50
jmp 0x402780