Function at 0x6d5750
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
push ebx
push ebp
mov ebp, dword [esp + 0x24]
push esi
mov esi, dword [esp + 0x24]
push edi
push eax
push ecx
push edx
push ebp
push esi
call fcn.00643e50
fild dword [esp + 0x50]
mov eax, dword [0x91cfa8]
mov ecx, dword [eax + 0x4c]
mov edi, dword [esp + 0x54]
fstp dword [esp + 0x50]
mov edx, dword [esp + 0x50]
push ecx
push edi
push edx
push ebp
push esi
call fcn.00691a30
mov ebx, eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
fsqrt
call fcn.0043bd30
test ebx, ebx
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
mov eax, dword [0x91cfa8]
mov dword [esp + 0x60], ebx
fmul dword [eax + 0x48]
fmul dword [0x871154]
fild dword [esp + 0x60]
jge 0x6d57ef
fadd dword [0x87079c]
fdivp st(1)
call fcn.0043bd30
mov ebx, eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
mov ecx, dword [0x91cfa4]
mov dword [ecx + 0x3f8], ebx
mov edx, dword [0x91cfa4]
mov word [edx + 0x406], ax
xor ecx, ecx
mov cx, word [esi + 0xea]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x78]
add esp, 0x48
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x50
jb 0x6d5872
movzx eax, bp
sub eax, 0x11b
je 0x6d5872
sub eax, 2
jne 0x6d637f
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x60]
xor ecx, ecx
mov cx, word [esi + 0xec]
push eax
push ecx
call fcn.006442a0
movzx ecx, byte [esi + 0x124]
add esp, 8
cmp ax, 0x40
lea eax, [ecx + ecx*2]
mov ebx, 0x1900
jae 0x6d58ab
mov ebx, 0x1d00
movzx edx, word [esi + 0x2dc]
shl eax, 2
sub ebx, eax
cmp edx, 0x131
mov dword [esp + 0x28], ebx
je 0x6d58d5
cmp edx, 0x1e6
je 0x6d58d5
mov dword [esp + 0x1c], 0x20
jmp 0x6d58ef
xor edx, edx
cmp dword [esi + 0xe0], 0x800
setge dl
dec edx
and edx, 0x14
add edx, 0x20
mov dword [esp + 0x1c], edx
movzx edx, bp
mov dword [esp + 0x14], edx
add edx, 0xfffffd44
cmp edx, 0x83
ja case.0x6d590f.704
movzx edx, byte [edx + 0x6d63d0]
jmp dword [edx*4 + 0x6d6398]
mov eax, 0x240
sub eax, ecx
lea eax, [eax + eax*2]
shl eax, 2
mov dword [esp + 0x28], eax
jmp case.0x6d590f.704
mov ecx, 0x1d00
sub ecx, eax
mov dword [esp + 0x28], ecx
jmp case.0x6d590f.704
mov ecx, 0x1f00
sub ecx, eax
mov dword [esp + 0x28], ecx
jmp case.0x6d590f.704
mov ecx, 0x1100
jmp 0x6d5a37
mov edx, dword [esp + 0x30]
xor eax, eax
mov ax, word [esi + 0xec]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x40
jae 0x6d637f
movzx eax, byte [esi + 0x124]
lea ecx, [eax + eax*2]
shl ecx, 2
mov edx, 0x1100
sub edx, ecx
push edx
push ebx
call fcn.00648620
add esp, 8
mov dword [esp + 0x28], eax
jmp case.0x6d590f.704
xor eax, eax
mov ax, word [esi + 0xec]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
movzx eax, byte [esi + 0x124]
ja 0x6d597e
lea edx, [eax + eax*2]
shl edx, 2
mov eax, 0x1900
sub eax, edx
push eax
push ebx
call fcn.00648620
add esp, 8
mov dword [esp + 0x28], eax
jmp case.0x6d590f.704
mov ecx, 0x1300
jmp 0x6d5a37
mov edx, 0x1900
sub edx, eax
cmp dword [esi + 0xe0], edx
jle 0x6d5a25
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jbe 0x6d637f
movzx eax, byte [esi + 0x124]
lea eax, [eax + eax*2]
shl eax, 2
mov ecx, 0x1900
sub ecx, eax
push ecx
push ebx
call fcn.00648620
add esp, 8
mov dword [esp + 0x28], eax
jmp case.0x6d590f.704
mov eax, 0x180
sub eax, ecx
lea edx, [eax + eax*2]
shl edx, 2
push edx
push ebx
call fcn.00648620
add esp, 8
mov dword [esp + 0x28], eax
jmp case.0x6d590f.704
mov eax, 0x1c0
sub eax, ecx
lea eax, [eax + eax*2]
shl eax, 2
push eax
push ebx
call fcn.00648620
add esp, 8
mov dword [esp + 0x28], eax
jmp case.0x6d590f.704
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [edx + 0xf]
jne 0x6d5aa7
mov eax, dword [esi + 0xe0]
add eax, 0x200
mov dword [esp + 0x28], eax
jmp case.0x6d590f.704
mov ecx, dword [esi + 0x120]
imul ecx, ecx, 0x6e
jmp 0x6d5ad9
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [edx + 0xf]
jne 0x6d5ad0
mov eax, dword [esi + 0xe0]
add eax, 0x200
mov dword [esp + 0x28], eax
jmp case.0x6d590f.704
mov ecx, dword [esi + 0x120]
imul ecx, ecx, 0x5f
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
push ecx
push edx
push eax
push ebp
push esi
call fcn.00643e50
mov ecx, dword [0x91cfa8]
mov edx, dword [ecx + 0x4c]
mov eax, dword [esp + 0x50]
push edx
push edi
push eax
push ebp
push esi
call fcn.00691a30
mov ebx, eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb34]
mov edx, dword [eax + edi*4 + 0x434]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.00644340
add esp, 0x38
test ebx, ebx
mov dword [esp + 0x3c], ebx
fild dword [esp + 0x3c]
jge 0x6d5b59
fadd dword [0x87079c]
fstp dword [esp + 0x18]
fsqrt
call fcn.0043bd30
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
mov eax, dword [0x91cfa8]
fmul dword [eax + 0x48]
fmul dword [0x871154]
fdiv dword [esp + 0x18]
call fcn.0043bd30
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x48], 2
je 0x6d5b9c
mov ecx, dword [esp + 0x3c]
cmp ecx, dword [esp + 0x28]
jg 0x6d637f
mov edx, dword [esp + 0x40]
xor eax, eax
mov ax, word [esi + 0xec]
push edx
push eax
call fcn.006442a0
add esp, 8
mov ebx, eax
movzx eax, byte [esi + 0xda]
add eax, 0xfffffffc
cmp eax, 0x3d
ja case.0x6d5bcb.7
movzx ecx, byte [eax + 0x6d645c]
jmp dword [ecx*4 + 0x6d6454]
mov eax, 0xc00
jmp 0x6d5c01
mov eax, dword [esp + 0x14]
add eax, 0xfffffd3b
cmp eax, 0x1c
ja case.0x6d5bee.710
movzx edx, byte [eax + 0x6d64a8]
jmp dword [edx*4 + 0x6d649c]
mov eax, 0xa00
jmp 0x6d5c01
mov eax, 0x800
mov ecx, dword [esp + 0x3c]
lea edx, [eax + ecx]
mov eax, dword [esp + 0x34]
cmp edx, eax
jge 0x6d5c56
cmp bx, 0x30
ja 0x6d5c45
mov eax, dword [esp + 0x14]
sub eax, 0x2d9
je 0x6d5c2b
sub eax, 5
je 0x6d5c2b
sub eax, 3
jne 0x6d5c45
cmp word [esi + 0x100], 0
jne 0x6d5c45
mov word [esi + 0x100], 2
mov byte [esi + 0x104], 4
pop edi
mov byte [esi + 0x106], 2
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
cmp dword [esp + 0x48], 2
je 0x6d5c72
add eax, 0xc00
cmp ecx, eax
jle 0x6d5c72
cmp ecx, 0x1000
jg 0x6d637f
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
push edx
call fcn.006442a0
add esp, 8
mov dword [esp + 0x20], eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb38]
mov edx, dword [eax + edi*4 + 0x438]
mov eax, dword [0x91cfa4]
fld dword [eax + 0x40]
push ecx
fadd dword [esi + 0x2d8]
push edx
sub esp, 8
fstp dword [esp + 4]
fld dword [eax + 0x38]
fadd dword [esi + 0x2d0]
fstp dword [esp]
call fcn.00644340
fsqrt
add esp, 0x10
call fcn.0043bd30
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov eax, dword [0x91cfa8]
fmul dword [eax + 0x48]
fmul dword [0x871154]
fdiv dword [esp + 0x18]
call fcn.0043bd30
mov ebp, eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb38]
mov edx, dword [eax + edi*4 + 0x438]
mov eax, dword [0x91cfa4]
fld dword [eax + 0x40]
push ecx
fadd dword [esi + 0x2d8]
push edx
sub esp, 8
mov dword [esp + 0x28], ebp
fstp dword [esp + 4]
fld dword [eax + 0x38]
fadd dword [esi + 0x2d0]
fstp dword [esp]
call fcn.006442f0
xor ecx, ecx
mov cx, word [esi + 0xec]
push ecx
push eax
call fcn.006442a0
push esi
mov edi, eax
mov dword [esp + 0x2c], edi
call fcn.006cdf20
add esp, 0x1c
test eax, eax
je 0x6d5da5
mov ecx, dword [esp + 0x14]
lea eax, [ecx - 0x306]
cmp eax, 0x11
ja case.0x6d5d72.776
movzx edx, byte [eax + 0x6d64d0]
jmp dword [edx*4 + 0x6d64c8]
cmp bx, 0x30
jae 0x6d637f
mov eax, dword [esp + 0x3c]
add ebp, 0x20
cmp eax, ebp
jg 0x6d637f
pop edi
pop esi
xor eax, eax
cmp ecx, 0x306
pop ebp
setne al
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x14]
cmp eax, 0x2f2
jg 0x6d5e8f
cmp eax, 0x2f0
jge case.0x6d5ea4.819
cmp eax, 0x2da
jg 0x6d5e73
cmp eax, 0x2d9
jge case.0x6d5e88.734
cmp eax, 0x116
jg 0x6d5e2a
je case.0x6d5df3.275
sub eax, 0x6a
cmp eax, 0xa9
ja case.0x6d5ea4.773
movzx eax, byte [eax + 0x6d64f4]
jmp dword [eax*4 + 0x6d64e4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jae 0x6d637f
cmp bx, 0x20
jb case.0x6d5ea4.773
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
sub eax, 0x2be
cmp eax, 0x1a
ja case.0x6d5ea4.773
movzx eax, byte [eax + 0x6d65ac]
jmp dword [eax*4 + 0x6d65a0]
mov eax, dword [esp + 0x3c]
cmp eax, 0x800
jle case.0x6d5ea4.773
mov ecx, dword [esi + 0xe0]
add ecx, 0x400
cmp eax, ecx
jle case.0x6d5ea4.773
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
sub eax, 0x2db
cmp eax, 0x14
ja case.0x6d5ea4.773
movzx edx, byte [eax + 0x6d65d4]
jmp dword [edx*4 + 0x6d65c8]
sub eax, 0x304
cmp eax, 0x39
ja case.0x6d5ea4.773
movzx eax, byte [eax + 0x6d6608]
jmp dword [eax*4 + 0x6d65ec]
cmp bx, 0x10
jb 0x6d5efb
mov ebp, dword [esp + 0x3c]
cmp ebp, 0x800
jle 0x6d5efb
mov ecx, dword [esi + 0xe0]
lea edx, [ecx + ecx*8]
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp ebp, edx
jg 0x6d637f
movzx eax, byte [esi + 0x124]
lea edx, [eax + eax*2]
shl edx, 2
mov eax, 0x1100
sub eax, edx
cmp ecx, eax
jg 0x6d637f
movzx eax, byte [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0xe0]
shl ecx, 2
mov edx, 0x1900
sub edx, ecx
cmp eax, edx
jle case.0x6d5ea4.773
cmp bx, 0x10
jb case.0x6d5ea4.773
mov eax, dword [0x91d3f0]
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov cx, word [eax + 0x60]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja case.0x6d5ea4.773
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
cmp dword [esi + 0xe0], 0xf00
jle 0x6d5f7c
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jae 0x6d637f
cmp bx, 0x20
jae 0x6d637f
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x800
jg 0x6d5f9e
cmp dword [esi + 0xe0], 0x800
jle 0x6d5fa8
cmp bx, 0x20
jae 0x6d637f
movzx eax, byte [esi + 0x124]
lea edx, [eax + eax*2]
shl edx, 2
mov eax, 0x1300
sub eax, edx
cmp ecx, eax
jg 0x6d5fcc
cmp dword [esi + 0xe0], eax
jle case.0x6d5ea4.773
cmp bx, 0x14
jb case.0x6d5ea4.773
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
push eax
push ecx
call fcn.006442a0
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
cmp bx, 0x10
jae 0x6d637f
cmp bx, di
jbe case.0x6d5ea4.773
cmp bx, 8
jb case.0x6d5ea4.773
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x40]
xor edx, edx
mov dx, word [esi + 0xea]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jae 0x6d637f
cmp bx, 0x10
jb case.0x6d5ea4.773
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x3c]
cmp eax, dword [esi + 0xe0]
jle 0x6d6063
cmp eax, 0x800
jg 0x6d637f
cmp bx, 0x20
jae 0x6d637f
movzx ecx, byte [esi + 0x124]
mov eax, 0x1c0
sub eax, ecx
lea edx, [eax + eax*2]
mov eax, dword [esi + 0xe0]
shl edx, 2
cmp eax, edx
jge 0x6d60dd
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
xor edx, edx
mov dx, word [esi + 0xec]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jb 0x6d60dd
cmp bx, di
jae 0x6d60dd
mov eax, dword [0x91d3f0]
mov edx, dword [esp + 0x40]
xor ecx, ecx
mov cx, word [eax + 0x60]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x40
ja 0x6d60dd
cmp bx, 0x40
jbe case.0x6d6333.774
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x3c]
test eax, eax
jg 0x6d60eb
neg eax
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
mov ebp, eax
mov eax, ecx
sub eax, edi
test eax, eax
jg 0x6d60ff
neg eax
mov edi, eax
mov eax, dword [esp + 0x48]
cmp eax, 2
jne 0x6d6116
xor edi, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], ecx
xor ebp, ebp
mov ecx, dword [esi + 0xe0]
cmp ecx, 0x800
jge 0x6d6136
cmp bx, word [esp + 0x1c]
ja 0x6d6136
lea edx, [edi + 0x20]
cmp ebp, edx
jl case.0x6d6333.774
cmp word [esp + 0x10], 0x10
jae 0x6d617d
test eax, eax
je 0x6d617d
mov al, byte [esi + 0x133]
test al, al
jne 0x6d617d
movzx eax, byte [esi + 0x124]
lea eax, [eax + eax*2]
shl eax, 2
mov edx, 0x1700
sub edx, eax
cmp ecx, edx
jle 0x6d617d
cmp bx, word [esp + 0x10]
jbe 0x6d617d
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], eax
jge 0x6d617d
cmp ebp, edi
jg 0x6d623c
cmp bx, 0x50
ja 0x6d61a5
cmp ecx, 0xc00
jge 0x6d61a5
cmp ecx, 0x800
jl 0x6d619a
cmp bx, word [esp + 0x10]
ja 0x6d61a5
lea edx, [edi + 0x20]
cmp ebp, edx
jl case.0x6d6333.774
movzx edx, byte [esi + 0x124]
mov eax, 0x1c0
sub eax, edx
lea eax, [eax + eax*2]
shl eax, 2
cmp ecx, eax
jle 0x6d61ce
cmp bx, 0x10
ja 0x6d61ce
cmp bx, word [esp + 0x10]
jbe case.0x6d6333.774
mov ecx, dword [0x91d3f0]
mov eax, dword [esp + 0x40]
xor edx, edx
mov dx, word [ecx + 0x60]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x60
ja 0x6d6207
cmp bx, 4
ja 0x6d6207
movzx ecx, word [esp + 0x10]
movzx edx, bx
add ecx, 2
cmp edx, ecx
jle case.0x6d6333.774
cmp bx, 0x20
jae 0x6d6219
cmp edi, 0xa00
jge case.0x6d6333.774
mov eax, dword [0x91d3f0]
mov edx, dword [esp + 0x40]
xor ecx, ecx
mov cx, word [eax + 0x60]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x70
jb 0x6d624d
cmp ebp, edi
jle 0x6d624d
pop edi
mov byte [esi + 0x106], 4
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
movzx eax, byte [esi + 0x124]
lea eax, [eax + eax*2]
shl eax, 2
mov ecx, 0x1900
sub ecx, eax
cmp dword [esi + 0xe0], ecx
jle 0x6d627a
cmp bx, 2
jbe 0x6d627a
cmp bx, word [esp + 0x10]
ja 0x6d637f
mov eax, dword [esp + 0x20]
shr ax, 3
cmp bx, ax
jbe case.0x6d6333.774
cmp bx, 8
jbe case.0x6d6333.774
mov ecx, dword [esp + 0x14]
mov eax, ecx
cmp eax, 0x108
jg 0x6d62bc
je case.0x6d62b5.232
sub eax, 0xe8
cmp eax, 0x14
ja case.0x6d62b5.233
movzx edx, byte [eax + 0x6d664c]
jmp dword [edx*4 + 0x6d6644]
cmp eax, 0x115
jg 0x6d62d3
je case.0x6d62b5.232
sub eax, 0x110
je case.0x6d62b5.232
sub eax, 3
je case.0x6d62b5.232
jmp case.0x6d62b5.233
cmp eax, 0x328
jne case.0x6d62b5.233
cmp bx, 0x28
ja case.0x6d62b5.233
cmp bx, word [esp + 0x10]
jbe case.0x6d6333.774
cmp bx, 0x20
ja 0x6d631b
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x28]
jge case.0x6d6333.774
mov edx, dword [esp + 0x34]
add edx, 0x800
cmp eax, edx
jle 0x6d6314
cmp eax, 0x1000
jg case.0x6d6333.774
cmp bx, word [esp + 0x10]
jb case.0x6d6333.774
cmp bx, 0x10
ja case.0x6d6333.778
lea eax, [ecx - 0x306]
cmp eax, 0x11
ja case.0x6d6333.778
movzx eax, byte [eax + 0x6d666c]
jmp dword [eax*4 + 0x6d6664]
cmp bx, 0x30
ja 0x6d637f
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
add edx, 0x400
cmp edx, eax
jge 0x6d637f
mov eax, ecx
sub eax, 0x2d9
je 0x6d6365
sub eax, 5
je 0x6d6365
sub eax, 3
jne 0x6d637f
cmp word [esi + 0x100], 0
jne 0x6d637f
mov word [esi + 0x100], 2
mov byte [esi + 0x104], 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x14
ret