Function at 0x48d140
Capabilities:
Encode data using xor
Encrypt data using tea

Disassembly:
sub esp, 0xc0
mov eax, dword [0x61ad68]
xor eax, esp
mov dword [esp + 0xbc], eax
push ebx
push esi
mov esi, dword [esp + 0xcc]
lea eax, [esp + 0x40]
push edi
mov edi, dword [esp + 0xd4]
push 0x81
push 0
push eax
mov dword [esp + 0x3c], edi
call fcn.004f3d73
mov ebx, esi
add esp, 0xc
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x48d182
sub ebx, ecx
mov dword [esp + 0x2c], ebx
test esi, esi
je 0x48d3ee
test edi, edi
je 0x48d3ee
cmp dword [esp + 0xd8], 0x90
jl 0x48d3ee
mov eax, ebx
and eax, 0x80000007
jns 0x48d1c0
dec eax
or eax, 0xfffffff8
add eax, 1
jne 0x48d3ee
push ebp
push ebx
call fcn.004f3daf
push ebx
push esi
push eax
mov dword [esp + 0x28], eax
call fcn.004f3d6d
mov edi, ebx
mov dword [esp + 0x48], 0xb979389e
shr edi, 2
mov dword [esp + 0x3c], edi
mov dword [esp + 0x4c], 0xe973989b
mov dword [esp + 0x50], 0x9e3879b9
lea esi, [edi*4]
mov dword [esp + 0x54], 0x5951696b
push esi
call fcn.004f3daf
push esi
push dword [esp + 0x30]
mov ebp, eax
push ebp
mov dword [esp + 0x34], ebp
call fcn.004f3d6d
mov eax, dword [esi + ebp - 4]
xor edx, edx
mov dword [esp + 0x30], eax
add esp, 0x18
mov eax, 0x34
xor ebp, ebp
div edi
add eax, 6
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x524e60]
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call fcn.004f3dbb
add esp, 8
fstp qword [esp + 0x20]
movsd xmm0, qword [esp + 0x20]
call fcn.004f2f31
test eax, eax
je 0x48d313
nop dword [eax]
dec eax
sub ebp, 0x61c88647
mov dword [esp + 0x20], eax
mov eax, ebp
shr eax, 2
mov dword [esp + 0x1c], ebp
and eax, 3
xor ebp, ebp
mov dword [esp + 0x28], eax
test edi, edi
je 0x48d2ff
lea ebx, [ebp + 1]
xor edx, edx
mov eax, ebx
div edi
mov eax, dword [esp + 0x14]
lea edi, [eax + ebp*4]
and ebp, 3
xor ebp, dword [esp + 0x28]
mov edx, dword [eax + edx*4]
mov ecx, edx
mov eax, dword [esp + 0x10]
shr eax, 5
shr ecx, 3
lea esi, [edx*4]
xor esi, eax
mov eax, dword [esp + 0x10]
shl eax, 4
xor ecx, eax
mov eax, dword [esp + 0x1c]
add esi, ecx
xor eax, edx
mov ecx, dword [esp + ebp*4 + 0x38]
mov ebp, ebx
xor ecx, dword [esp + 0x10]
add ecx, eax
xor esi, ecx
add dword [edi], esi
mov esi, dword [edi]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], esi
cmp ebp, edi
jb 0x48d2a1
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
test eax, eax
jne 0x48d280
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x14]
xor esi, esi
test edi, edi
je 0x48d349
mov edx, dword [esp + 0x18]
add edx, 2
mov ecx, dword [ebp + esi*4]
lea edx, [edx + 4]
mov eax, ecx
mov byte [edx - 6], cl
shr eax, 8
inc esi
mov byte [edx - 5], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [edx - 4], al
mov byte [edx - 3], cl
cmp esi, edi
jb 0x48d324
push ebp
call fcn.004f3da9
mov ebp, dword [esp + 0x1c]
lea edx, [esp + 0x4c]
add esp, 4
mov esi, ebp
test ebx, ebx
je 0x48d397
mov al, byte [esi]
mov cl, al
shr cl, 4
cmp cl, 0xa
jb 0x48d371
add cl, 0x37
jmp 0x48d379
cmp cl, 9
ja 0x48d379
add cl, 0x30
and al, 0xf
mov byte [edx], cl
cmp al, 0xa
jb 0x48d385
add al, 0x37
jmp 0x48d38b
cmp al, 9
ja 0x48d38b
add al, 0x30
mov byte [edx + 1], al
inc esi
add edx, 2
sub ebx, 1
jne 0x48d360
push ebp
mov byte [edx], 0
call fcn.004f3da9
mov ecx, dword [esp + 0x38]
lea esi, [esp + 0x4c]
movq xmm0, qword [str.1STFLIPBINMC]
add esp, 4
movq qword [ecx], xmm0
lea edi, [ecx + 0x10]
mov eax, dword [0x524e4c]
mov dword [ecx + 8], eax
mov eax, 0x90
mov dword [ecx + 0xc], 1
mov ecx, 0x20
pop ebp
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xbc]
xor ecx, esp
call fcn.004f2d08
add esp, 0xc0
ret
mov ecx, dword [esp + 0xc8]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004f2d08
add esp, 0xc0
ret