Function at 0x180047470
Capabilities:
Decrypt data using tea

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x58
mov dword [rsp + 0x1c], 0x9e3779b9
mov dword [rsp + 0xc], 0x20
mov rax, qword [rsp + 0x60]
mov eax, dword [rax]
mov dword [rsp + 8], eax
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 4]
mov dword [rsp + 0x10], eax
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 8]
mov dword [rsp + 0x18], eax
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0xc]
mov dword [rsp + 0x14], eax
mov eax, dword [rsp + 0x70]
and eax, 0xfffffff8
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x68]
mov qword [rsp], rax
mov eax, dword [rsp + 0x70]
xor edx, edx
mov ecx, 4
div rcx
mov rcx, qword [rsp]
lea rax, [rcx + rax*4]
mov qword [rsp + 0x20], rax
cmp dword [rsp + 0x78], 0
jle 0x18004761a
mov rax, qword [rsp + 0x20]
cmp qword [rsp], rax
jae 0x180047615
mov rax, qword [rsp]
mov eax, dword [rax]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp]
mov eax, dword [rax + 4]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x2c], 0x20
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x2c]
dec ecx
mov dword [rsp + 0x2c], ecx
test eax, eax
jbe 0x1800475cd
mov eax, dword [rsp + 0x34]
add eax, 0x9e3779b9
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x38]
shl eax, 4
add eax, dword [rsp + 8]
mov ecx, dword [rsp + 0x34]
mov edx, dword [rsp + 0x38]
add edx, ecx
mov ecx, edx
xor eax, ecx
mov ecx, dword [rsp + 0x38]
shr ecx, 5
add ecx, dword [rsp + 0x10]
xor eax, ecx
mov ecx, dword [rsp + 0x28]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x28]
shl eax, 4
add eax, dword [rsp + 0x18]
mov ecx, dword [rsp + 0x34]
mov edx, dword [rsp + 0x28]
add edx, ecx
mov ecx, edx
xor eax, ecx
mov ecx, dword [rsp + 0x28]
shr ecx, 5
add ecx, dword [rsp + 0x14]
xor eax, ecx
mov ecx, dword [rsp + 0x38]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x38], eax
jmp 0x180047545
mov rax, qword [rsp]
mov ecx, dword [rsp + 0x28]
mov dword [rax], ecx
mov rax, qword [rsp]
add rax, 4
mov qword [rsp], rax
mov rax, qword [rsp]
mov ecx, dword [rsp + 0x38]
mov dword [rax], ecx
mov rax, qword [rsp]
add rax, 4
mov qword [rsp], rax
cmp dword [rsp + 0x78], 1
jle 0x180047610
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x10], eax
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x14], eax
jmp 0x180047501
jmp 0x18004771e
mov rax, qword [rsp + 0x20]
cmp qword [rsp], rax
jae 0x18004771e
mov rax, qword [rsp]
mov eax, dword [rax]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp]
mov eax, dword [rax + 4]
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x48], 0xc6ef3720
mov dword [rsp + 0x44], 0x20
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x44]
dec ecx
mov dword [rsp + 0x44], ecx
test eax, eax
jbe 0x1800476d6
mov eax, dword [rsp + 0x40]
shl eax, 4
add eax, dword [rsp + 0x18]
mov ecx, dword [rsp + 0x48]
mov edx, dword [rsp + 0x40]
add edx, ecx
mov ecx, edx
xor eax, ecx
mov ecx, dword [rsp + 0x40]
shr ecx, 5
add ecx, dword [rsp + 0x14]
xor eax, ecx
mov ecx, dword [rsp + 0x4c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x4c]
shl eax, 4
add eax, dword [rsp + 8]
mov ecx, dword [rsp + 0x48]
mov edx, dword [rsp + 0x4c]
add edx, ecx
mov ecx, edx
xor eax, ecx
mov ecx, dword [rsp + 0x4c]
shr ecx, 5
add ecx, dword [rsp + 0x10]
xor eax, ecx
mov ecx, dword [rsp + 0x40]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x48]
sub eax, 0x9e3779b9
mov dword [rsp + 0x48], eax
jmp 0x18004764e
mov rax, qword [rsp]
mov ecx, dword [rsp + 0x40]
mov dword [rax], ecx
mov rax, qword [rsp]
add rax, 4
mov qword [rsp], rax
mov rax, qword [rsp]
mov ecx, dword [rsp + 0x4c]
mov dword [rax], ecx
mov rax, qword [rsp]
add rax, 4
mov qword [rsp], rax
cmp dword [rsp + 0x78], 0
jge 0x180047719
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x10], eax
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x14], eax
jmp 0x18004761a
add rsp, 0x58
ret