joyce8/EMBER2024-capa huggingface dataset:
Function at 0x462830
Capabilities:
Encrypt data using curve25519

Disassembly:
mov eax, 4
call fcn.004e2da0
mov eax, dword [esp + 0xc]
push ebp
mov ebp, dword [esp + 0x14]
push esi
push edi
mov edi, ecx
mov esi, edx
cmp edi, 2
je 0x462897
test eax, eax
je 0x46288a
push eax
push 0
lea eax, [esp + 0x14]
push eax
push 0
call fcn.00448030
add esp, 0x10
cmp dword [esp + 0xc], 0xffffffff
je 0x46288a
push 0x2f
push str.....openssl_1.1.0ecryptoececx_meth.c
push 0x66
push 0x10a
push 0x10
call fcn.00431a90
add esp, 0x14
pop edi
pop esi
xor eax, eax
pop ebp
pop ecx
ret
test esi, esi
je 0x462893
cmp ebp, 0x20
je 0x462897
push 0x35
jmp 0x46286d
push ebx
push 0x3a
push str.....openssl_1.1.0ecryptoececx_meth.c
push 0x24
call fcn.00433390
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4628cf
push 0x3c
push str.....openssl_1.1.0ecryptoececx_meth.c
push 0x41
push 0x10a
push 0x10
call fcn.00431a90
add esp, 0x14
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
pop ecx
ret
test edi, edi
jne 0x4628e3
push ebp
push esi
push ebx
call fcn.004df910
add esp, 0xc
jmp 0x462990
push 0x43
push str.....openssl_1.1.0ecryptoececx_meth.c
push 0x20
call fcn.00443dc0
add esp, 0xc
mov dword [ebx + 0x20], eax
test eax, eax
jne 0x462928
push 0x45
push str.....openssl_1.1.0ecryptoececx_meth.c
push 0x41
push 0x10a
push 0x10
call fcn.00431a90
push 0x46
push str.....openssl_1.1.0ecryptoececx_meth.c
push ebx
call fcn.004333f0
add esp, 0x20
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
pop ecx
ret
cmp edi, 2
jne 0x46297a
push 0x20
push eax
call fcn.004373a0
add esp, 8
test eax, eax
jg 0x462964
mov ecx, dword [ebx + 0x20]
push 0x4b
push str.....openssl_1.1.0ecryptoececx_meth.c
push ecx
call fcn.00443e00
push 0x4c
push str.....openssl_1.1.0ecryptoececx_meth.c
push ebx
call fcn.004333f0
add esp, 0x18
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
pop ecx
ret
mov eax, dword [ebx + 0x20]
and byte [eax], 0xf8
mov eax, dword [ebx + 0x20]
and byte [eax + 0x1f], 0x7f
mov eax, dword [ebx + 0x20]
or byte [eax + 0x1f], 0x40
jmp 0x462983
mov ecx, 8
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebx + 0x20]
push edx
push ebx
call fcn.0048b110
add esp, 8
mov eax, dword [esp + 0x18]
push ebx
push 0x40a
push eax
call fcn.00439d40
add esp, 0xc
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
pop ecx
ret

Function at 0x46d620
Capabilities:
Hash data using sha1

Disassembly:
push esi
mov esi, dword [esp + 8]
push 0x60
push 0
push esi
call fcn.004e00a0
add esp, 0xc
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
mov dword [esi + 0x10], 0xc3d2e1f0
mov eax, 1
pop esi
ret
Function at 0x471b80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov edx, dword [esp + 4]
push ebx
push ebp
mov ebp, dword [esp + 0x10]
push esi
mov esi, edi
mov ecx, ebp
cmp edi, 4
jb 0x471ba8
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x471bac
sub esi, 4
add ecx, 4
add edx, 4
cmp esi, 4
jae 0x471b94
test esi, esi
je 0x471c06
movzx eax, byte [edx]
movzx ebx, byte [ecx]
sub eax, ebx
jne 0x471be7
cmp esi, 1
jbe 0x471c06
movzx eax, byte [edx + 1]
movzx ebx, byte [ecx + 1]
sub eax, ebx
jne 0x471be7
cmp esi, 2
jbe 0x471c06
movzx eax, byte [edx + 2]
movzx ebx, byte [ecx + 2]
sub eax, ebx
jne 0x471be7
cmp esi, 3
jbe 0x471c06
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
jle 0x471c06
push 0x157
push str.....openssl_1.1.0ecryptox509v3_v3_addr.c
push str.assertion_failed:_memcmp_min__max__length____0
call fcn.004441a0
add esp, 0xc
mov ebx, dword [esp + 0x10]
xor edx, edx
test edi, edi
jle 0x471c23
mov esi, ebx
mov eax, ebp
sub esi, ebp
mov cl, byte [esi + eax]
cmp cl, byte [eax]
jne 0x471c23
inc edx
inc eax
cmp edx, edi
jl 0x471c16
lea eax, [edi - 1]
test eax, eax
js 0x471c40
mov esi, ebx
lea ecx, [eax + ebp]
sub esi, ebp
cmp byte [ecx + esi], 0
jne 0x471c40
cmp byte [ecx], 0xff
jne 0x471c40
dec ecx
dec eax
jns 0x471c31
cmp edx, eax
jl case.0x471c6f.2
jle 0x471c51
pop esi
pop ebp
lea eax, [edx*8]
pop ebx
ret
mov cl, byte [edx + ebx]
mov bl, byte [edx + ebp]
mov al, bl
xor al, cl
mov byte [esp + 0x10], cl
movzx ecx, al
dec ecx
cmp ecx, 0x7e
ja case.0x471c6f.2
movzx ecx, byte [ecx + 0x471ce0]
jmp dword [ecx*4 + 0x471cc0]
mov esi, 7
jmp 0x471ca5
mov esi, 6
jmp 0x471ca5
mov esi, 5
jmp 0x471ca5
mov esi, 4
jmp 0x471ca5
mov esi, 3
jmp 0x471ca5
mov esi, 2
jmp 0x471ca5
mov esi, 1
test byte [esp + 0x10], al
jne case.0x471c6f.2
and bl, al
cmp bl, al
jne case.0x471c6f.2
lea eax, [esi + edx*8]
pop esi
pop ebp
pop ebx
ret
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret
Function at 0x48b110
Capabilities:
Encrypt data using curve25519

Disassembly:
mov eax, 0x120
call fcn.004e2da0
mov eax, dword [0x563374]
xor eax, esp
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x124]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x134]
push edi
mov ecx, 8
lea edi, [esp + 0xdc]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xf8]
and byte [esp + 0xdc], 0xf8
shr ecx, 0x18
and cl, 0x3f
or cl, 0x40
lea edx, [esp + 0x3c]
mov byte [esp + 0xfb], cl
push edx
lea ecx, [esp + 0xe0]
mov dword [esp + 0x14], eax
call fcn.0048a200
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
add ecx, eax
sub eax, dword [esp + 0x68]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0x94]
add edx, ecx
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0x98]
add esi, edx
mov dword [esp + 0xe8], esi
mov esi, dword [esp + 0x9c]
add edi, esi
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0xec], edi
mov edi, dword [esp + 0xa0]
add ebx, edi
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0xa4]
add ebx, dword [esp + 0x7c]
sub ecx, dword [esp + 0x6c]
sub edx, dword [esp + 0x70]
sub esi, dword [esp + 0x74]
sub edi, dword [esp + 0x78]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0xa4]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0xf4], ebx
mov ebx, dword [esp + 0xa8]
add ebx, dword [esp + 0x80]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0xa8]
sub eax, dword [esp + 0x80]
mov dword [esp + 0xf8], ebx
mov ebx, dword [esp + 0xac]
add ebx, dword [esp + 0x84]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xac]
sub eax, dword [esp + 0x84]
mov dword [esp + 0xfc], ebx
mov ebx, dword [esp + 0xb0]
add ebx, dword [esp + 0x88]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0xb0]
sub eax, dword [esp + 0x88]
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0xb4]
add ebp, ebx
sub ebx, dword [esp + 0x8c]
mov dword [esp + 0x128], eax
mov dword [esp + 0x104], ebp
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], esi
mov dword [esp + 0x118], edi
mov dword [esp + 0x12c], ebx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x10c]
call fcn.004887e0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0xe8]
push edx
mov ecx, edx
call fcn.00486520
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0xf0]
call fcn.00486280
mov ecx, dword [esp + 0x140]
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004e6abd
add esp, 0x120
ret
Function at 0x48c4c0
Capabilities:
Encode data using xor

Disassembly:
push edi
mov edi, dword [esp + 8]
cmp dword [edi + 0x84], 0xffffffff
jne 0x48c4d2
xor eax, eax
pop edi
ret
mov eax, dword [edi]
push ebx
push esi
push eax
call fcn.0044daa0
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add esp, 4
mov esi, eax
mov dword [ecx], esi
test ebx, ebx
je 0x48c577
mov eax, dword [edi + 0x84]
push ebp
cmp eax, esi
jne 0x48c51e
test esi, esi
jle 0x48c554
mov ecx, ebx
lea eax, [edi + 4]
mov ebp, esi
lea esp, [esp]
mov dl, byte [eax + 0x60]
xor dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
dec ebp
jne 0x48c510
jmp 0x48c554
mov ecx, esi
sub ecx, eax
mov byte [eax + edi + 0x64], 0x80
cmp ecx, 1
jle 0x48c53d
dec ecx
push ecx
lea eax, [eax + edi + 0x65]
push 0
push eax
call fcn.004e00a0
add esp, 0xc
test esi, esi
jle 0x48c554
mov ecx, ebx
lea eax, [edi + 0x24]
mov ebp, esi
mov dl, byte [eax + 0x40]
xor dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
dec ebp
jne 0x48c548
mov eax, dword [edi]
push esi
push ebx
push ebx
push eax
call fcn.0044dab0
add esp, 0x10
pop ebp
test eax, eax
jne 0x48c577
push esi
push ebx
call fcn.00443420
add esp, 8
pop esi
pop ebx
xor eax, eax
pop edi
ret
pop esi
pop ebx
mov eax, 1
pop edi
ret
Function at 0x493ae0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
mov ebx, edx
push ebx
mov esi, ecx
call fcn.0044dac0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
add esp, 4
cmp eax, 0x72
mov eax, dword [esp + 0x14]
jne 0x493bb8
push ebp
push edi
mov ebx, esi
push eax
shr ebx, 1
and esi, 1
push ecx
lea ebp, [esi + ebx]
push ebp
push edx
call fcn.0044d210
mov ecx, dword [esp + 0x30]
mov edx, eax
call fcn.00493860
add esp, 0x14
test eax, eax
je 0x493b7e
push 0xf8
push str.....openssl_1.1.0ecryptokdf_tls1_prf.c
push edi
call fcn.00433360
mov esi, eax
add esp, 0xc
test esi, esi
je 0x493b7e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add ebx, dword [esp + 0x10]
push edi
push eax
push ecx
push ebp
push ebx
call fcn.00451a20
mov ecx, esi
mov edx, eax
call fcn.00493860
add esp, 0x14
test eax, eax
jne 0x493b84
push 0xfd
push str.....openssl_1.1.0ecryptokdf_tls1_prf.c
push edi
push esi
call fcn.00433410
add esp, 0x10
pop ebp
pop esi
xor eax, eax
pop ebx
ret
test edi, edi
je 0x493b9b
mov eax, dword [esp + 0x1c]
mov ecx, esi
sub ecx, eax
mov ebp, edi
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
dec ebp
jne 0x493b92
push 0x102
push str.....openssl_1.1.0ecryptokdf_tls1_prf.c
push edi
push esi
call fcn.00433410
add esp, 0x10
pop ebp
pop esi
mov eax, 1
pop ebx
ret
push edi
push eax
push ecx
mov ecx, dword [esp + 0x24]
push esi
push edx
mov edx, ebx
call fcn.00493860
add esp, 0x14
neg eax
sbb eax, eax
pop esi
neg eax
pop ebx
ret

Function at 0x497430
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
push ebx
push esi
push edi
mov edi, dword [esp + 0x18]
cmp ecx, dword [edi + 4]
jge 0x497449
mov esi, edi
mov edi, eax
jmp 0x49744b
mov esi, eax
mov edx, dword [esi + 4]
mov ebx, dword [esp + 0x10]
push edx
push ebx
call fcn.00434680
add esp, 8
test eax, eax
jne 0x497464
pop edi
pop esi
pop ebx
ret
xor eax, eax
cmp dword [edi + 4], eax
jle 0x497485
jmp 0x497470
mov ecx, dword [edi]
mov edx, dword [esi]
mov ecx, dword [ecx + eax*4]
xor ecx, dword [edx + eax*4]
mov edx, dword [ebx]
mov dword [edx + eax*4], ecx
inc eax
cmp eax, dword [edi + 4]
jl 0x497470
cmp eax, dword [esi + 4]
jge 0x4974a0
lea ebx, [ebx]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax*4]
mov edx, dword [ebx]
mov dword [edx + eax*4], ecx
inc eax
cmp eax, dword [esi + 4]
jl 0x497490
mov edx, dword [esi + 4]
push ebx
mov dword [ebx + 4], edx
call fcn.00434230
add esp, 4
pop edi
pop esi
mov eax, 1
pop ebx
ret
Function at 0x49cb70
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.004e2da0
mov eax, dword [esp + 0x1c]
push ebx
mov ebx, dword [esp + 0x14]
push ebp
push esi
mov esi, dword [eax]
push edi
mov edi, dword [esp + 0x28]
test esi, esi
je 0x49cbb5
test ebx, ebx
je 0x49cbb5
mov cl, byte [esi + edi]
mov ebp, dword [esp + 0x18]
xor cl, byte [ebp]
mov eax, dword [esp + 0x1c]
mov byte [eax], cl
inc eax
inc ebp
inc esi
dec ebx
and esi, 0xf
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebp
jne 0x49cb90
cmp ebx, 0x10
jb 0x49cc2d
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, edx
sub eax, edi
mov dword [esp + 0x20], eax
mov eax, ebx
shr eax, 4
mov ebp, ecx
mov dword [esp + 0x10], eax
shl eax, 4
add ecx, eax
sub ebp, edi
add edx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x24]
push edx
push edi
push edi
call dword [esp + 0x3c]
add esp, 0xc
cmp esi, 0x10
jae 0x49cc1a
mov ecx, 0xf
sub ecx, esi
shr ecx, 2
lea eax, [esi + edi]
inc ecx
mov edx, dword [esp + 0x20]
mov edx, dword [edx + eax]
xor edx, dword [eax]
add eax, 4
dec ecx
mov dword [eax + ebp - 4], edx
jne 0x49cc07
add dword [esp + 0x20], 0x10
sub ebx, 0x10
add ebp, 0x10
xor esi, esi
dec dword [esp + 0x10]
jne 0x49cbe6
test ebx, ebx
je 0x49cc69
mov eax, dword [esp + 0x24]
push eax
push edi
push edi
call dword [esp + 0x3c]
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add esp, 0xc
lea eax, [esi + edi]
sub ebp, edi
sub ecx, edi
add esi, ebx
mov dl, byte [eax + ebp]
xor dl, byte [eax]
inc eax
dec ebx
mov byte [eax + ecx - 1], dl
jne 0x49cc50
mov eax, dword [esp + 0x2c]
pop edi
mov dword [eax], esi
pop esi
pop ebp
pop ebx
pop ecx
ret
mov ecx, dword [esp + 0x2c]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
pop ebx
pop ecx
ret
Function at 0x49d130
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.004e2da0
mov eax, dword [esp + 0x20]
push ebx
mov ebx, dword [eax]
push ebp
push esi
mov esi, dword [esp + 0x28]
push edi
mov edi, dword [esp + 0x20]
test ebx, ebx
je 0x49d179
test edi, edi
je 0x49d179
mov cl, byte [ebx + esi]
mov ebp, dword [esp + 0x18]
xor cl, byte [ebp]
mov eax, dword [esp + 0x1c]
mov byte [eax], cl
inc eax
inc ebp
inc ebx
dec edi
and ebx, 0xf
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], ebx
jne 0x49d150
cmp edi, 0x10
jb 0x49d1f4
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, edi
shr eax, 4
mov ebx, ecx
mov ebp, edx
mov dword [esp + 0x10], eax
shl eax, 4
add ecx, eax
sub ebx, esi
sub ebp, esi
add edx, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov edi, edi
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push edx
push esi
push eax
call dword [esp + 0x40]
mov edx, dword [esp + 0x34]
add esp, 0xc
call fcn.0049d100
mov eax, esi
mov ecx, 4
mov edx, dword [eax + ebp]
xor edx, dword [eax]
add eax, 4
dec ecx
mov dword [ebx + eax - 4], edx
jne 0x49d1d2
sub edi, 0x10
add ebx, 0x10
add ebp, 0x10
dec dword [esp + 0x10]
jne 0x49d1b0
mov ebx, dword [esp + 0x20]
test edi, edi
je 0x49d23b
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
push eax
push esi
push ebp
call dword [esp + 0x40]
add esp, 0xc
mov edx, ebp
call fcn.0049d100
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea eax, [ebx + esi]
sub ebp, esi
sub ecx, esi
add ebx, edi
mov dl, byte [eax + ebp]
xor dl, byte [eax]
inc eax
dec edi
mov byte [eax + ecx - 1], dl
jne 0x49d222
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword [eax], ebx
pop ebx
pop ecx
ret
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword [ecx], ebx
pop ebx
pop ecx
ret
Function at 0x49d280
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.004e2da0
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
push ebx
push ebp
mov ebp, dword [esp + 0x18]
push esi
push edi
mov dword [esp + 0x10], eax
test eax, eax
je 0x49d2cc
test ebp, ebp
je 0x49d2cc
mov ecx, dword [esp + 0x2c]
mov dl, byte [eax + ecx]
mov esi, dword [esp + 0x18]
xor dl, byte [esi]
mov ecx, dword [esp + 0x1c]
mov byte [ecx], dl
inc ecx
inc esi
inc eax
dec ebp
and eax, 0xf
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], eax
jne 0x49d2a0
mov esi, dword [esp + 0x28]
movzx ebx, byte [esi + 0xc]
movzx ecx, byte [esi + 0xd]
movzx edx, byte [esi + 0xe]
shl ebx, 8
or ebx, ecx
movzx ecx, byte [esi + 0xf]
shl ebx, 8
or ebx, edx
shl ebx, 8
or ebx, ecx
cmp ebp, 0x10
jb 0x49d36c
mov edi, ebp
shr edi, 4
add ebx, edi
cmp ebx, edi
jae 0x49d303
sub edi, ebx
xor ebx, ebx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push esi
push edx
push edi
push eax
push ecx
call dword [esp + 0x48]
mov edx, ebx
mov eax, ebx
mov ecx, ebx
shr edx, 0x18
shr eax, 0x10
shr ecx, 8
add esp, 0x14
mov byte [esi + 0xc], dl
mov byte [esi + 0xd], al
mov byte [esi + 0xe], cl
mov byte [esi + 0xf], bl
test ebx, ebx
jne 0x49d356
mov eax, 0xc
mov ecx, 1
movzx edx, byte [eax + esi - 1]
dec eax
add ecx, edx
mov byte [eax + esi], cl
shr ecx, 8
test eax, eax
jne 0x49d344
shl edi, 4
add dword [esp + 0x1c], edi
add dword [esp + 0x18], edi
sub ebp, edi
cmp ebp, 0x10
jae 0x49d2f4
mov eax, dword [esp + 0x10]
test ebp, ebp
je 0x49d3e9
mov edi, dword [esp + 0x2c]
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
push esi
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x28]
push eax
push 1
push edi
push edi
call dword [esp + 0x48]
inc ebx
mov ecx, ebx
mov edx, ebx
mov eax, ebx
shr ecx, 0x18
shr edx, 0x10
shr eax, 8
add esp, 0x14
mov byte [esi + 0xc], cl
mov byte [esi + 0xd], dl
mov byte [esi + 0xe], al
mov byte [esi + 0xf], bl
test ebx, ebx
jne 0x49d3b9
mov edx, esi
call fcn.0049d250
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea eax, [edx + edi]
sub ecx, edi
sub esi, edi
add edx, ebp
mov edi, edi
mov bl, byte [ecx + eax]
xor bl, byte [eax]
inc eax
dec ebp
mov byte [esi + eax - 1], bl
jne 0x49d3d0
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword [ecx], edx
pop ebx
pop ecx
ret
mov edx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword [edx], eax
pop ebx
pop ecx
ret
Function at 0x49d960
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
push ebx
mov ebx, dword [esp + 0x10]
push ebx
push eax
push ecx
call fcn.0049d430
add esp, 0xc
test eax, eax
js 0x49dba8
mov edx, dword [ebx + 0xf0]
add edx, edx
push esi
add edx, edx
xor esi, esi
push edi
test edx, edx
jle 0x49d9dd
lea ecx, [ebx + edx*4 + 8]
lea eax, [ebx + 8]
push ebp
lea ebx, [ebx]
mov ebp, dword [ecx - 8]
mov edi, dword [eax - 8]
mov dword [eax - 8], ebp
mov ebp, dword [ecx - 4]
mov dword [ecx - 8], edi
mov edi, dword [eax - 4]
mov dword [eax - 4], ebp
mov ebp, dword [ecx]
mov dword [ecx - 4], edi
mov edi, dword [eax]
mov dword [eax], ebp
mov ebp, dword [ecx + 4]
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [eax + 4], ebp
mov dword [ecx + 4], edi
add esi, 4
sub edx, 4
add eax, 0x10
sub ecx, 0x10
cmp esi, edx
jl 0x49d9a0
pop ebp
mov edx, 1
cmp dword [ebx + 0xf0], edx
jle 0x49dba4
lea eax, [ebx + 2]
mov ecx, dword [eax + 0xe]
movzx edi, byte [eax + 0xf]
mov edi, dword [edi*4 + 0x540330]
add eax, 0x10
mov esi, ecx
shr esi, 0x18
mov esi, dword [esi*4 + 0x540330]
and esi, 0xff
mov esi, dword [esi*4 + 0x540f30]
and edi, 0xff
xor esi, dword [edi*4 + 0x541730]
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x540330]
and ecx, 0xff
xor esi, dword [ecx*4 + 0x541b30]
movzx ecx, byte [eax]
mov ecx, dword [ecx*4 + 0x540330]
movzx edi, byte [eax + 3]
and ecx, 0xff
xor esi, dword [ecx*4 + 0x541330]
mov ecx, dword [eax + 2]
mov dword [eax - 2], esi
mov edi, dword [edi*4 + 0x540330]
mov esi, ecx
shr esi, 0x18
mov esi, dword [esi*4 + 0x540330]
and esi, 0xff
mov esi, dword [esi*4 + 0x540f30]
and edi, 0xff
xor esi, dword [edi*4 + 0x541730]
movzx edi, byte [eax + 4]
mov edi, dword [edi*4 + 0x540330]
and edi, 0xff
xor esi, dword [edi*4 + 0x541330]
movzx edi, byte [eax + 7]
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x540330]
and ecx, 0xff
xor esi, dword [ecx*4 + 0x541b30]
mov ecx, dword [eax + 6]
mov dword [eax + 2], esi
mov edi, dword [edi*4 + 0x540330]
mov esi, ecx
shr esi, 0x18
mov esi, dword [esi*4 + 0x540330]
and esi, 0xff
mov esi, dword [esi*4 + 0x540f30]
and edi, 0xff
xor esi, dword [edi*4 + 0x541730]
movzx edi, byte [eax + 8]
mov edi, dword [edi*4 + 0x540330]
and edi, 0xff
xor esi, dword [edi*4 + 0x541330]
movzx edi, byte [eax + 0xb]
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x540330]
and ecx, 0xff
xor esi, dword [ecx*4 + 0x541b30]
mov ecx, dword [eax + 0xa]
mov dword [eax + 6], esi
mov edi, dword [edi*4 + 0x540330]
mov esi, ecx
shr esi, 0x18
mov esi, dword [esi*4 + 0x540330]
and esi, 0xff
mov esi, dword [esi*4 + 0x540f30]
and edi, 0xff
xor esi, dword [edi*4 + 0x541730]
movzx edi, byte [eax + 0xc]
mov edi, dword [edi*4 + 0x540330]
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x540330]
and edi, 0xff
xor esi, dword [edi*4 + 0x541330]
and ecx, 0xff
xor esi, dword [ecx*4 + 0x541b30]
inc edx
mov dword [eax + 0xa], esi
cmp edx, dword [ebx + 0xf0]
jl 0x49d9f1
pop edi
xor eax, eax
pop esi
pop ebx
ret
Function at 0x49ee70
Capabilities:
Encode data using xor

Disassembly:
mov eax, 8
call fcn.004e2da0
xor eax, eax
push ebx
mov ebx, dword [esp + 0x18]
push esi
mov esi, dword [esp + 0x14]
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x16c], eax
mov dword [esi + 0x168], eax
cmp ebx, 0xc
jne 0x49eedc
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov byte [esi + 0xf], 1
mov ebx, 1
jmp 0x49f010
mov ecx, ebx
push edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
cmp ebx, 0x10
jb 0x49ef63
mov ecx, dword [esp + 0x1c]
mov eax, ebx
shr eax, 4
mov edi, ecx
mov dword [esp + 0x18], eax
shl eax, 4
sub edi, esi
add ecx, eax
mov dword [esp + 0x1c], ecx
push ebp
jmp 0x49ef10
lea ecx, [edi + esi + 2]
mov eax, esi
mov ebp, 4
jmp 0x49ef20
movzx edx, byte [edi + eax]
xor byte [eax], dl
movzx edx, byte [ecx - 1]
xor byte [eax + 1], dl
movzx edx, byte [ecx]
xor byte [eax + 2], dl
movzx edx, byte [ecx + 1]
xor byte [eax + 3], dl
add eax, 4
add ecx, 4
dec ebp
jne 0x49ef20
lea eax, [esi + 0x60]
push eax
push esi
call fcn.0049ea50
add esp, 8
add edi, 0x10
sub ebx, 0x10
dec dword [esp + 0x1c]
jne 0x49ef10
mov ecx, dword [esp + 0x10]
xor eax, eax
pop ebp
cmp ebx, eax
je 0x49ef8d
jbe 0x49ef7c
mov ecx, dword [esp + 0x1c]
mov eax, esi
sub ecx, esi
mov edi, ebx
mov dl, byte [eax + ecx]
xor byte [eax], dl
inc eax
dec edi
jne 0x49ef73
lea eax, [esi + 0x60]
push eax
push esi
call fcn.0049ea50
mov ecx, dword [esp + 0x14]
add esp, 8
mov eax, dword [esp + 0x10]
shld eax, ecx, 3
mov edx, eax
shr edx, 0x18
xor byte [esi + 8], dl
mov edx, eax
shr edx, 0x10
xor byte [esi + 9], dl
mov edx, eax
shr edx, 8
xor byte [esi + 0xa], dl
add ecx, ecx
mov edx, eax
xor byte [esi + 0xb], dl
add ecx, ecx
add ecx, ecx
xor byte [esi + 0xf], cl
mov edi, eax
mov edx, ecx
shrd edx, edi, 0x18
xor byte [esi + 0xc], dl
shr edi, 0x18
mov edi, eax
mov edx, ecx
shrd edx, edi, 0x10
xor byte [esi + 0xd], dl
mov edx, ecx
shrd edx, eax, 8
xor byte [esi + 0xe], dl
shr eax, 8
lea eax, [esi + 0x60]
push eax
push esi
shr edi, 0x10
call fcn.0049ea50
movzx ebx, byte [esi + 0xc]
movzx ecx, byte [esi + 0xd]
movzx edx, byte [esi + 0xe]
movzx eax, byte [esi + 0xf]
shl ebx, 8
or ebx, ecx
shl ebx, 8
or ebx, edx
add esp, 8
shl ebx, 8
or ebx, eax
pop edi
mov ecx, dword [esi + 0x174]
mov eax, dword [esi + 0x170]
push ecx
lea edx, [esi + 0x20]
push edx
push esi
call eax
inc ebx
mov ecx, ebx
mov edx, ebx
add esp, 0xc
mov eax, ebx
shr ecx, 0x18
shr edx, 0x10
shr eax, 8
mov byte [esi + 0xf], bl
mov byte [esi + 0xc], cl
mov byte [esi + 0xd], dl
mov byte [esi + 0xe], al
pop esi
pop ebx
add esp, 8
ret
Function at 0x49f050
Capabilities:
Encode data using xor

Disassembly:
push esi
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x38]
or eax, dword [esi + 0x3c]
je 0x49f064
mov eax, 0xfffffffe
pop esi
ret
push ebx
mov ebx, dword [esp + 0x14]
xor eax, eax
mov ecx, ebx
add ecx, dword [esi + 0x30]
adc eax, dword [esi + 0x34]
cmp eax, 0x20000000
ja 0x49f119
jb 0x49f088
test ecx, ecx
jne 0x49f119
push ebp
mov ebp, dword [esp + 0x14]
push edi
mov edi, dword [esi + 0x16c]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], eax
test edi, edi
je 0x49f0c9
mov edi, edi
test ebx, ebx
je 0x49f0b5
mov cl, byte [ebp]
xor byte [edi + esi + 0x40], cl
inc edi
inc ebp
dec ebx
and edi, 0xf
jne 0x49f0a0
jmp 0x49f0b9
test edi, edi
jne 0x49f10c
lea edx, [esi + 0x60]
push edx
lea eax, [esi + 0x40]
push eax
call fcn.0049ea50
add esp, 8
mov eax, ebx
and eax, 0xfffffff0
mov dword [esp + 0x14], eax
je 0x49f0ef
push eax
lea ecx, [esi + 0x60]
push ecx
lea edx, [esi + 0x40]
push edx
mov ecx, ebp
call fcn.0049ebc0
mov eax, dword [esp + 0x20]
add esp, 0xc
add ebp, eax
sub ebx, eax
test ebx, ebx
je 0x49f10c
xor eax, eax
mov edi, ebx
test ebx, ebx
je 0x49f10c
jmp 0x49f100
mov cl, byte [eax + ebp]
xor byte [esi + eax + 0x40], cl
inc eax
cmp eax, ebx
jb 0x49f100
mov dword [esi + 0x16c], edi
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
ret
pop ebx
or eax, 0xffffffff
pop esi
ret