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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x460297
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1ac
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x108]
mov ecx, dword [eax + 4]
lea esi, [edi + 0x104]
push ecx
mov ecx, esi
mov dword [esp + 0x24], edi
call fcn.0040d460
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
xor ebx, ebx
mov dword [esi + 8], ebx
mov dword [eax], eax
mov eax, dword [esi + 4]
mov dword [eax + 8], eax
mov eax, dword [edi + 0x24]
mov ecx, dword [edi + 0x28]
cmp eax, ecx
mov ebp, 0x10
je 0x42dbe1
add eax, 0x20
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
mov esi, dword [eax]
cmp esi, eax
mov dword [esp + 0x1c], esi
je 0x42dbc8
mov byte [esp + 0x14], 0x5c
jmp 0x42d580
push 0xffffffffffffffff
lea eax, [esi + 8]
push ebx
push eax
lea ecx, [esp + 0x50]
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], ebx
mov byte [esp + 0x54], bl
call fcn.004022a0
cmp dword [edi + 0xc8], ebp
mov dword [esp + 0x1c4], ebx
jb 0x42d5b7
mov eax, dword [edi + 0xb4]
jmp 0x42d5bd
lea eax, [edi + 0xb4]
push eax
push 0x465d68
lea ecx, [esp + 0x4c]
call fcn.0040c830
cmp dword [edi + 0xc8], ebp
jb 0x42d5dc
mov eax, dword [edi + 0xb4]
jmp 0x42d5e2
lea eax, [edi + 0xb4]
push eax
push 0x465d64
lea ecx, [esp + 0x4c]
call fcn.0040c830
push 1
push 0xffffffffffffffff
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x50]
call fcn.0040b0b0
cmp eax, 0xffffffff
mov dword [esp + 0x40], eax
je 0x42d611
cmp eax, 0xffffffff
jne 0x42d63c
cmp dword [esp + 0x5c], ebp
mov dword [esp + 0x1c4], 0xffffffff
jb 0x42d62f
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0044b92d
add esp, 4
mov dword [esp + 0x5c], 0xf
jmp 0x42dbae
mov esi, 0xf
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
mov edx, dword [esp + 0x40]
inc edx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1cc], 1
call fcn.00405900
mov edi, eax
mov ebp, dword [esp + 0x94]
cmp ebp, 0x10
mov ecx, dword [esp + 0x80]
mov byte [esp + 0x1c4], 2
jae 0x42d6a2
lea ecx, [esp + 0x80]
cmp dword [edi + 0x18], 0x10
jb 0x42d6ad
mov eax, dword [edi + 4]
jmp 0x42d6b0
lea eax, [edi + 4]
cmp ecx, eax
je 0x42d73e
mov eax, dword [esp + 0x90]
or esi, 0xffffffff
cmp eax, 0xffffffff
jae 0x42d6cd
mov esi, eax
cmp esi, ebx
jbe 0x42d722
cmp ebp, 0x10
mov edx, dword [esp + 0x80]
jae 0x42d82d
lea edx, [esp + 0x80]
mov ecx, edx
sub eax, esi
push eax
add edx, esi
push edx
push ecx
call fcn.0044b5f0
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
sub eax, esi
add esp, 0xc
cmp ecx, 0x10
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x90], eax
jae 0x42d71f
lea ecx, [esp + 0x80]
mov byte [ecx + eax], bl
push 0xffffffffffffffff
push ebx
push edi
lea ecx, [esp + 0x88]
call fcn.004022a0
mov ebp, dword [esp + 0x94]
mov esi, 0xf
cmp dword [esp + 0x3c], 0x10
mov byte [esp + 0x1c4], 1
jb 0x42d761
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0044b92d
mov ebp, dword [esp + 0x98]
add esp, 4
mov eax, dword [esp + 0x90]
cmp eax, ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
je 0x42d7a5
cmp ebp, 0x10
mov esi, dword [esp + 0x80]
jae 0x42d78b
lea esi, [esp + 0x80]
xor ecx, ecx
mov edi, 0x462398
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x42d79d
sbb edx, edx
sbb edx, 0xffffffff
cmp edx, ebx
jne 0x42d839
xor edx, edx
cmp eax, ebx
setne dl
cmp edx, ebx
jne 0x42d839
mov edi, 0x10
cmp ebp, edi
jb 0x42d7cd
mov edx, dword [esp + 0x80]
push edx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x78], edi
mov esi, 0xf
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
jb 0x42d7fa
mov eax, dword [esp + 0x64]
push eax
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x5c], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
mov dword [esp + 0x1c4], 0xffffffff
jb 0x42d824
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0044b92d
add esp, 4
mov dword [esp + 0x5c], esi
jmp 0x42dba1
mov ecx, dword [esp + 0x80]
jmp 0x42d6e6
mov edx, dword [esp + 0x40]
push edx
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x4c]
call fcn.00405870
mov esi, eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x48]
mov ebp, 0x10
cmp eax, ebp
mov byte [esp + 0x1c4], 3
jae 0x42d86e
lea ecx, [esp + 0x48]
cmp dword [esi + 0x18], ebp
jb 0x42d878
mov eax, dword [esi + 4]
jmp 0x42d87b
lea eax, [esi + 4]
cmp ecx, eax
je 0x42d898
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x4c]
call fcn.00401cd0
push 0xffffffffffffffff
push ebx
push esi
lea ecx, [esp + 0x50]
call fcn.004022a0
cmp dword [esp + 0x104], ebp
mov byte [esp + 0x1c4], 1
jb 0x42d8b9
mov ecx, dword [esp + 0xf0]
push ecx
call fcn.0044b92d
add esp, 4
mov edi, 0xf
lea ecx, [esp + 0x44]
mov dword [esp + 0x104], edi
mov dword [esp + 0x100], ebx
mov byte [esp + 0xf0], bl
call fcn.0040c6f0
cmp dword [esp + 0x78], ebp
mov ecx, dword [esp + 0x64]
jae 0x42d8ea
lea ecx, [esp + 0x64]
mov esi, dword [esp + 0x18]
cmp dword [esi - 8], ebp
jb 0x42d8f8
mov eax, dword [esi - 0x1c]
jmp 0x42d8fb
lea eax, [esi - 0x1c]
cmp ecx, eax
je 0x42d91b
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x68]
call fcn.00401cd0
push 0xffffffffffffffff
push ebx
add esi, 0xffffffe0
push esi
lea ecx, [esp + 0x6c]
call fcn.004022a0
mov esi, dword [esp + 0x20]
cmp dword [esi + 0xc8], ebp
jb 0x42d92f
mov eax, dword [esi + 0xb4]
jmp 0x42d935
lea eax, [esi + 0xb4]
push eax
push 0x465d68
lea ecx, [esp + 0x68]
call fcn.0040c830
cmp dword [esi + 0xc8], ebp
jb 0x42d954
mov eax, dword [esi + 0xb4]
jmp 0x42d95a
lea eax, [esi + 0xb4]
push eax
push 0x465d64
lea ecx, [esp + 0x68]
call fcn.0040c830
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0xa4]
mov dword [esp + 0xbc], edi
mov dword [esp + 0xb8], ebx
mov byte [esp + 0xa8], bl
call fcn.004022a0
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0x1c8], 4
call fcn.004289a0
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0x114]
mov byte [esp + 0x1d0], 5
mov dword [esp + 0x12c], edi
mov dword [esp + 0x128], ebx
mov byte [esp + 0x118], bl
call fcn.004022a0
lea edx, [esp + 0xb4]
push edx
lea ecx, [esp + 0x128]
mov byte [esp + 0x1c8], 6
call fcn.004289a0
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0x160]
push ecx
lea ecx, [esi + 0x104]
mov byte [esp + 0x1cc], 7
call fcn.0042c660
cmp dword [esp + 0x158], ebp
jb 0x42da37
mov edx, dword [esp + 0x144]
push edx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x13c], ebp
mov dword [esp + 0x158], edi
mov dword [esp + 0x154], ebx
mov byte [esp + 0x144], bl
jb 0x42da65
mov eax, dword [esp + 0x128]
push eax
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x120], ebp
mov dword [esp + 0x13c], edi
mov dword [esp + 0x138], ebx
mov byte [esp + 0x128], bl
jb 0x42da93
mov ecx, dword [esp + 0x10c]
push ecx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0xe8], ebp
mov dword [esp + 0x120], edi
mov dword [esp + 0x11c], ebx
mov byte [esp + 0x10c], bl
jb 0x42dac1
mov edx, dword [esp + 0xd4]
push edx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0xcc], ebp
mov dword [esp + 0xe8], edi
mov dword [esp + 0xe4], ebx
mov byte [esp + 0xd4], bl
jb 0x42daef
mov eax, dword [esp + 0xb8]
push eax
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0xb0], ebp
mov dword [esp + 0xcc], edi
mov dword [esp + 0xc8], ebx
mov byte [esp + 0xb8], bl
jb 0x42db1d
mov ecx, dword [esp + 0x9c]
push ecx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x94], ebp
mov dword [esp + 0xb0], edi
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
jb 0x42db4b
mov edx, dword [esp + 0x80]
push edx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x78], ebp
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
jb 0x42db73
mov eax, dword [esp + 0x64]
push eax
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x5c], ebp
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
mov dword [esp + 0x1c4], 0xffffffff
jb 0x42db9d
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0044b92d
add esp, 4
mov dword [esp + 0x5c], edi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ebp, 0x10
mov edx, dword [esp + 0x18]
mov esi, dword [esi]
cmp esi, dword [edx]
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
mov dword [esp + 0x1c], esi
jne 0x42d580
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x28]
add ecx, 0x50
mov dword [esp + 0x18], ecx
add ecx, 0xffffffe0
cmp ecx, eax
jne 0x42d562
mov eax, dword [edi + 0xac]
cmp eax, ebx
je 0x42e1af
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x42e1af
add ecx, 0x20
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, eax
mov dword [esp + 0x1c], esi
je 0x42e190
mov byte [esp + 0x14], 0x5c
jmp 0x42dc20
push 0xffffffffffffffff
lea eax, [esi + 8]
push ebx
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
call fcn.004022a0
cmp dword [edi + 0xc8], ebp
mov dword [esp + 0x1c4], 8
jb 0x42dc5b
mov eax, dword [edi + 0xb4]
jmp 0x42dc61
lea eax, [edi + 0xb4]
push eax
push 0x465d68
lea ecx, [esp + 0x2c]
call fcn.0040c830
cmp dword [edi + 0xc8], ebp
jb 0x42dc80
mov eax, dword [edi + 0xb4]
jmp 0x42dc86
lea eax, [edi + 0xb4]
push eax
push 0x465d64
lea ecx, [esp + 0x2c]
call fcn.0040c830
push 1
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x30]
call fcn.0040b0b0
cmp eax, 0xffffffff
mov dword [esp + 0x40], eax
je 0x42dcb5
cmp eax, 0xffffffff
jne 0x42dce0
cmp dword [esp + 0x3c], ebp
mov dword [esp + 0x1c4], 0xffffffff
jb 0x42dcd3
mov edx, dword [esp + 0x28]
push edx
call fcn.0044b92d
add esp, 4
mov dword [esp + 0x3c], 0xf
jmp 0x42e176
mov esi, 0xf
mov dword [esp + 0xb0], esi
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], ebx
mov byte [esp + 0xb8], bl
mov eax, dword [esp + 0x40]
inc eax
push eax
lea ecx, [esp + 0xf0]
push ecx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1cc], 9
call fcn.00405900
mov edi, eax
mov ebp, dword [esp + 0xcc]
cmp ebp, 0x10
mov ecx, dword [esp + 0xb8]
mov byte [esp + 0x1c4], 0xa
jae 0x42dd52
lea ecx, [esp + 0xb8]
cmp dword [edi + 0x18], 0x10
jb 0x42dd5d
mov eax, dword [edi + 4]
jmp 0x42dd60
lea eax, [edi + 4]
cmp ecx, eax
je 0x42ddee
mov eax, dword [esp + 0xc8]
or esi, 0xffffffff
cmp eax, 0xffffffff
jae 0x42dd7d
mov esi, eax
cmp esi, ebx
jbe 0x42ddd2
cmp ebp, 0x10
mov edx, dword [esp + 0xb8]
jae 0x42defb
lea edx, [esp + 0xb8]
mov ecx, edx
sub eax, esi
push eax
add edx, esi
push edx
push ecx
call fcn.0044b5f0
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
sub eax, esi
add esp, 0xc
cmp ecx, 0x10
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xc8], eax
jae 0x42ddcf
lea ecx, [esp + 0xb8]
mov byte [eax + ecx], bl
push 0xffffffffffffffff
push ebx
push edi
lea ecx, [esp + 0xc0]
call fcn.004022a0
mov ebp, dword [esp + 0xcc]
mov esi, 0xf
cmp dword [esp + 0x104], 0x10
mov byte [esp + 0x1c4], 9
jb 0x42de17
mov eax, dword [esp + 0xf0]
push eax
call fcn.0044b540
mov ebp, dword [esp + 0xd0]
add esp, 4
mov eax, dword [esp + 0xc8]
cmp eax, ebx
mov dword [esp + 0x104], esi
mov dword [esp + 0x100], ebx
mov byte [esp + 0xf0], bl
je 0x42de64
cmp ebp, 0x10
mov esi, dword [esp + 0xb8]
jae 0x42de4a
lea esi, [esp + 0xb8]
xor ecx, ecx
mov edi, 0x462398
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x42de5c
sbb edx, edx
sbb edx, 0xffffffff
cmp edx, ebx
jne 0x42df07
xor edx, edx
cmp eax, ebx
setne dl
cmp edx, ebx
jne 0x42df07
mov edi, 0x10
cmp ebp, edi
jb 0x42de8c
mov ecx, dword [esp + 0xb8]
push ecx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0xb0], edi
mov esi, 0xf
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], ebx
mov byte [esp + 0xb8], bl
jb 0x42debf
mov edx, dword [esp + 0x9c]
push edx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x3c], edi
mov dword [esp + 0xb0], esi
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
mov dword [esp + 0x1c4], 0xffffffff
jb 0x42def2
mov eax, dword [esp + 0x28]
push eax
call fcn.0044b92d
add esp, 4
mov dword [esp + 0x3c], esi
jmp 0x42e169
mov ecx, dword [esp + 0xb8]
jmp 0x42dd96
mov ecx, dword [esp + 0x40]
push ecx
lea edx, [esp + 0x48]
push edx
lea ecx, [esp + 0x2c]
call fcn.00405870
mov ebp, eax
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
mov esi, 0x10
cmp edi, esi
mov byte [esp + 0x1c4], 0xb
mov edx, ecx
jae 0x42df3b
lea edx, [esp + 0x28]
cmp dword [ebp + 0x18], esi
jb 0x42df45
mov eax, dword [ebp + 4]
jmp 0x42df48
lea eax, [ebp + 4]
cmp edx, eax
je 0x42dfab
mov eax, dword [esp + 0x38]
or esi, 0xffffffff
cmp eax, 0xffffffff
jae 0x42df5e
mov esi, eax
cmp esi, ebx
jbe 0x42df99
cmp edi, 0x10
mov edx, ecx
jae 0x42df6b
lea edx, [esp + 0x28]
mov ecx, edx
sub eax, esi
push eax
lea eax, [esi + edx]
push eax
push ecx
call fcn.0044b5f0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
sub eax, esi
add esp, 0xc
cmp ecx, 0x10
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x38], eax
jae 0x42df96
lea ecx, [esp + 0x28]
mov byte [eax + ecx], bl
push 0xffffffffffffffff
push ebx
push ebp
lea ecx, [esp + 0x30]
call fcn.004022a0
mov esi, 0x10
cmp dword [esp + 0x5c], esi
mov byte [esp + 0x1c4], 9
jb 0x42dfc6
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0044b92d
add esp, 4
mov ebp, 0xf
lea ecx, [esp + 0x24]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
call fcn.0040c6f0
cmp dword [esp + 0xb0], esi
mov ecx, dword [esp + 0x9c]
jae 0x42dff7
lea ecx, [esp + 0x9c]
mov edi, dword [esp + 0x18]
cmp dword [edi - 8], esi
jb 0x42e005
mov eax, dword [edi - 0x1c]
jmp 0x42e008
lea eax, [edi - 0x1c]
cmp ecx, eax
je 0x42e02e
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0xa0]
call fcn.00401cd0
push 0xffffffffffffffff
push ebx
add edi, 0xffffffe0
push edi
lea ecx, [esp + 0xa4]
call fcn.004022a0
mov edi, dword [esp + 0x20]
cmp dword [edi + 0xc8], esi
jb 0x42e042
mov eax, dword [edi + 0xb4]
jmp 0x42e048
lea eax, [edi + 0xb4]
push eax
push 0x465d68
lea ecx, [esp + 0xa0]
call fcn.0040c830
cmp dword [edi + 0xc8], esi
jb 0x42e06a
mov eax, dword [edi + 0xb4]
jmp 0x42e070
lea eax, [edi + 0xb4]
push eax
push 0x465d64
lea ecx, [esp + 0xa0]
call fcn.0040c830
lea edx, [esp + 0x98]
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x16c]
call fcn.00429160
push eax
lea ecx, [esp + 0x10c]
mov byte [esp + 0x1c8], 0xc
call fcn.00428b30
lea ecx, [esp + 0x108]
push ecx
lea edx, [esp + 0x160]
push edx
lea ecx, [edi + 0x104]
mov byte [esp + 0x1cc], 0xd
call fcn.0042c660
lea ecx, [esp + 0x108]
call fcn.0040bbe0
lea ecx, [esp + 0x164]
call fcn.0040bbe0
cmp dword [esp + 0xcc], esi
jb 0x42e104
mov eax, dword [esp + 0xb8]
push eax
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0xb0], esi
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xc8], ebx
mov byte [esp + 0xb8], bl
jb 0x42e132
mov ecx, dword [esp + 0x9c]
push ecx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x3c], esi
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
mov dword [esp + 0x1c4], 0xffffffff
jb 0x42e165
mov edx, dword [esp + 0x28]
push edx
call fcn.0044b92d
add esp, 4
mov dword [esp + 0x3c], ebp
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ebp, 0x10
mov eax, dword [esp + 0x18]
mov esi, dword [esi]
cmp esi, dword [eax]
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov dword [esp + 0x1c], esi
jne 0x42dc20
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0xac]
mov edx, dword [ecx + 0x28]
add eax, 0x50
mov dword [esp + 0x18], eax
add eax, 0xffffffe0
cmp eax, edx
jne 0x42dc02
mov ecx, dword [esp + 0x1bc]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret