Function at 0x5c3c60
Capabilities:
Encrypt data using tea
Encrypt data using xtea

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
jne 0x5c3c6b
add eax, dword [esp]
sub eax, dword [esp]
jne 0x5c3c8f
pushf
test ecx, 0x796f
rol ebx, 8
rol ebx, 0x18
sub esp, 0
popf
mov esp, esp
lea esi, [esi]
lea ebx, [ebx]
je 0x5c3c8f
mov esp, 0x8b0c4d8b
add dword [ecx + 0xe8f845], ecx
add byte [eax], al
add byte [ebx - 0x3f3efb3c], al
add byte [ecx + 0x18], bh
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov dword [ebp - 8], eax
call 0x5c3c9c
add esp, 4
rol eax, 0
jns 0x5c3cbc
pushf
xor ebx, 0
lea ebx, [ebx + 0x70db]
lea ebx, [ebx - 0x70db]
popf
jno 0x5c3cb9
js 0x5c3cbc
call 0x8960964b
pop ebp
cld
mov ebx, dword [ecx + 4]
mov dword [ebp - 4], ebx
js 0x5c3cc4
jl 0x5c3cc6
or ecx, 0
jno 0x5c3ccb
jae 0x5c3cd3
xchg ecx, eax
xchg ecx, eax
jb 0x5c3cd3
mov ebx, 0x85d233f8
or al, 0x24
xor edx, edx
test dword [esp], ecx
ror edi, 0x12
rol edi, 0x12
clc
xchg esi, esi
js 0x5c3cf8
jno 0x5c3ce5
jo 0x5c3ce7
lea esi, [esi + 0x3019]
lea esi, [esi - 0x3019]
jne 0x5c3cf5
jns 0x5c3cf8
mov ecx, 0x85104d8b
leave
mov ecx, dword [ebp + 0x10]
test ecx, ecx
jle 0x5c3df9
push edi
add edi, 0x48ac
ror edi, 0x14
pop edi
jae 0x5c3d10
lea eax, [eax + 0x1930]
lea eax, [eax - 0x1930]
ja 0x5c3d23
mov edi, edi
jbe 0x5c3d23
add eax, 0x79b9c969
aaa
sahf
imul ecx, ecx, 0x9e3779b9
mov dword [ebp - 0xc], ecx
cmc
jno 0x5c3d34
jnp 0x5c3d31
jo 0x5c3d34
add dword [ebp - 0xd7bf037], 0x8b000001
jge 0x5c3d47
test ecx, ecx
je 0x5c3f2e
mov edi, dword [ebp + 8]
jmp 0x5c3d47
mov ebx, dword [ebp - 4]
mov edx, dword [ebp + 0x10]
xor esp, 0
jns 0x5c3d4c
jge 0x5c3d5e
pushf
shr esp, 0
cmp esi, dword [esp + 0xc]
popf
xchg ecx, eax
xchg ecx, eax
jl 0x5c3d5e
mov edx, 0xc38bcb8b
mov ecx, ebx
mov eax, ebx
shr ecx, 5
shl eax, 4
xor ecx, eax
mov eax, edx
and eax, 3
mov esi, dword [edi + eax*4]
mov eax, edx
xor eax, ebx
mov ebx, dword [ebp - 8]
add ecx, esi
add eax, ebx
add ecx, eax
mov dword [ebp - 8], ecx
jge 0x5c3d84
xor eax, 0
jl 0x5c3d9d
pushf
mov ebx, ebx
rol esi, 0
std
cld
mov esi, esi
popf
lea ebx, [ebx]
jo 0x5c3d9a
jge 0x5c3d9d
call 0x86a42822
enter 0xffffffffffff8961, 0x55
adc byte [ebx + 0x78ffe4], al
sub edx, 0x61c88647
mov dword [ebp + 0x10], edx
and esp, 0xffffffff
js 0x5c3dab
jl 0x5c3dad
ja 0x5c3dbf
pushf
or ebx, ebx
nop
popf
je 0x5c3db8
js 0x5c3dba
xchg edx, edx
jbe 0x5c3dbf
xor eax, 0xc18bd18b
mov edx, ecx
mov eax, ecx
shr edx, 5
shl eax, 4
xor edx, eax
mov eax, dword [ebp + 0x10]
mov esi, eax
shr esi, 0xb
and esi, 3
mov ebx, dword [edi + esi*4]
mov esi, eax
add edx, ebx
mov ebx, dword [ebp - 4]
xor esi, ecx
mov ecx, dword [ebp - 0xc]
add esi, ebx
add esi, edx
cmp eax, ecx
mov dword [ebp - 4], esi
jne 0x5c3d41
jmp 0x5c3f2e
push eax
add eax, 0x5ffe
ror eax, 0xd
pop eax
lea edi, [edi]
lea ebx, [ebx + 0x4f33]
lea ebx, [ebx - 0x4f33]
rol ebx, 0xe
ror ebx, 0xe
jp 0x5c3e2c
pushf
mov eax, eax
ror esi, 0x15
ror esi, 0xb
dec ebx
inc ebx
popf
jae 0x5c3e29
jnp 0x5c3e2c
mov edi, 0x8647c969
enter 0xffffffffffff8b61, 0xfffffffffffffff9
imul ecx, ecx, 0x61c88647
mov edi, ecx
xor esi, 0
cmp esp, 0x6960
test esi, 0x40d1
sub esp, 0
jl 0x5c3e5b
pushf
add esp, 0
jno 0x5c3e4f
popf
jl 0x5c3e53
lea esp, [esp]
jmp 0x5c3e58
jge 0x5c3e5b
add eax, 0x840fff85
retf
test edi, edi
je 0x5c3f2e
jmp 0x5c3e68
mov edi, dword [ebp + 0x10]
cmp esi, dword [esp]
ror eax, 0x18
rol eax, 0x18
test esi, 0x52d9
jns 0x5c3e87
pushf
shl esp, 0
popf
xchg esi, edx
xchg esi, edx
js 0x5c3e87
mov eax, 0x8bf8458b
jne 0x5c3e95
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 8]
mov ecx, eax
mov edx, eax
shr ecx, 5
shl edx, 4
loop 0x5c3e9b
xor ecx, edx
mov edx, edi
shr edx, 0xb
and edx, 3
mov ebx, dword [esi + edx*4]
mov edx, edi
add ecx, ebx
xor edx, eax
mov eax, dword [ebp - 4]
add ecx, edx
sub eax, ecx
mov dword [ebp - 4], eax
lea ebx, [ebx + 0x3950]
sub ebx, 0x3950
xor esi, dword [esp + 8]
xor esi, dword [esp + 8]
jo 0x5c3eca
jb 0x5c3ed2
mov ecx, ecx
jae 0x5c3ed2
mov edi, 0x47c78162
xchg al, cl
popal
add edi, 0x61c88647
mov dword [ebp + 0x10], edi
ror esi, 0xc
ror esi, 0x14
test ecx, ebx
xchg edx, eax
xchg edx, eax
jle 0x5c3ef9
pushf
mov edi, edi
xor esp, 0
popf
jns 0x5c3ef2
jnp 0x5c3ef4
jae 0x5c3ef6
jg 0x5c3ef9
mov ecx, 0x8bfc458b
jge 0x5c3f07
mov eax, dword [ebp - 4]
mov edi, dword [ebp + 8]
mov edx, eax
mov ecx, eax
shr edx, 5
shl ecx, 4
loope 0x5c3f0d
xor edx, ecx
mov ecx, dword [ebp + 0x10]
mov esi, ecx
and esi, 3
adc byte [ebx + 0x3e683f1], cl
mov ebx, dword [edi + esi*4]
mov esi, ecx
add edx, ebx
xor esi, eax
add edx, esi
mov esi, dword [ebp - 8]
sub esi, edx
test ecx, ecx
mov dword [ebp - 8], esi
jne 0x5c3e65
neg ebx
neg ebx
std
cld
jo 0x5c3f4a
pushf
jb 0x5c3f3a
popf
xchg edx, ecx
xchg edx, ecx
lea esp, [esp]
xchg edx, edi
xchg edx, edi
jno 0x5c3f4a
sub eax, 0x8b0c458b
push ebp
clc
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 8]
mov dword [eax], edx
rol ecx, 0x11
rol ecx, 0xf
jae 0x5c3f6f
lea esi, [esi + 0x51b8]
lea esi, [esi - 0x51b8]
jns 0x5c3f68
jnp 0x5c3f6a
mov esp, esp
jb 0x5c3f6f
mov esp, 0x5ffc4d8b
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov dword [eax + 4], ecx
pop ebx
mov esp, ebp
pop ebp
ret