Function at 0x6a4242
Capabilities:
Encode data using xor
Encrypt data using xtea

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xdc
mov eax, dword [ebp + 8]
mov dword [ebp - 0x84], eax
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x64], 0x80c9e4
mov dword [ebp - 0x60], 0x99d7f0
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], 0x6a47a5
mov dword [ebp - 0x54], esp
lea eax, [ebp - 0x7c]
mov dword [esp], eax
call fcn.0080f6e4
mov ebx, dword [ebp - 0x88]
mov eax, dword [ebx + 0x3c04]
sub eax, 6
mov cl, 0
test al, 7
je 0x6a44c1
mov dword [esp + 4], str._Failure___Protocol::XTEA_decrypt__Not_valid_encrypted_message_size
mov dword [esp], 0x9fa560
mov dword [ebp - 0x78], 0xffffffff
call fcn.00987374
mov eax, dword [ebp - 0x84]
mov dword [esp], eax
call fcn.006a4946
test eax, eax
je 0x6a449a
mov dword [esp + 4], eax
lea edx, [ebp - 0x28]
mov dword [esp], edx
call fcn.007510ee
sub esp, 4
mov dword [esp + 4], str.__IP:
mov dword [esp], 0x9fa560
mov dword [ebp - 0x78], 6
call fcn.00987374
lea ecx, [ebp - 0x28]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00987ad4
mov dword [esp + 4], 0x9c64a7
mov dword [esp], eax
call fcn.00987374
jmp 0x6a43f1
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0xa0], edx
sub edx, 0xc
mov dword [ebp - 0x9c], edx
lea ecx, [ebp - 0x28]
mov dword [esp + 4], ecx
lea ebx, [ebp - 0x38]
mov dword [esp], ebx
call fcn.009222f8
cmp dword [ebp - 0x9c], 0x9aba1c
je 0x6a4484
mov dword [esp + 4], 0xffffffff
mov eax, dword [ebp - 0xa0]
sub eax, 4
mov dword [esp], eax
mov dword [ebp - 0x78], 4
call fcn.00815de4
test eax, eax
jg 0x6a4484
mov dword [esp + 4], ebx
mov edx, dword [ebp - 0x9c]
mov dword [esp], edx
call fcn.00929958
jmp 0x6a4484
lea eax, [ebp - 0x38]
mov dword [esp], eax
call fcn.00922338
lea eax, [ebp - 0x28]
mov dword [esp], eax
call fcn.00922348
mov dword [esp + 4], fcn.009831d4
mov dword [esp], 0x9fa560
mov dword [ebp - 0x78], 0xffffffff
call fcn.00927758
mov dword [ebp - 0x80], 0
jmp 0x6a4853
movzx edx, cl
mov ebx, dword [ebp - 0x84]
mov eax, dword [ebx + edx*4 + 0x1c]
mov dword [ebp + edx*4 - 0x38], eax
inc cl
cmp cl, 3
jbe 0x6a44c1
mov eax, dword [ebp - 0x88]
mov edx, dword [eax + 0x3c04]
sub edx, 6
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xa8], 0
mov ecx, eax
mov eax, dword [eax + 0x3c08]
lea eax, [ecx + eax + 4]
mov dword [ebp - 0xac], eax
jmp 0x6a45ab
mov ebx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + ebx*4]
mov ebx, dword [eax + ebx*4 + 4]
mov esi, 0xc6ef3720
mov edi, 0
mov edx, ecx
shl edx, 4
mov eax, ecx
shr eax, 5
xor edx, eax
add edx, ecx
mov dword [ebp - 0xcc], edx
mov eax, esi
shr eax, 0xb
and eax, 3
mov edx, dword [ebp + eax*4 - 0x38]
lea eax, [esi + edx]
mov edx, dword [ebp - 0xcc]
xor edx, eax
sub ebx, edx
add esi, 0x61c88647
mov eax, ebx
shl eax, 4
mov edx, ebx
shr edx, 5
xor eax, edx
add eax, ebx
mov dword [ebp - 0xd0], eax
mov edx, esi
and edx, 3
mov eax, dword [ebp + edx*4 - 0x38]
lea edx, [esi + eax]
mov eax, dword [ebp - 0xd0]
xor eax, edx
sub ecx, eax
inc edi
cmp edi, 0x1f
jle 0x6a452c
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov dword [eax + edx*4], ecx
mov dword [eax + edx*4 + 4], ebx
add edx, 2
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0xa4]
test eax, eax
jns 0x6a45b8
add eax, 3
sar eax, 2
cmp eax, dword [ebp - 0xa8]
jg 0x6a450f
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 0x3c08]
movzx edx, word [eax + edx + 4]
add eax, 2
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0x3c08], eax
movzx edx, dx
mov eax, dword [ecx + 0x3c04]
sub eax, 8
cmp eax, edx
jge 0x6a4840
mov dword [esp + 4], str._Failure___Protocol::XTEA_decrypt__Not_valid_unencrypted_message_size
mov dword [esp], 0x9fa560
mov dword [ebp - 0x78], 0xffffffff
call fcn.00987374
mov ebx, dword [ebp - 0x84]
mov dword [esp], ebx
call fcn.006a4946
test eax, eax
je 0x6a481c
mov dword [esp + 4], eax
lea eax, [ebp - 0x28]
mov dword [esp], eax
call fcn.007510ee
sub esp, 4
mov dword [esp + 4], str.__IP:
mov dword [esp], 0x9fa560
mov dword [ebp - 0x78], 3
call fcn.00987374
lea edx, [ebp - 0x28]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00987ad4
mov dword [esp + 4], 0x9c64a7
mov dword [esp], eax
call fcn.00987374
jmp 0x6a4740
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0xc0], ebx
sub ebx, 0xc
mov dword [ebp - 0xbc], ebx
lea eax, [ebp - 0x28]
mov dword [esp + 4], eax
lea edx, [ebp - 0x48]
mov dword [esp], edx
call fcn.009222f8
cmp ebx, 0x9aba1c
je 0x6a4806
mov dword [esp + 4], 0xffffffff
mov eax, dword [ebp - 0xc0]
sub eax, 4
mov dword [esp], eax
mov dword [ebp - 0x78], 1
call fcn.00815de4
test eax, eax
jg 0x6a4806
lea ecx, [ebp - 0x48]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.00929958
jmp 0x6a4806
lea eax, [ebp - 0x48]
mov dword [esp], eax
call fcn.00922338
lea edx, [ebp - 0x28]
mov dword [esp], edx
call fcn.00922348
mov dword [esp + 4], fcn.009831d4
mov dword [esp], 0x9fa560
mov dword [ebp - 0x78], 0xffffffff
call fcn.00927758
mov dword [ebp - 0x80], 0
jmp 0x6a4853
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0x3c04], edx
mov dword [ebp - 0x80], 1
lea eax, [ebp - 0x7c]
mov dword [esp], eax
call fcn.0080f7c4
mov eax, dword [ebp - 0x80]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret